diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 6f128a6..d02c771 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -56,6 +56,10 @@ docs/SignatureRequestBulkCreateEmbeddedWithTemplateRequest.md docs/SignatureRequestBulkSendWithTemplateRequest.md docs/SignatureRequestCreateEmbeddedRequest.md docs/SignatureRequestCreateEmbeddedWithTemplateRequest.md +docs/SignatureRequestEditEmbeddedRequest.md +docs/SignatureRequestEditEmbeddedWithTemplateRequest.md +docs/SignatureRequestEditRequest.md +docs/SignatureRequestEditWithTemplateRequest.md docs/SignatureRequestGetResponse.md docs/SignatureRequestListResponse.md docs/SignatureRequestRemindRequest.md @@ -248,6 +252,10 @@ dropbox_sign/model/signature_request_bulk_create_embedded_with_template_request. dropbox_sign/model/signature_request_bulk_send_with_template_request.py dropbox_sign/model/signature_request_create_embedded_request.py dropbox_sign/model/signature_request_create_embedded_with_template_request.py +dropbox_sign/model/signature_request_edit_embedded_request.py +dropbox_sign/model/signature_request_edit_embedded_with_template_request.py +dropbox_sign/model/signature_request_edit_request.py +dropbox_sign/model/signature_request_edit_with_template_request.py dropbox_sign/model/signature_request_get_response.py dropbox_sign/model/signature_request_list_response.py dropbox_sign/model/signature_request_remind_request.py diff --git a/README.md b/README.md index 14c9f46..973a92a 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ Python >=3.7 Install using `pip`: ```shell -python3 -m pip install dropbox-sign==1.3.0 +python3 -m pip install dropbox-sign==1.4.0 ``` Alternatively: @@ -126,6 +126,10 @@ All URIs are relative to *https://api.hellosign.com/v3* ```SignatureRequestApi``` | [```signature_request_cancel```](docs/SignatureRequestApi.md#signature_request_cancel) | ```POST /signature_request/cancel/{signature_request_id}``` | Cancel Incomplete Signature Request| ```SignatureRequestApi``` | [```signature_request_create_embedded```](docs/SignatureRequestApi.md#signature_request_create_embedded) | ```POST /signature_request/create_embedded``` | Create Embedded Signature Request| ```SignatureRequestApi``` | [```signature_request_create_embedded_with_template```](docs/SignatureRequestApi.md#signature_request_create_embedded_with_template) | ```POST /signature_request/create_embedded_with_template``` | Create Embedded Signature Request with Template| +```SignatureRequestApi``` | [```signature_request_edit```](docs/SignatureRequestApi.md#signature_request_edit) | ```PUT /signature_request/edit/{signature_request_id}``` | Edit Signature Request| +```SignatureRequestApi``` | [```signature_request_edit_embedded```](docs/SignatureRequestApi.md#signature_request_edit_embedded) | ```PUT /signature_request/edit_embedded/{signature_request_id}``` | Edit Embedded Signature Request| +```SignatureRequestApi``` | [```signature_request_edit_embedded_with_template```](docs/SignatureRequestApi.md#signature_request_edit_embedded_with_template) | ```PUT /signature_request/edit_embedded_with_template/{signature_request_id}``` | Edit Embedded Signature Request with Template| +```SignatureRequestApi``` | [```signature_request_edit_with_template```](docs/SignatureRequestApi.md#signature_request_edit_with_template) | ```PUT /signature_request/edit_with_template/{signature_request_id}``` | Edit Signature Request With Template| ```SignatureRequestApi``` | [```signature_request_files```](docs/SignatureRequestApi.md#signature_request_files) | ```GET /signature_request/files/{signature_request_id}``` | Download Files| ```SignatureRequestApi``` | [```signature_request_files_as_data_uri```](docs/SignatureRequestApi.md#signature_request_files_as_data_uri) | ```GET /signature_request/files_as_data_uri/{signature_request_id}``` | Download Files as Data Uri| ```SignatureRequestApi``` | [```signature_request_files_as_file_url```](docs/SignatureRequestApi.md#signature_request_files_as_file_url) | ```GET /signature_request/files_as_file_url/{signature_request_id}``` | Download Files as File Url| @@ -212,6 +216,10 @@ All URIs are relative to *https://api.hellosign.com/v3* - [SignatureRequestBulkSendWithTemplateRequest](docs/SignatureRequestBulkSendWithTemplateRequest.md) - [SignatureRequestCreateEmbeddedRequest](docs/SignatureRequestCreateEmbeddedRequest.md) - [SignatureRequestCreateEmbeddedWithTemplateRequest](docs/SignatureRequestCreateEmbeddedWithTemplateRequest.md) + - [SignatureRequestEditEmbeddedRequest](docs/SignatureRequestEditEmbeddedRequest.md) + - [SignatureRequestEditEmbeddedWithTemplateRequest](docs/SignatureRequestEditEmbeddedWithTemplateRequest.md) + - [SignatureRequestEditRequest](docs/SignatureRequestEditRequest.md) + - [SignatureRequestEditWithTemplateRequest](docs/SignatureRequestEditWithTemplateRequest.md) - [SignatureRequestGetResponse](docs/SignatureRequestGetResponse.md) - [SignatureRequestListResponse](docs/SignatureRequestListResponse.md) - [SignatureRequestRemindRequest](docs/SignatureRequestRemindRequest.md) @@ -362,6 +370,6 @@ apisupport@hellosign.com This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: - API version: 3.0.0 -- Package version: 1.3.0 +- Package version: 1.4.0 - Build package: org.openapitools.codegen.languages.PythonClientCodegen diff --git a/VERSION b/VERSION index f0bb29e..88c5fb8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.0 +1.4.0 diff --git a/docs/ApiAppApi.md b/docs/ApiAppApi.md index ceb245e..7453340 100644 --- a/docs/ApiAppApi.md +++ b/docs/ApiAppApi.md @@ -93,7 +93,7 @@ with ApiClient(configuration) as api_client: | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | successful operation | * X-RateLimit-Limit -
* X-RateLimit-Remaining -
* X-Ratelimit-Reset -
| +**201** | successful operation | * X-RateLimit-Limit -
* X-RateLimit-Remaining -
* X-Ratelimit-Reset -
| **4XX** | failed_operation | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/docs/BulkSendJobGetResponseSignatureRequests.md b/docs/BulkSendJobGetResponseSignatureRequests.md index 13b8eda..660eb81 100644 --- a/docs/BulkSendJobGetResponseSignatureRequests.md +++ b/docs/BulkSendJobGetResponseSignatureRequests.md @@ -24,6 +24,7 @@ | `details_url` | ```str``` | The URL where the requester and the signers can view the current status of the SignatureRequest. | | | `cc_email_addresses` | ```[str]``` | A list of email addresses that were CCed on the SignatureRequest. They will receive a copy of the final PDF once all the signers have signed. | | | `signing_redirect_url` | ```str, none_type``` | The URL you want the signer redirected to after they successfully sign. | | +| `final_copy_uri` | ```str, none_type``` | The path where the completed document can be downloaded | | | `template_ids` | ```[str], none_type``` | Templates IDs used in this SignatureRequest (if any). | | | `custom_fields` | [```[SignatureRequestResponseCustomFieldBase], none_type```](SignatureRequestResponseCustomFieldBase.md) | An array of Custom Field objects containing the name and type of each custom field.

* Text Field uses `SignatureRequestResponseCustomFieldText`
* Checkbox Field uses `SignatureRequestResponseCustomFieldCheckbox` | | | `attachments` | [```[SignatureRequestResponseAttachment], none_type```](SignatureRequestResponseAttachment.md) | Signer attachments. | | diff --git a/docs/EventCallbackRequestEvent.md b/docs/EventCallbackRequestEvent.md index 4b17fa8..d658d01 100644 --- a/docs/EventCallbackRequestEvent.md +++ b/docs/EventCallbackRequestEvent.md @@ -9,7 +9,7 @@ Basic information about the event that occurred. | `event_time`*_required_ | ```str``` | Time the event was created (using Unix time). | | | `event_type`*_required_ | ```str``` | Type of callback event that was triggered. | | | `event_hash`*_required_ | ```str``` | Generated hash used to verify source of event data. | | -| `event_metadata`*_required_ | [```EventCallbackRequestEventMetadata```](EventCallbackRequestEventMetadata.md) | | | +| `event_metadata` | [```EventCallbackRequestEventMetadata```](EventCallbackRequestEventMetadata.md) | | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/SignatureRequestApi.md b/docs/SignatureRequestApi.md index 9ad8721..2f30770 100644 --- a/docs/SignatureRequestApi.md +++ b/docs/SignatureRequestApi.md @@ -9,6 +9,10 @@ All URIs are relative to *https://api.hellosign.com/v3* |[```signature_request_cancel```](SignatureRequestApi.md#signature_request_cancel) | ```POST /signature_request/cancel/{signature_request_id}``` | Cancel Incomplete Signature Request| |[```signature_request_create_embedded```](SignatureRequestApi.md#signature_request_create_embedded) | ```POST /signature_request/create_embedded``` | Create Embedded Signature Request| |[```signature_request_create_embedded_with_template```](SignatureRequestApi.md#signature_request_create_embedded_with_template) | ```POST /signature_request/create_embedded_with_template``` | Create Embedded Signature Request with Template| +|[```signature_request_edit```](SignatureRequestApi.md#signature_request_edit) | ```PUT /signature_request/edit/{signature_request_id}``` | Edit Signature Request| +|[```signature_request_edit_embedded```](SignatureRequestApi.md#signature_request_edit_embedded) | ```PUT /signature_request/edit_embedded/{signature_request_id}``` | Edit Embedded Signature Request| +|[```signature_request_edit_embedded_with_template```](SignatureRequestApi.md#signature_request_edit_embedded_with_template) | ```PUT /signature_request/edit_embedded_with_template/{signature_request_id}``` | Edit Embedded Signature Request with Template| +|[```signature_request_edit_with_template```](SignatureRequestApi.md#signature_request_edit_with_template) | ```PUT /signature_request/edit_with_template/{signature_request_id}``` | Edit Signature Request With Template| |[```signature_request_files```](SignatureRequestApi.md#signature_request_files) | ```GET /signature_request/files/{signature_request_id}``` | Download Files| |[```signature_request_files_as_data_uri```](SignatureRequestApi.md#signature_request_files_as_data_uri) | ```GET /signature_request/files_as_data_uri/{signature_request_id}``` | Download Files as Data Uri| |[```signature_request_files_as_file_url```](SignatureRequestApi.md#signature_request_files_as_file_url) | ```GET /signature_request/files_as_file_url/{signature_request_id}``` | Download Files as File Url| @@ -499,6 +503,422 @@ with ApiClient(configuration) as api_client: - **Accept**: application/json +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | successful operation | * X-RateLimit-Limit -
* X-RateLimit-Remaining -
* X-Ratelimit-Reset -
| +**4XX** | failed_operation | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# ```signature_request_edit``` +> ```SignatureRequestGetResponse signature_request_edit(signature_request_id, signature_request_edit_request)``` + +Edit Signature Request + +Edits and sends a SignatureRequest with the submitted documents. If `form_fields_per_document` is not specified, a signature page will be affixed where all signers will be required to add their signature, signifying their agreement to all contained documents. **NOTE:** Edit and resend will not deduct your signature request quota. + +### Example + +* Basic Authentication (api_key): +* Bearer (JWT) Authentication (oauth2): + +```python +from pprint import pprint + +from dropbox_sign import \ + ApiClient, ApiException, Configuration, apis, models + +configuration = Configuration( + # Configure HTTP basic authorization: api_key + username="YOUR_API_KEY", + + # or, configure Bearer (JWT) authorization: oauth2 + # access_token="YOUR_ACCESS_TOKEN", +) + +with ApiClient(configuration) as api_client: + signature_request_api = apis.SignatureRequestApi(api_client) + + signer_1 = models.SubSignatureRequestSigner( + email_address="jack@example.com", + name="Jack", + order=0, + ) + + signer_2 = models.SubSignatureRequestSigner( + email_address="jill@example.com", + name="Jill", + order=1, + ) + + signing_options = models.SubSigningOptions( + draw=True, + type=True, + upload=True, + phone=True, + default_type="draw", + ) + + field_options = models.SubFieldOptions( + date_format="DD - MM - YYYY", + ) + + data = models.SignatureRequestEditRequest( + title="NDA with Acme Co.", + subject="The NDA we talked about", + message="Please sign this NDA and then we can discuss more. Let me know if you have any questions.", + signers=[signer_1, signer_2], + cc_email_addresses=[ + "lawyer1@dropboxsign.com", + "lawyer2@dropboxsign.com", + ], + files=[open("example_signature_request.pdf", "rb")], + metadata={ + "custom_id": 1234, + "custom_text": "NDA #9", + }, + signing_options=signing_options, + field_options=field_options, + test_mode=True, + ) + + signature_request_id = "2f9781e1a8e2045224d808c153c2e1d3df6f8f2f" + + try: + response = signature_request_api.signature_request_edit(signature_request_id, data) + pprint(response) + except ApiException as e: + print("Exception when calling Dropbox Sign API: %s\n" % e) + +``` + + +### Parameters + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| `signature_request_id` | **str** | The id of the SignatureRequest to edit. | | +| `signature_request_edit_request` | [**SignatureRequestEditRequest**](SignatureRequestEditRequest.md) | | | + +### Return type + +[**SignatureRequestGetResponse**](SignatureRequestGetResponse.md) + +### Authorization + +[api_key](../README.md#api_key), [oauth2](../README.md#oauth2) + +### HTTP request headers + + - **Content-Type**: application/json, multipart/form-data + - **Accept**: application/json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | successful operation | * X-RateLimit-Limit -
* X-RateLimit-Remaining -
* X-Ratelimit-Reset -
| +**4XX** | failed_operation | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# ```signature_request_edit_embedded``` +> ```SignatureRequestGetResponse signature_request_edit_embedded(signature_request_id, signature_request_edit_embedded_request)``` + +Edit Embedded Signature Request + +Edits a SignatureRequest with the submitted documents to be signed in an embedded iFrame. If form_fields_per_document is not specified, a signature page will be affixed where all signers will be required to add their signature, signifying their agreement to all contained documents. Note that embedded signature requests can only be signed in embedded iFrames whereas normal signature requests can only be signed on Dropbox Sign. + +### Example + +* Basic Authentication (api_key): +* Bearer (JWT) Authentication (oauth2): + +```python +from pprint import pprint + +from dropbox_sign import \ + ApiClient, ApiException, Configuration, apis, models + +configuration = Configuration( + # Configure HTTP basic authorization: api_key + username="YOUR_API_KEY", + + # or, configure Bearer (JWT) authorization: oauth2 + # access_token="YOUR_ACCESS_TOKEN", +) + +with ApiClient(configuration) as api_client: + signature_request_api = apis.SignatureRequestApi(api_client) + + signer_1 = models.SubSignatureRequestSigner( + email_address="jack@example.com", + name="Jack", + order=0, + ) + + signer_2 = models.SubSignatureRequestSigner( + email_address="jill@example.com", + name="Jill", + order=1, + ) + + signing_options = models.SubSigningOptions( + draw=True, + type=True, + upload=True, + phone=True, + default_type="draw", + ) + + data = models.SignatureRequestEditEmbeddedRequest( + client_id="ec64a202072370a737edf4a0eb7f4437", + title="NDA with Acme Co.", + subject="The NDA we talked about", + message="Please sign this NDA and then we can discuss more. Let me know if you have any questions.", + signers=[signer_1, signer_2], + cc_email_addresses=["lawyer1@dropboxsign.com", "lawyer2@dropboxsign.com"], + files=[open("example_signature_request.pdf", "rb")], + signing_options=signing_options, + test_mode=True, + ) + + signature_request_id = "2f9781e1a8e2045224d808c153c2e1d3df6f8f2f" + + try: + response = signature_request_api.signature_request_edit_embedded(signature_request_id, data) + pprint(response) + except ApiException as e: + print("Exception when calling Dropbox Sign API: %s\n" % e) + +``` + + +### Parameters + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| `signature_request_id` | **str** | The id of the SignatureRequest to edit. | | +| `signature_request_edit_embedded_request` | [**SignatureRequestEditEmbeddedRequest**](SignatureRequestEditEmbeddedRequest.md) | | | + +### Return type + +[**SignatureRequestGetResponse**](SignatureRequestGetResponse.md) + +### Authorization + +[api_key](../README.md#api_key), [oauth2](../README.md#oauth2) + +### HTTP request headers + + - **Content-Type**: application/json, multipart/form-data + - **Accept**: application/json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | successful operation | * X-RateLimit-Limit -
* X-RateLimit-Remaining -
* X-Ratelimit-Reset -
| +**4XX** | failed_operation | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# ```signature_request_edit_embedded_with_template``` +> ```SignatureRequestGetResponse signature_request_edit_embedded_with_template(signature_request_id, signature_request_edit_embedded_with_template_request)``` + +Edit Embedded Signature Request with Template + +Edits a SignatureRequest based on the given Template(s) to be signed in an embedded iFrame. Note that embedded signature requests can only be signed in embedded iFrames whereas normal signature requests can only be signed on Dropbox Sign. + +### Example + +* Basic Authentication (api_key): +* Bearer (JWT) Authentication (oauth2): + +```python +from pprint import pprint + +from dropbox_sign import \ + ApiClient, ApiException, Configuration, apis, models + +configuration = Configuration( + # Configure HTTP basic authorization: api_key + username="YOUR_API_KEY", + + # or, configure Bearer (JWT) authorization: oauth2 + # access_token="YOUR_ACCESS_TOKEN", +) + +with ApiClient(configuration) as api_client: + signature_request_api = apis.SignatureRequestApi(api_client) + + signer_1 = models.SubSignatureRequestTemplateSigner( + role="Client", + email_address="jack@example.com", + name="Jack", + ) + + signing_options = models.SubSigningOptions( + draw=True, + type=True, + upload=True, + phone=True, + default_type="draw", + ) + + data = models.SignatureRequestEditEmbeddedWithTemplateRequest( + client_id="ec64a202072370a737edf4a0eb7f4437", + template_ids=["c26b8a16784a872da37ea946b9ddec7c1e11dff6"], + subject="Purchase Order", + message="Glad we could come to an agreement.", + signers=[signer_1], + signing_options=signing_options, + test_mode=True, + ) + + signature_request_id = "2f9781e1a8e2045224d808c153c2e1d3df6f8f2f" + + try: + response = signature_request_api.signature_request_edit_embedded_with_template(signature_request_id, data) + pprint(response) + except ApiException as e: + print("Exception when calling Dropbox Sign API: %s\n" % e) + +``` + + +### Parameters + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| `signature_request_id` | **str** | The id of the SignatureRequest to edit. | | +| `signature_request_edit_embedded_with_template_request` | [**SignatureRequestEditEmbeddedWithTemplateRequest**](SignatureRequestEditEmbeddedWithTemplateRequest.md) | | | + +### Return type + +[**SignatureRequestGetResponse**](SignatureRequestGetResponse.md) + +### Authorization + +[api_key](../README.md#api_key), [oauth2](../README.md#oauth2) + +### HTTP request headers + + - **Content-Type**: application/json, multipart/form-data + - **Accept**: application/json + + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | successful operation | * X-RateLimit-Limit -
* X-RateLimit-Remaining -
* X-Ratelimit-Reset -
| +**4XX** | failed_operation | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# ```signature_request_edit_with_template``` +> ```SignatureRequestGetResponse signature_request_edit_with_template(signature_request_id, signature_request_edit_with_template_request)``` + +Edit Signature Request With Template + +Edits and sends a SignatureRequest based off of the Template(s) specified with the template_ids parameter. **NOTE:** Edit and resend will not deduct your signature request quota. + +### Example + +* Basic Authentication (api_key): +* Bearer (JWT) Authentication (oauth2): + +```python +from pprint import pprint + +from dropbox_sign import \ + ApiClient, ApiException, Configuration, apis, models + +configuration = Configuration( + # Configure HTTP basic authorization: api_key + username="YOUR_API_KEY", + + # or, configure Bearer (JWT) authorization: oauth2 + # access_token="YOUR_ACCESS_TOKEN", +) + +with ApiClient(configuration) as api_client: + signature_request_api = apis.SignatureRequestApi(api_client) + + signer_1 = models.SubSignatureRequestTemplateSigner( + role="Client", + email_address="george@example.com", + name="George", + ) + + cc_1 = models.SubCC( + role="Accounting", + email_address="accounting@example.com", + ) + + custom_field_1 = models.SubCustomField( + name="Cost", + value="$20,000", + editor="Client", + required=True, + ) + + signing_options = models.SubSigningOptions( + draw=True, + type=True, + upload=True, + phone=False, + default_type="draw", + ) + + data = models.SignatureRequestSendWithTemplateRequest( + template_ids=["c26b8a16784a872da37ea946b9ddec7c1e11dff6"], + subject="Purchase Order", + message="Glad we could come to an agreement.", + signers=[signer_1], + ccs=[cc_1], + custom_fields=[custom_field_1], + signing_options=signing_options, + test_mode=True, + ) + + signature_request_id = "2f9781e1a8e2045224d808c153c2e1d3df6f8f2f" + + try: + response = signature_request_api.signature_request_edit_with_template(signature_request_id, data) + pprint(response) + except ApiException as e: + print("Exception when calling Dropbox Sign API: %s\n" % e) + +``` + + +### Parameters + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| `signature_request_id` | **str** | The id of the SignatureRequest to edit. | | +| `signature_request_edit_with_template_request` | [**SignatureRequestEditWithTemplateRequest**](SignatureRequestEditWithTemplateRequest.md) | | | + +### Return type + +[**SignatureRequestGetResponse**](SignatureRequestGetResponse.md) + +### Authorization + +[api_key](../README.md#api_key), [oauth2](../README.md#oauth2) + +### HTTP request headers + + - **Content-Type**: application/json, multipart/form-data + - **Accept**: application/json + + ### HTTP response details | Status code | Description | Response headers | diff --git a/docs/SignatureRequestBulkCreateEmbeddedWithTemplateRequest.md b/docs/SignatureRequestBulkCreateEmbeddedWithTemplateRequest.md index 419c5d8..d1e7e45 100644 --- a/docs/SignatureRequestBulkCreateEmbeddedWithTemplateRequest.md +++ b/docs/SignatureRequestBulkCreateEmbeddedWithTemplateRequest.md @@ -8,7 +8,7 @@ | ---- | ---- | ----------- | ----- | | `template_ids`*_required_ | ```[str]``` | Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used. | | | `client_id`*_required_ | ```str``` | Client id of the app you're using to create this embedded signature request. Used for security purposes. | | -| `signer_file` | ```file_type``` | `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns:

- `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional)

**Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field" suffix will be treated as a custom field (optional)

You may only specify field values here, any other options should be set in the custom_fields request parameter.

Example CSV:

``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ``` | | +| `signer_file` | ```file_type``` | `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns:

- `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional)

By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on).

**Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field" suffix will be treated as a custom field (optional)

You may only specify field values here, any other options should be set in the custom_fields request parameter.

Example CSV:

``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ``` | | | `signer_list` | [```[SubBulkSignerList]```](SubBulkSignerList.md) | `signer_list` is an array defining values and options for signer fields. Required unless a `signer_file` is used, you may not use both. | | | `allow_decline` | ```bool``` | Allows signers to decline to sign a document if `true`. Defaults to `false`. | [default to False] | | `ccs` | [```[SubCC]```](SubCC.md) | Add CC email recipients. Required when a CC role exists for the Template. | | diff --git a/docs/SignatureRequestBulkSendWithTemplateRequest.md b/docs/SignatureRequestBulkSendWithTemplateRequest.md index a33894f..f93b697 100644 --- a/docs/SignatureRequestBulkSendWithTemplateRequest.md +++ b/docs/SignatureRequestBulkSendWithTemplateRequest.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | | ---- | ---- | ----------- | ----- | | `template_ids`*_required_ | ```[str]``` | Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used. | | -| `signer_file` | ```file_type``` | `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns:

- `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional)

**Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field" suffix will be treated as a custom field (optional)

You may only specify field values here, any other options should be set in the custom_fields request parameter.

Example CSV:

``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ``` | | +| `signer_file` | ```file_type``` | `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns:

- `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional)

By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on).

**Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field" suffix will be treated as a custom field (optional)

You may only specify field values here, any other options should be set in the custom_fields request parameter.

Example CSV:

``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ``` | | | `signer_list` | [```[SubBulkSignerList]```](SubBulkSignerList.md) | `signer_list` is an array defining values and options for signer fields. Required unless a `signer_file` is used, you may not use both. | | | `allow_decline` | ```bool``` | Allows signers to decline to sign a document if `true`. Defaults to `false`. | [default to False] | | `ccs` | [```[SubCC]```](SubCC.md) | Add CC email recipients. Required when a CC role exists for the Template. | | diff --git a/docs/SignatureRequestEditEmbeddedRequest.md b/docs/SignatureRequestEditEmbeddedRequest.md new file mode 100644 index 0000000..227d5b7 --- /dev/null +++ b/docs/SignatureRequestEditEmbeddedRequest.md @@ -0,0 +1,37 @@ +# SignatureRequestEditEmbeddedRequest + + + +## Properties + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| `client_id`*_required_ | ```str``` | Client id of the app you're using to create this embedded signature request. Used for security purposes. | | +| `files` | ```[file_type]``` | Use `files[]` to indicate the uploaded file(s) to send for signature.

This endpoint requires either **files** or **file_urls[]**, but not both. | | +| `file_urls` | ```[str]``` | Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature.

This endpoint requires either **files** or **file_urls[]**, but not both. | | +| `signers` | [```[SubSignatureRequestSigner]```](SubSignatureRequestSigner.md) | Add Signers to your Signature Request.

This endpoint requires either **signers** or **grouped_signers**, but not both. | | +| `grouped_signers` | [```[SubSignatureRequestGroupedSigners]```](SubSignatureRequestGroupedSigners.md) | Add Grouped Signers to your Signature Request.

This endpoint requires either **signers** or **grouped_signers**, but not both. | | +| `allow_decline` | ```bool``` | Allows signers to decline to sign a document if `true`. Defaults to `false`. | [default to False] | +| `allow_reassign` | ```bool``` | Allows signers to reassign their signature requests to other signers if set to `true`. Defaults to `false`.

**Note**: Only available for Premium plan. | [default to False] | +| `attachments` | [```[SubAttachment]```](SubAttachment.md) | A list describing the attachments | | +| `cc_email_addresses` | ```[str]``` | The email addresses that should be CCed. | | +| `custom_fields` | [```[SubCustomField]```](SubCustomField.md) | When used together with merge fields, `custom_fields` allows users to add pre-filled data to their signature requests.

Pre-filled data can be used with "send-once" signature requests by adding merge fields with `form_fields_per_document` or [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) while passing values back with `custom_fields` together in one API call.

For using pre-filled on repeatable signature requests, merge fields are added to templates in the Dropbox Sign UI or by calling [/template/create_embedded_draft](/api/reference/operation/templateCreateEmbeddedDraft) and then passing `custom_fields` on subsequent signature requests referencing that template. | | +| `field_options` | [```SubFieldOptions```](SubFieldOptions.md) | | | +| `form_field_groups` | [```[SubFormFieldGroup]```](SubFormFieldGroup.md) | Group information for fields defined in `form_fields_per_document`. String-indexed JSON array with `group_label` and `requirement` keys. `form_fields_per_document` must contain fields referencing a group defined in `form_field_groups`. | | +| `form_field_rules` | [```[SubFormFieldRule]```](SubFormFieldRule.md) | Conditional Logic rules for fields defined in `form_fields_per_document`. | | +| `form_fields_per_document` | [```[SubFormFieldsPerDocumentBase]```](SubFormFieldsPerDocumentBase.md) | The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).)

**NOTE**: Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types.

* Text Field use `SubFormFieldsPerDocumentText`
* Dropdown Field use `SubFormFieldsPerDocumentDropdown`
* Hyperlink Field use `SubFormFieldsPerDocumentHyperlink`
* Checkbox Field use `SubFormFieldsPerDocumentCheckbox`
* Radio Field use `SubFormFieldsPerDocumentRadio`
* Signature Field use `SubFormFieldsPerDocumentSignature`
* Date Signed Field use `SubFormFieldsPerDocumentDateSigned`
* Initials Field use `SubFormFieldsPerDocumentInitials`
* Text Merge Field use `SubFormFieldsPerDocumentTextMerge`
* Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge` | | +| `hide_text_tags` | ```bool``` | Enables automatic Text Tag removal when set to true.

**NOTE**: Removing text tags this way can cause unwanted clipping. We recommend leaving this setting on `false` and instead hiding your text tags using white text or a similar approach. See the [Text Tags Walkthrough](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) for more information. | [default to False] | +| `message` | ```str``` | The custom message in the email that will be sent to the signers. | | +| `metadata` | ```{str: (bool, date, datetime, dict, float, int, list, str, none_type)}``` | Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request.

Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long. | | +| `signing_options` | [```SubSigningOptions```](SubSigningOptions.md) | | | +| `subject` | ```str``` | The subject in the email that will be sent to the signers. | | +| `test_mode` | ```bool``` | Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`. | [default to False] | +| `title` | ```str``` | The title you want to assign to the SignatureRequest. | | +| `use_text_tags` | ```bool``` | Send with a value of `true` if you wish to enable [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) parsing in your document. Defaults to disabled, or `false`. | [default to False] | +| `populate_auto_fill_fields` | ```bool``` | Controls whether [auto fill fields](https://faq.hellosign.com/hc/en-us/articles/360051467511-Auto-Fill-Fields) can automatically populate a signer's information during signing.

⚠️ **Note** ⚠️: Keep your signer's information safe by ensuring that the _signer on your signature request is the intended party_ before using this feature. | [default to False] | +| `expires_at` | ```int, none_type``` | When the signature request will expire. Unsigned signatures will be moved to the expired status, and no longer signable. See [Signature Request Expiration Date](https://developers.hellosign.com/docs/signature-request/expiration/) for details. | | + + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SignatureRequestEditEmbeddedWithTemplateRequest.md b/docs/SignatureRequestEditEmbeddedWithTemplateRequest.md new file mode 100644 index 0000000..43af810 --- /dev/null +++ b/docs/SignatureRequestEditEmbeddedWithTemplateRequest.md @@ -0,0 +1,28 @@ +# SignatureRequestEditEmbeddedWithTemplateRequest + + + +## Properties + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| `template_ids`*_required_ | ```[str]``` | Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used. | | +| `client_id`*_required_ | ```str``` | Client id of the app you're using to create this embedded signature request. Used for security purposes. | | +| `signers`*_required_ | [```[SubSignatureRequestTemplateSigner]```](SubSignatureRequestTemplateSigner.md) | Add Signers to your Templated-based Signature Request. | | +| `allow_decline` | ```bool``` | Allows signers to decline to sign a document if `true`. Defaults to `false`. | [default to False] | +| `ccs` | [```[SubCC]```](SubCC.md) | Add CC email recipients. Required when a CC role exists for the Template. | | +| `custom_fields` | [```[SubCustomField]```](SubCustomField.md) | An array defining values and options for custom fields. Required when a custom field exists in the Template. | | +| `files` | ```[file_type]``` | Use `files[]` to indicate the uploaded file(s) to send for signature.

This endpoint requires either **files** or **file_urls[]**, but not both. | | +| `file_urls` | ```[str]``` | Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature.

This endpoint requires either **files** or **file_urls[]**, but not both. | | +| `message` | ```str``` | The custom message in the email that will be sent to the signers. | | +| `metadata` | ```{str: (bool, date, datetime, dict, float, int, list, str, none_type)}``` | Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request.

Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long. | | +| `signing_options` | [```SubSigningOptions```](SubSigningOptions.md) | | | +| `subject` | ```str``` | The subject in the email that will be sent to the signers. | | +| `test_mode` | ```bool``` | Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`. | [default to False] | +| `title` | ```str``` | The title you want to assign to the SignatureRequest. | | +| `populate_auto_fill_fields` | ```bool``` | Controls whether [auto fill fields](https://faq.hellosign.com/hc/en-us/articles/360051467511-Auto-Fill-Fields) can automatically populate a signer's information during signing.

⚠️ **Note** ⚠️: Keep your signer's information safe by ensuring that the _signer on your signature request is the intended party_ before using this feature. | [default to False] | + + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SignatureRequestEditRequest.md b/docs/SignatureRequestEditRequest.md new file mode 100644 index 0000000..9cba874 --- /dev/null +++ b/docs/SignatureRequestEditRequest.md @@ -0,0 +1,39 @@ +# SignatureRequestEditRequest + + + +## Properties + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| `files` | ```[file_type]``` | Use `files[]` to indicate the uploaded file(s) to send for signature.

This endpoint requires either **files** or **file_urls[]**, but not both. | | +| `file_urls` | ```[str]``` | Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature.

This endpoint requires either **files** or **file_urls[]**, but not both. | | +| `signers` | [```[SubSignatureRequestSigner]```](SubSignatureRequestSigner.md) | Add Signers to your Signature Request.

This endpoint requires either **signers** or **grouped_signers**, but not both. | | +| `grouped_signers` | [```[SubSignatureRequestGroupedSigners]```](SubSignatureRequestGroupedSigners.md) | Add Grouped Signers to your Signature Request.

This endpoint requires either **signers** or **grouped_signers**, but not both. | | +| `allow_decline` | ```bool``` | Allows signers to decline to sign a document if `true`. Defaults to `false`. | [default to False] | +| `allow_reassign` | ```bool``` | Allows signers to reassign their signature requests to other signers if set to `true`. Defaults to `false`.

**Note**: Only available for Premium plan and higher. | [default to False] | +| `attachments` | [```[SubAttachment]```](SubAttachment.md) | A list describing the attachments | | +| `cc_email_addresses` | ```[str]``` | The email addresses that should be CCed. | | +| `client_id` | ```str``` | The client id of the API App you want to associate with this request. Used to apply the branding and callback url defined for the app. | | +| `custom_fields` | [```[SubCustomField]```](SubCustomField.md) | When used together with merge fields, `custom_fields` allows users to add pre-filled data to their signature requests.

Pre-filled data can be used with "send-once" signature requests by adding merge fields with `form_fields_per_document` or [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) while passing values back with `custom_fields` together in one API call.

For using pre-filled on repeatable signature requests, merge fields are added to templates in the Dropbox Sign UI or by calling [/template/create_embedded_draft](/api/reference/operation/templateCreateEmbeddedDraft) and then passing `custom_fields` on subsequent signature requests referencing that template. | | +| `field_options` | [```SubFieldOptions```](SubFieldOptions.md) | | | +| `form_field_groups` | [```[SubFormFieldGroup]```](SubFormFieldGroup.md) | Group information for fields defined in `form_fields_per_document`. String-indexed JSON array with `group_label` and `requirement` keys. `form_fields_per_document` must contain fields referencing a group defined in `form_field_groups`. | | +| `form_field_rules` | [```[SubFormFieldRule]```](SubFormFieldRule.md) | Conditional Logic rules for fields defined in `form_fields_per_document`. | | +| `form_fields_per_document` | [```[SubFormFieldsPerDocumentBase]```](SubFormFieldsPerDocumentBase.md) | The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).)

**NOTE**: Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types.

* Text Field use `SubFormFieldsPerDocumentText`
* Dropdown Field use `SubFormFieldsPerDocumentDropdown`
* Hyperlink Field use `SubFormFieldsPerDocumentHyperlink`
* Checkbox Field use `SubFormFieldsPerDocumentCheckbox`
* Radio Field use `SubFormFieldsPerDocumentRadio`
* Signature Field use `SubFormFieldsPerDocumentSignature`
* Date Signed Field use `SubFormFieldsPerDocumentDateSigned`
* Initials Field use `SubFormFieldsPerDocumentInitials`
* Text Merge Field use `SubFormFieldsPerDocumentTextMerge`
* Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge` | | +| `hide_text_tags` | ```bool``` | Enables automatic Text Tag removal when set to true.

**NOTE**: Removing text tags this way can cause unwanted clipping. We recommend leaving this setting on `false` and instead hiding your text tags using white text or a similar approach. See the [Text Tags Walkthrough](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) for more information. | [default to False] | +| `is_qualified_signature` | ```bool``` | Send with a value of `true` if you wish to enable [Qualified Electronic Signatures](https://www.hellosign.com/features/qualified-electronic-signatures) (QES), which requires a face-to-face call to verify the signer's identity.<br>
**Note**: QES is only available on the Premium API plan as an add-on purchase. Cannot be used in `test_mode`. Only works on requests with one signer. | [default to False] | +| `is_eid` | ```bool``` | Send with a value of `true` if you wish to enable [electronic identification (eID)](https://www.hellosign.com/features/electronic-id), which requires the signer to verify their identity with an eID provider to sign a document.<br>
**Note**: eID is only available on the Premium API plan. Cannot be used in `test_mode`. Only works on requests with one signer. | [default to False] | +| `message` | ```str``` | The custom message in the email that will be sent to the signers. | | +| `metadata` | ```{str: (bool, date, datetime, dict, float, int, list, str, none_type)}``` | Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request.

Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long. | | +| `signing_options` | [```SubSigningOptions```](SubSigningOptions.md) | | | +| `signing_redirect_url` | ```str``` | The URL you want signers redirected to after they successfully sign. | | +| `subject` | ```str``` | The subject in the email that will be sent to the signers. | | +| `test_mode` | ```bool``` | Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`. | [default to False] | +| `title` | ```str``` | The title you want to assign to the SignatureRequest. | | +| `use_text_tags` | ```bool``` | Send with a value of `true` if you wish to enable [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) parsing in your document. Defaults to disabled, or `false`. | [default to False] | +| `expires_at` | ```int, none_type``` | When the signature request will expire. Unsigned signatures will be moved to the expired status, and no longer signable. See [Signature Request Expiration Date](https://developers.hellosign.com/docs/signature-request/expiration/) for details. | | + + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SignatureRequestEditWithTemplateRequest.md b/docs/SignatureRequestEditWithTemplateRequest.md new file mode 100644 index 0000000..3afc86e --- /dev/null +++ b/docs/SignatureRequestEditWithTemplateRequest.md @@ -0,0 +1,30 @@ +# SignatureRequestEditWithTemplateRequest + + + +## Properties + +| Name | Type | Description | Notes | +| ---- | ---- | ----------- | ----- | +| `template_ids`*_required_ | ```[str]``` | Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used. | | +| `signers`*_required_ | [```[SubSignatureRequestTemplateSigner]```](SubSignatureRequestTemplateSigner.md) | Add Signers to your Templated-based Signature Request. | | +| `allow_decline` | ```bool``` | Allows signers to decline to sign a document if `true`. Defaults to `false`. | [default to False] | +| `ccs` | [```[SubCC]```](SubCC.md) | Add CC email recipients. Required when a CC role exists for the Template. | | +| `client_id` | ```str``` | Client id of the app to associate with the signature request. Used to apply the branding and callback url defined for the app. | | +| `custom_fields` | [```[SubCustomField]```](SubCustomField.md) | An array defining values and options for custom fields. Required when a custom field exists in the Template. | | +| `files` | ```[file_type]``` | Use `files[]` to indicate the uploaded file(s) to send for signature.

This endpoint requires either **files** or **file_urls[]**, but not both. | | +| `file_urls` | ```[str]``` | Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature.

This endpoint requires either **files** or **file_urls[]**, but not both. | | +| `is_qualified_signature` | ```bool``` | Send with a value of `true` if you wish to enable [Qualified Electronic Signatures](https://www.hellosign.com/features/qualified-electronic-signatures) (QES), which requires a face-to-face call to verify the signer's identity.<br>
**Note**: QES is only available on the Premium API plan as an add-on purchase. Cannot be used in `test_mode`. Only works on requests with one signer. | [default to False] | +| `is_eid` | ```bool``` | Send with a value of `true` if you wish to enable [electronic identification (eID)](https://www.hellosign.com/features/electronic-id), which requires the signer to verify their identity with an eID provider to sign a document.<br>
**Note**: eID is only available on the Premium API plan. Cannot be used in `test_mode`. Only works on requests with one signer. | [default to False] | +| `message` | ```str``` | The custom message in the email that will be sent to the signers. | | +| `metadata` | ```{str: (bool, date, datetime, dict, float, int, list, str, none_type)}``` | Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request.

Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long. | | +| `signing_options` | [```SubSigningOptions```](SubSigningOptions.md) | | | +| `signing_redirect_url` | ```str``` | The URL you want signers redirected to after they successfully sign. | | +| `subject` | ```str``` | The subject in the email that will be sent to the signers. | | +| `test_mode` | ```bool``` | Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`. | [default to False] | +| `title` | ```str``` | The title you want to assign to the SignatureRequest. | | + + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SignatureRequestResponse.md b/docs/SignatureRequestResponse.md index 896d665..eca1dc2 100644 --- a/docs/SignatureRequestResponse.md +++ b/docs/SignatureRequestResponse.md @@ -24,11 +24,13 @@ Contains information about a signature request. | `details_url` | ```str``` | The URL where the requester and the signers can view the current status of the SignatureRequest. | | | `cc_email_addresses` | ```[str]``` | A list of email addresses that were CCed on the SignatureRequest. They will receive a copy of the final PDF once all the signers have signed. | | | `signing_redirect_url` | ```str, none_type``` | The URL you want the signer redirected to after they successfully sign. | | +| `final_copy_uri` | ```str, none_type``` | The path where the completed document can be downloaded | | | `template_ids` | ```[str], none_type``` | Templates IDs used in this SignatureRequest (if any). | | | `custom_fields` | [```[SignatureRequestResponseCustomFieldBase], none_type```](SignatureRequestResponseCustomFieldBase.md) | An array of Custom Field objects containing the name and type of each custom field.

* Text Field uses `SignatureRequestResponseCustomFieldText`
* Checkbox Field uses `SignatureRequestResponseCustomFieldCheckbox` | | | `attachments` | [```[SignatureRequestResponseAttachment], none_type```](SignatureRequestResponseAttachment.md) | Signer attachments. | | | `response_data` | [```[SignatureRequestResponseDataBase], none_type```](SignatureRequestResponseDataBase.md) | An array of form field objects containing the name, value, and type of each textbox or checkmark field filled in by the signers. | | | `signatures` | [```[SignatureRequestResponseSignatures]```](SignatureRequestResponseSignatures.md) | An array of signature objects, 1 for each signer. | | +| `bulk_send_job_id` | ```str, none_type``` | The ID of the Bulk Send job which sent the signature request, if applicable. | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/SubFormFieldsPerDocumentDateSigned.md b/docs/SubFormFieldsPerDocumentDateSigned.md index 20b9974..c3da52b 100644 --- a/docs/SubFormFieldsPerDocumentDateSigned.md +++ b/docs/SubFormFieldsPerDocumentDateSigned.md @@ -8,7 +8,7 @@ This class extends `SubFormFieldsPerDocumentBase`. | ---- | ---- | ----------- | ----- | | `type`*_required_ | ```str``` | A date. Use the `SubFormFieldsPerDocumentDateSigned` class. | [default to "date_signed"] | | `font_family` | ```str``` | Font family for the field. | | -| `font_size` | ```int``` | The initial px font size for the field contents. Can be any integer value between `7` and `49`.

**NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. | | +| `font_size` | ```int``` | The initial px font size for the field contents. Can be any integer value between `7` and `49`.

**NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. | [default to 12] | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/SubFormFieldsPerDocumentDropdown.md b/docs/SubFormFieldsPerDocumentDropdown.md index 06fbcf3..663a3c5 100644 --- a/docs/SubFormFieldsPerDocumentDropdown.md +++ b/docs/SubFormFieldsPerDocumentDropdown.md @@ -10,7 +10,7 @@ This class extends `SubFormFieldsPerDocumentBase`. | `options`*_required_ | ```[str]``` | Array of string values representing dropdown values. | | | `content` | ```str``` | Selected value in `options` array. Value must exist in array. | | | `font_family` | ```str``` | Font family for the field. | | -| `font_size` | ```int``` | The initial px font size for the field contents. Can be any integer value between `7` and `49`.

**NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. | | +| `font_size` | ```int``` | The initial px font size for the field contents. Can be any integer value between `7` and `49`.

**NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. | [default to 12] | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/SubFormFieldsPerDocumentHyperlink.md b/docs/SubFormFieldsPerDocumentHyperlink.md index d9b9e72..f774173 100644 --- a/docs/SubFormFieldsPerDocumentHyperlink.md +++ b/docs/SubFormFieldsPerDocumentHyperlink.md @@ -10,7 +10,7 @@ This class extends `SubFormFieldsPerDocumentBase`. | `content`*_required_ | ```str``` | Link Text. | | | `content_url`*_required_ | ```str``` | Link URL. | | | `font_family` | ```str``` | Font family for the field. | | -| `font_size` | ```int``` | The initial px font size for the field contents. Can be any integer value between `7` and `49`.

**NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. | | +| `font_size` | ```int``` | The initial px font size for the field contents. Can be any integer value between `7` and `49`.

**NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. | [default to 12] | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/SubFormFieldsPerDocumentText.md b/docs/SubFormFieldsPerDocumentText.md index c9e4107..825cedf 100644 --- a/docs/SubFormFieldsPerDocumentText.md +++ b/docs/SubFormFieldsPerDocumentText.md @@ -16,7 +16,7 @@ This class extends `SubFormFieldsPerDocumentBase`. | `validation_custom_regex_format_label` | ```str``` | | | | `content` | ```str``` | Content of a `me_now` text field | | | `font_family` | ```str``` | Font family for the field. | | -| `font_size` | ```int``` | The initial px font size for the field contents. Can be any integer value between `7` and `49`.

**NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. | | +| `font_size` | ```int``` | The initial px font size for the field contents. Can be any integer value between `7` and `49`.

**NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. | [default to 12] | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/SubFormFieldsPerDocumentTextMerge.md b/docs/SubFormFieldsPerDocumentTextMerge.md index 15ba6d6..762ca21 100644 --- a/docs/SubFormFieldsPerDocumentTextMerge.md +++ b/docs/SubFormFieldsPerDocumentTextMerge.md @@ -8,7 +8,7 @@ This class extends `SubFormFieldsPerDocumentBase`. | ---- | ---- | ----------- | ----- | | `type`*_required_ | ```str``` | A text field that has default text set using pre-filled data. Use the `SubFormFieldsPerDocumentTextMerge` class. | [default to "text-merge"] | | `font_family` | ```str``` | Font family for the field. | | -| `font_size` | ```int``` | The initial px font size for the field contents. Can be any integer value between `7` and `49`.

**NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. | | +| `font_size` | ```int``` | The initial px font size for the field contents. Can be any integer value between `7` and `49`.

**NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. | [default to 12] | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/SubSignatureRequestSigner.md b/docs/SubSignatureRequestSigner.md index dc61f89..349d430 100644 --- a/docs/SubSignatureRequestSigner.md +++ b/docs/SubSignatureRequestSigner.md @@ -10,7 +10,7 @@ | `email_address`*_required_ | ```str``` | The email address of the signer. | | | `order` | ```int, none_type``` | The order the signer is required to sign in. | | | `pin` | ```str``` | The 4- to 12-character access code that will secure this signer's signature page. | | -| `sms_phone_number` | ```str``` | An E.164 formatted phone number.

**Note**: Not available in test mode and requires a Standard plan or higher. | | +| `sms_phone_number` | ```str``` | An E.164 formatted phone number.

By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on).

**Note**: Not available in test mode and requires a Standard plan or higher. | | | `sms_phone_number_type` | ```str``` | Specifies the feature used with the `sms_phone_number`. Default `authentication`.

If `authentication`, signer is sent a verification code via SMS that is required to access the document.

If `delivery`, a link to complete the signature request is delivered via SMS (_and_ email). | | diff --git a/docs/SubSignatureRequestTemplateSigner.md b/docs/SubSignatureRequestTemplateSigner.md index 19059b6..9c58855 100644 --- a/docs/SubSignatureRequestTemplateSigner.md +++ b/docs/SubSignatureRequestTemplateSigner.md @@ -10,7 +10,7 @@ | `name`*_required_ | ```str``` | The name of the signer. | | | `email_address`*_required_ | ```str``` | The email address of the signer. | | | `pin` | ```str``` | The 4- to 12-character access code that will secure this signer's signature page. | | -| `sms_phone_number` | ```str``` | An E.164 formatted phone number.

**Note**: Not available in test mode and requires a Standard plan or higher. | | +| `sms_phone_number` | ```str``` | An E.164 formatted phone number.

By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on).

**Note**: Not available in test mode and requires a Standard plan or higher. | | | `sms_phone_number_type` | ```str``` | Specifies the feature used with the `sms_phone_number`. Default `authentication`.

If `authentication`, signer is sent a verification code via SMS that is required to access the document.

If `delivery`, a link to complete the signature request is delivered via SMS (_and_ email). | | diff --git a/docs/TeamApi.md b/docs/TeamApi.md index 5aabb59..8f4318e 100644 --- a/docs/TeamApi.md +++ b/docs/TeamApi.md @@ -560,7 +560,7 @@ with ApiClient(configuration) as api_client: | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | successful operation | * X-RateLimit-Limit -
* X-RateLimit-Remaining -
* X-Ratelimit-Reset -
| +**201** | successful operation | * X-RateLimit-Limit -
* X-RateLimit-Remaining -
* X-Ratelimit-Reset -
| **4XX** | failed_operation | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/dropbox_sign/__init__.py b/dropbox_sign/__init__.py index e5d5b77..a0a9508 100644 --- a/dropbox_sign/__init__.py +++ b/dropbox_sign/__init__.py @@ -11,7 +11,7 @@ """ -__version__ = "1.3.0" +__version__ = "1.4.0" # import ApiClient from dropbox_sign.api_client import ApiClient diff --git a/dropbox_sign/api/api_app_api.py b/dropbox_sign/api/api_app_api.py index 13aa6e7..c575780 100644 --- a/dropbox_sign/api/api_app_api.py +++ b/dropbox_sign/api/api_app_api.py @@ -394,7 +394,7 @@ def api_app_create( try: return self.api_app_create_endpoint.call_with_http_info(**kwargs) except ApiException as e: - if e.status == 200: + if e.status == 201: e.body = self.api_client.deserialize( response=type('obj_dict', (object,), {'data': e.body}), response_type=[ApiAppGetResponse], diff --git a/dropbox_sign/api/signature_request_api.py b/dropbox_sign/api/signature_request_api.py index ca483e6..38ab22c 100644 --- a/dropbox_sign/api/signature_request_api.py +++ b/dropbox_sign/api/signature_request_api.py @@ -31,6 +31,10 @@ from dropbox_sign.model.signature_request_bulk_send_with_template_request import SignatureRequestBulkSendWithTemplateRequest from dropbox_sign.model.signature_request_create_embedded_request import SignatureRequestCreateEmbeddedRequest from dropbox_sign.model.signature_request_create_embedded_with_template_request import SignatureRequestCreateEmbeddedWithTemplateRequest +from dropbox_sign.model.signature_request_edit_embedded_request import SignatureRequestEditEmbeddedRequest +from dropbox_sign.model.signature_request_edit_embedded_with_template_request import SignatureRequestEditEmbeddedWithTemplateRequest +from dropbox_sign.model.signature_request_edit_request import SignatureRequestEditRequest +from dropbox_sign.model.signature_request_edit_with_template_request import SignatureRequestEditWithTemplateRequest from dropbox_sign.model.signature_request_get_response import SignatureRequestGetResponse from dropbox_sign.model.signature_request_list_response import SignatureRequestListResponse from dropbox_sign.model.signature_request_remind_request import SignatureRequestRemindRequest @@ -317,6 +321,246 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.signature_request_edit_endpoint = _Endpoint( + settings={ + 'response_type': (SignatureRequestGetResponse,), + 'auth': [ + 'api_key', + 'oauth2' + ], + 'endpoint_path': '/signature_request/edit/{signature_request_id}', + 'operation_id': 'signature_request_edit', + 'http_method': 'PUT', + 'servers': None, + }, + params_map={ + 'all': [ + 'signature_request_id', + 'signature_request_edit_request', + ], + 'required': [ + 'signature_request_id', + 'signature_request_edit_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'signature_request_id': + (str,), + 'signature_request_edit_request': + (SignatureRequestEditRequest,), + }, + 'attribute_map': { + 'signature_request_id': 'signature_request_id', + }, + 'location_map': { + 'signature_request_id': 'path', + 'signature_request_edit_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [ + 'application/json', + 'multipart/form-data' + ] + }, + api_client=api_client + ) + self.signature_request_edit_embedded_endpoint = _Endpoint( + settings={ + 'response_type': (SignatureRequestGetResponse,), + 'auth': [ + 'api_key', + 'oauth2' + ], + 'endpoint_path': '/signature_request/edit_embedded/{signature_request_id}', + 'operation_id': 'signature_request_edit_embedded', + 'http_method': 'PUT', + 'servers': None, + }, + params_map={ + 'all': [ + 'signature_request_id', + 'signature_request_edit_embedded_request', + ], + 'required': [ + 'signature_request_id', + 'signature_request_edit_embedded_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'signature_request_id': + (str,), + 'signature_request_edit_embedded_request': + (SignatureRequestEditEmbeddedRequest,), + }, + 'attribute_map': { + 'signature_request_id': 'signature_request_id', + }, + 'location_map': { + 'signature_request_id': 'path', + 'signature_request_edit_embedded_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [ + 'application/json', + 'multipart/form-data' + ] + }, + api_client=api_client + ) + self.signature_request_edit_embedded_with_template_endpoint = _Endpoint( + settings={ + 'response_type': (SignatureRequestGetResponse,), + 'auth': [ + 'api_key', + 'oauth2' + ], + 'endpoint_path': '/signature_request/edit_embedded_with_template/{signature_request_id}', + 'operation_id': 'signature_request_edit_embedded_with_template', + 'http_method': 'PUT', + 'servers': None, + }, + params_map={ + 'all': [ + 'signature_request_id', + 'signature_request_edit_embedded_with_template_request', + ], + 'required': [ + 'signature_request_id', + 'signature_request_edit_embedded_with_template_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'signature_request_id': + (str,), + 'signature_request_edit_embedded_with_template_request': + (SignatureRequestEditEmbeddedWithTemplateRequest,), + }, + 'attribute_map': { + 'signature_request_id': 'signature_request_id', + }, + 'location_map': { + 'signature_request_id': 'path', + 'signature_request_edit_embedded_with_template_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [ + 'application/json', + 'multipart/form-data' + ] + }, + api_client=api_client + ) + self.signature_request_edit_with_template_endpoint = _Endpoint( + settings={ + 'response_type': (SignatureRequestGetResponse,), + 'auth': [ + 'api_key', + 'oauth2' + ], + 'endpoint_path': '/signature_request/edit_with_template/{signature_request_id}', + 'operation_id': 'signature_request_edit_with_template', + 'http_method': 'PUT', + 'servers': None, + }, + params_map={ + 'all': [ + 'signature_request_id', + 'signature_request_edit_with_template_request', + ], + 'required': [ + 'signature_request_id', + 'signature_request_edit_with_template_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + ] + }, + root_map={ + 'validations': { + }, + 'allowed_values': { + }, + 'openapi_types': { + 'signature_request_id': + (str,), + 'signature_request_edit_with_template_request': + (SignatureRequestEditWithTemplateRequest,), + }, + 'attribute_map': { + 'signature_request_id': 'signature_request_id', + }, + 'location_map': { + 'signature_request_id': 'path', + 'signature_request_edit_with_template_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [ + 'application/json', + 'multipart/form-data' + ] + }, + api_client=api_client + ) self.signature_request_files_endpoint = _Endpoint( settings={ 'response_type': (file_type,), @@ -1416,6 +1660,422 @@ def signature_request_create_embedded_with_template( raise e + def signature_request_edit( + self, + signature_request_id, + signature_request_edit_request, + **kwargs + ) -> SignatureRequestGetResponse: + """Edit Signature Request # noqa: E501 + + Edits and sends a SignatureRequest with the submitted documents. If `form_fields_per_document` is not specified, a signature page will be affixed where all signers will be required to add their signature, signifying their agreement to all contained documents. **NOTE:** Edit and resend will not deduct your signature request quota. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.signature_request_edit(signature_request_id, signature_request_edit_request, async_req=True) + >>> result = thread.get() + + Args: + signature_request_id (str): The id of the SignatureRequest to edit. + signature_request_edit_request (SignatureRequestEditRequest): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + async_req (bool): execute request asynchronously + + Returns: + SignatureRequestGetResponse + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['signature_request_id'] = \ + signature_request_id + kwargs['signature_request_edit_request'] = \ + signature_request_edit_request + try: + return self.signature_request_edit_endpoint.call_with_http_info(**kwargs) + except ApiException as e: + if e.status == 200: + e.body = self.api_client.deserialize( + response=type('obj_dict', (object,), {'data': e.body}), + response_type=[SignatureRequestGetResponse], + _check_type=True, + ) + + raise e + range_code = "4XX"[0] + range_code_left = int(f"{range_code}00") + range_code_right = int(f"{range_code}99") + + if range_code_left <= e.status <= range_code_right: + e.body = self.api_client.deserialize( + response=type('obj_dict', (object,), {'data': e.body}), + response_type=[ErrorResponse], + _check_type=True, + ) + + raise e + + def signature_request_edit_embedded( + self, + signature_request_id, + signature_request_edit_embedded_request, + **kwargs + ) -> SignatureRequestGetResponse: + """Edit Embedded Signature Request # noqa: E501 + + Edits a SignatureRequest with the submitted documents to be signed in an embedded iFrame. If form_fields_per_document is not specified, a signature page will be affixed where all signers will be required to add their signature, signifying their agreement to all contained documents. Note that embedded signature requests can only be signed in embedded iFrames whereas normal signature requests can only be signed on Dropbox Sign. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.signature_request_edit_embedded(signature_request_id, signature_request_edit_embedded_request, async_req=True) + >>> result = thread.get() + + Args: + signature_request_id (str): The id of the SignatureRequest to edit. + signature_request_edit_embedded_request (SignatureRequestEditEmbeddedRequest): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + async_req (bool): execute request asynchronously + + Returns: + SignatureRequestGetResponse + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['signature_request_id'] = \ + signature_request_id + kwargs['signature_request_edit_embedded_request'] = \ + signature_request_edit_embedded_request + try: + return self.signature_request_edit_embedded_endpoint.call_with_http_info(**kwargs) + except ApiException as e: + if e.status == 200: + e.body = self.api_client.deserialize( + response=type('obj_dict', (object,), {'data': e.body}), + response_type=[SignatureRequestGetResponse], + _check_type=True, + ) + + raise e + range_code = "4XX"[0] + range_code_left = int(f"{range_code}00") + range_code_right = int(f"{range_code}99") + + if range_code_left <= e.status <= range_code_right: + e.body = self.api_client.deserialize( + response=type('obj_dict', (object,), {'data': e.body}), + response_type=[ErrorResponse], + _check_type=True, + ) + + raise e + + def signature_request_edit_embedded_with_template( + self, + signature_request_id, + signature_request_edit_embedded_with_template_request, + **kwargs + ) -> SignatureRequestGetResponse: + """Edit Embedded Signature Request with Template # noqa: E501 + + Edits a SignatureRequest based on the given Template(s) to be signed in an embedded iFrame. Note that embedded signature requests can only be signed in embedded iFrames whereas normal signature requests can only be signed on Dropbox Sign. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.signature_request_edit_embedded_with_template(signature_request_id, signature_request_edit_embedded_with_template_request, async_req=True) + >>> result = thread.get() + + Args: + signature_request_id (str): The id of the SignatureRequest to edit. + signature_request_edit_embedded_with_template_request (SignatureRequestEditEmbeddedWithTemplateRequest): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + async_req (bool): execute request asynchronously + + Returns: + SignatureRequestGetResponse + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['signature_request_id'] = \ + signature_request_id + kwargs['signature_request_edit_embedded_with_template_request'] = \ + signature_request_edit_embedded_with_template_request + try: + return self.signature_request_edit_embedded_with_template_endpoint.call_with_http_info(**kwargs) + except ApiException as e: + if e.status == 200: + e.body = self.api_client.deserialize( + response=type('obj_dict', (object,), {'data': e.body}), + response_type=[SignatureRequestGetResponse], + _check_type=True, + ) + + raise e + range_code = "4XX"[0] + range_code_left = int(f"{range_code}00") + range_code_right = int(f"{range_code}99") + + if range_code_left <= e.status <= range_code_right: + e.body = self.api_client.deserialize( + response=type('obj_dict', (object,), {'data': e.body}), + response_type=[ErrorResponse], + _check_type=True, + ) + + raise e + + def signature_request_edit_with_template( + self, + signature_request_id, + signature_request_edit_with_template_request, + **kwargs + ) -> SignatureRequestGetResponse: + """Edit Signature Request With Template # noqa: E501 + + Edits and sends a SignatureRequest based off of the Template(s) specified with the template_ids parameter. **NOTE:** Edit and resend will not deduct your signature request quota. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.signature_request_edit_with_template(signature_request_id, signature_request_edit_with_template_request, async_req=True) + >>> result = thread.get() + + Args: + signature_request_id (str): The id of the SignatureRequest to edit. + signature_request_edit_with_template_request (SignatureRequestEditWithTemplateRequest): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + async_req (bool): execute request asynchronously + + Returns: + SignatureRequestGetResponse + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['signature_request_id'] = \ + signature_request_id + kwargs['signature_request_edit_with_template_request'] = \ + signature_request_edit_with_template_request + try: + return self.signature_request_edit_with_template_endpoint.call_with_http_info(**kwargs) + except ApiException as e: + if e.status == 200: + e.body = self.api_client.deserialize( + response=type('obj_dict', (object,), {'data': e.body}), + response_type=[SignatureRequestGetResponse], + _check_type=True, + ) + + raise e + range_code = "4XX"[0] + range_code_left = int(f"{range_code}00") + range_code_right = int(f"{range_code}99") + + if range_code_left <= e.status <= range_code_right: + e.body = self.api_client.deserialize( + response=type('obj_dict', (object,), {'data': e.body}), + response_type=[ErrorResponse], + _check_type=True, + ) + + raise e + def signature_request_files( self, signature_request_id, diff --git a/dropbox_sign/api/team_api.py b/dropbox_sign/api/team_api.py index 6481853..98dc215 100644 --- a/dropbox_sign/api/team_api.py +++ b/dropbox_sign/api/team_api.py @@ -1332,7 +1332,7 @@ def team_remove_member( try: return self.team_remove_member_endpoint.call_with_http_info(**kwargs) except ApiException as e: - if e.status == 200: + if e.status == 201: e.body = self.api_client.deserialize( response=type('obj_dict', (object,), {'data': e.body}), response_type=[TeamGetResponse], diff --git a/dropbox_sign/api_client.py b/dropbox_sign/api_client.py index f358d90..e424f25 100644 --- a/dropbox_sign/api_client.py +++ b/dropbox_sign/api_client.py @@ -77,7 +77,7 @@ def __init__(self, configuration=None, header_name=None, header_value=None, self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = 'OpenAPI-Generator/1.3.0/python' + self.user_agent = 'OpenAPI-Generator/1.4.0/python' def __enter__(self): return self diff --git a/dropbox_sign/configuration.py b/dropbox_sign/configuration.py index 867ba7f..b682052 100644 --- a/dropbox_sign/configuration.py +++ b/dropbox_sign/configuration.py @@ -413,7 +413,7 @@ def to_debug_report(self): "OS: {env}\n"\ "Python Version: {pyversion}\n"\ "Version of the API: 3.0.0\n"\ - "SDK Package Version: 1.3.0".\ + "SDK Package Version: 1.4.0".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self): diff --git a/dropbox_sign/event_callback_helper.py b/dropbox_sign/event_callback_helper.py index b996774..e8a87d7 100644 --- a/dropbox_sign/event_callback_helper.py +++ b/dropbox_sign/event_callback_helper.py @@ -34,7 +34,7 @@ def get_callback_type(cls, event_callback: EventCallbackRequest): """ metadata: EventCallbackRequestEventMetadata = event_callback.event.event_metadata - if not metadata.reported_for_app_id: + if not metadata or not metadata.reported_for_app_id: return cls.EVENT_TYPE_ACCOUNT_CALLBACK return cls.EVENT_TYPE_APP_CALLBACK diff --git a/dropbox_sign/model/bulk_send_job_get_response_signature_requests.py b/dropbox_sign/model/bulk_send_job_get_response_signature_requests.py index 2fb0a60..b9963bb 100644 --- a/dropbox_sign/model/bulk_send_job_get_response_signature_requests.py +++ b/dropbox_sign/model/bulk_send_job_get_response_signature_requests.py @@ -124,6 +124,7 @@ def openapi_types(): 'details_url': (str,), # noqa: E501 'cc_email_addresses': ([str],), # noqa: E501 'signing_redirect_url': (str, none_type,), # noqa: E501 + 'final_copy_uri': (str, none_type,), # noqa: E501 'template_ids': ([str], none_type,), # noqa: E501 'custom_fields': ([SignatureRequestResponseCustomFieldBase], none_type,), # noqa: E501 'attachments': ([SignatureRequestResponseAttachment], none_type,), # noqa: E501 @@ -172,6 +173,7 @@ def init(data: any) -> BulkSendJobGetResponseSignatureRequests: 'details_url': 'details_url', # noqa: E501 'cc_email_addresses': 'cc_email_addresses', # noqa: E501 'signing_redirect_url': 'signing_redirect_url', # noqa: E501 + 'final_copy_uri': 'final_copy_uri', # noqa: E501 'template_ids': 'template_ids', # noqa: E501 'custom_fields': 'custom_fields', # noqa: E501 'attachments': 'attachments', # noqa: E501 @@ -327,6 +329,14 @@ def signing_redirect_url(self) -> Optional[str]: def signing_redirect_url(self, value: Optional[str]): setattr(self, "signing_redirect_url", value) + @property + def final_copy_uri(self) -> Optional[str]: + return self.get("final_copy_uri") + + @final_copy_uri.setter + def final_copy_uri(self, value: Optional[str]): + setattr(self, "final_copy_uri", value) + @property def template_ids(self) -> Optional[List[str]]: return self.get("template_ids") @@ -429,6 +439,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 details_url (str): The URL where the requester and the signers can view the current status of the SignatureRequest.. [optional] # noqa: E501 cc_email_addresses ([str]): A list of email addresses that were CCed on the SignatureRequest. They will receive a copy of the final PDF once all the signers have signed.. [optional] # noqa: E501 signing_redirect_url (str, none_type): The URL you want the signer redirected to after they successfully sign.. [optional] # noqa: E501 + final_copy_uri (str, none_type): The path where the completed document can be downloaded. [optional] # noqa: E501 template_ids ([str], none_type): Templates IDs used in this SignatureRequest (if any).. [optional] # noqa: E501 custom_fields ([SignatureRequestResponseCustomFieldBase], none_type): An array of Custom Field objects containing the name and type of each custom field. * Text Field uses `SignatureRequestResponseCustomFieldText` * Checkbox Field uses `SignatureRequestResponseCustomFieldCheckbox`. [optional] # noqa: E501 attachments ([SignatureRequestResponseAttachment], none_type): Signer attachments.. [optional] # noqa: E501 @@ -552,6 +563,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 details_url (str): The URL where the requester and the signers can view the current status of the SignatureRequest.. [optional] # noqa: E501 cc_email_addresses ([str]): A list of email addresses that were CCed on the SignatureRequest. They will receive a copy of the final PDF once all the signers have signed.. [optional] # noqa: E501 signing_redirect_url (str, none_type): The URL you want the signer redirected to after they successfully sign.. [optional] # noqa: E501 + final_copy_uri (str, none_type): The path where the completed document can be downloaded. [optional] # noqa: E501 template_ids ([str], none_type): Templates IDs used in this SignatureRequest (if any).. [optional] # noqa: E501 custom_fields ([SignatureRequestResponseCustomFieldBase], none_type): An array of Custom Field objects containing the name and type of each custom field. * Text Field uses `SignatureRequestResponseCustomFieldText` * Checkbox Field uses `SignatureRequestResponseCustomFieldCheckbox`. [optional] # noqa: E501 attachments ([SignatureRequestResponseAttachment], none_type): Signer attachments.. [optional] # noqa: E501 diff --git a/dropbox_sign/model/event_callback_request_event.py b/dropbox_sign/model/event_callback_request_event.py index c70c2f6..36fd019 100644 --- a/dropbox_sign/model/event_callback_request_event.py +++ b/dropbox_sign/model/event_callback_request_event.py @@ -89,6 +89,7 @@ class EventCallbackRequestEvent(ModelNormal): 'TEMPLATE_CREATED': "template_created", 'TEMPLATE_ERROR': "template_error", 'CALLBACK_TEST': "callback_test", + 'SIGNATURE_REQUEST_SIGNER_REMOVED': "signature_request_signer_removed", }, } @@ -190,14 +191,13 @@ def event_metadata(self, value: EventCallbackRequestEventMetadata): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, event_time, event_type, event_hash, event_metadata, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, event_time, event_type, event_hash, *args, **kwargs): # noqa: E501 """EventCallbackRequestEvent - a model defined in OpenAPI Args: event_time (str): Time the event was created (using Unix time). event_type (str): Type of callback event that was triggered. event_hash (str): Generated hash used to verify source of event data. - event_metadata (EventCallbackRequestEventMetadata): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -230,6 +230,7 @@ def _from_openapi_data(cls, event_time, event_type, event_hash, event_metadata, Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + event_metadata (EventCallbackRequestEventMetadata): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -260,7 +261,6 @@ def _from_openapi_data(cls, event_time, event_type, event_hash, event_metadata, self.event_time = event_time self.event_type = event_type self.event_hash = event_hash - self.event_metadata = event_metadata for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -281,14 +281,13 @@ def _from_openapi_data(cls, event_time, event_type, event_hash, event_metadata, ]) @convert_js_args_to_python_args - def __init__(self, event_time, event_type, event_hash, event_metadata, *args, **kwargs): # noqa: E501 + def __init__(self, event_time, event_type, event_hash, *args, **kwargs): # noqa: E501 """EventCallbackRequestEvent - a model defined in OpenAPI Args: event_time (str): Time the event was created (using Unix time). event_type (str): Type of callback event that was triggered. event_hash (str): Generated hash used to verify source of event data. - event_metadata (EventCallbackRequestEventMetadata): Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -321,6 +320,7 @@ def __init__(self, event_time, event_type, event_hash, event_metadata, *args, ** Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + event_metadata (EventCallbackRequestEventMetadata): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -349,7 +349,6 @@ def __init__(self, event_time, event_type, event_hash, event_metadata, *args, ** self.event_time = event_time self.event_type = event_type self.event_hash = event_hash - self.event_metadata = event_metadata for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ diff --git a/dropbox_sign/model/signature_request_bulk_create_embedded_with_template_request.py b/dropbox_sign/model/signature_request_bulk_create_embedded_with_template_request.py index b105c10..c619128 100644 --- a/dropbox_sign/model/signature_request_bulk_create_embedded_with_template_request.py +++ b/dropbox_sign/model/signature_request_bulk_create_embedded_with_template_request.py @@ -311,7 +311,7 @@ def _from_openapi_data(cls, template_ids, client_id, *args, **kwargs): # noqa: Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - signer_file (file_type): `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns: - `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) **Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field\" suffix will be treated as a custom field (optional) You may only specify field values here, any other options should be set in the custom_fields request parameter. Example CSV: ``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ```. [optional] # noqa: E501 + signer_file (file_type): `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns: - `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). **Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field\" suffix will be treated as a custom field (optional) You may only specify field values here, any other options should be set in the custom_fields request parameter. Example CSV: ``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ```. [optional] # noqa: E501 signer_list ([SubBulkSignerList]): `signer_list` is an array defining values and options for signer fields. Required unless a `signer_file` is used, you may not use both.. [optional] # noqa: E501 allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 ccs ([SubCC]): Add CC email recipients. Required when a CC role exists for the Template.. [optional] # noqa: E501 @@ -409,7 +409,7 @@ def __init__(self, template_ids, client_id, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - signer_file (file_type): `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns: - `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) **Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field\" suffix will be treated as a custom field (optional) You may only specify field values here, any other options should be set in the custom_fields request parameter. Example CSV: ``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ```. [optional] # noqa: E501 + signer_file (file_type): `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns: - `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). **Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field\" suffix will be treated as a custom field (optional) You may only specify field values here, any other options should be set in the custom_fields request parameter. Example CSV: ``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ```. [optional] # noqa: E501 signer_list ([SubBulkSignerList]): `signer_list` is an array defining values and options for signer fields. Required unless a `signer_file` is used, you may not use both.. [optional] # noqa: E501 allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 ccs ([SubCC]): Add CC email recipients. Required when a CC role exists for the Template.. [optional] # noqa: E501 diff --git a/dropbox_sign/model/signature_request_bulk_send_with_template_request.py b/dropbox_sign/model/signature_request_bulk_send_with_template_request.py index 19bf15f..b9cd821 100644 --- a/dropbox_sign/model/signature_request_bulk_send_with_template_request.py +++ b/dropbox_sign/model/signature_request_bulk_send_with_template_request.py @@ -310,7 +310,7 @@ def _from_openapi_data(cls, template_ids, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - signer_file (file_type): `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns: - `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) **Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field\" suffix will be treated as a custom field (optional) You may only specify field values here, any other options should be set in the custom_fields request parameter. Example CSV: ``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ```. [optional] # noqa: E501 + signer_file (file_type): `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns: - `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). **Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field\" suffix will be treated as a custom field (optional) You may only specify field values here, any other options should be set in the custom_fields request parameter. Example CSV: ``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ```. [optional] # noqa: E501 signer_list ([SubBulkSignerList]): `signer_list` is an array defining values and options for signer fields. Required unless a `signer_file` is used, you may not use both.. [optional] # noqa: E501 allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 ccs ([SubCC]): Add CC email recipients. Required when a CC role exists for the Template.. [optional] # noqa: E501 @@ -407,7 +407,7 @@ def __init__(self, template_ids, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) - signer_file (file_type): `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns: - `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) **Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field\" suffix will be treated as a custom field (optional) You may only specify field values here, any other options should be set in the custom_fields request parameter. Example CSV: ``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ```. [optional] # noqa: E501 + signer_file (file_type): `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns: - `name`: the name of the signer filling the role of RoleName - `email_address`: email address of the signer filling the role of RoleName - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). **Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field\" suffix will be treated as a custom field (optional) You may only specify field values here, any other options should be set in the custom_fields request parameter. Example CSV: ``` name, email_address, pin, company_field George, george@example.com, d79a3td, ABC Corp Mary, mary@example.com, gd9as5b, 123 LLC ```. [optional] # noqa: E501 signer_list ([SubBulkSignerList]): `signer_list` is an array defining values and options for signer fields. Required unless a `signer_file` is used, you may not use both.. [optional] # noqa: E501 allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 ccs ([SubCC]): Add CC email recipients. Required when a CC role exists for the Template.. [optional] # noqa: E501 diff --git a/dropbox_sign/model/signature_request_edit_embedded_request.py b/dropbox_sign/model/signature_request_edit_embedded_request.py new file mode 100644 index 0000000..aeeebb0 --- /dev/null +++ b/dropbox_sign/model/signature_request_edit_embedded_request.py @@ -0,0 +1,608 @@ +""" + Dropbox Sign API + + Dropbox Sign v3 API # noqa: E501 + + The version of the OpenAPI document: 3.0.0 + Contact: apisupport@hellosign.com + Generated by: https://openapi-generator.tech +""" + + +from __future__ import annotations +from typing import TYPE_CHECKING, Optional, List, Dict, Union +import json # noqa: F401 +import re # noqa: F401 +import sys # noqa: F401 + +from dropbox_sign import ApiClient +from dropbox_sign.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from dropbox_sign.exceptions import ApiAttributeError +if TYPE_CHECKING: + from dropbox_sign.model.sub_attachment import SubAttachment + from dropbox_sign.model.sub_custom_field import SubCustomField + from dropbox_sign.model.sub_field_options import SubFieldOptions + from dropbox_sign.model.sub_form_field_group import SubFormFieldGroup + from dropbox_sign.model.sub_form_field_rule import SubFormFieldRule + from dropbox_sign.model.sub_form_fields_per_document_base import SubFormFieldsPerDocumentBase + from dropbox_sign.model.sub_signature_request_grouped_signers import SubSignatureRequestGroupedSigners + from dropbox_sign.model.sub_signature_request_signer import SubSignatureRequestSigner + from dropbox_sign.model.sub_signing_options import SubSigningOptions + + +def lazy_import(): + from dropbox_sign.model.sub_attachment import SubAttachment + from dropbox_sign.model.sub_custom_field import SubCustomField + from dropbox_sign.model.sub_field_options import SubFieldOptions + from dropbox_sign.model.sub_form_field_group import SubFormFieldGroup + from dropbox_sign.model.sub_form_field_rule import SubFormFieldRule + from dropbox_sign.model.sub_form_fields_per_document_base import SubFormFieldsPerDocumentBase + from dropbox_sign.model.sub_signature_request_grouped_signers import SubSignatureRequestGroupedSigners + from dropbox_sign.model.sub_signature_request_signer import SubSignatureRequestSigner + from dropbox_sign.model.sub_signing_options import SubSigningOptions + globals()['SubAttachment'] = SubAttachment + globals()['SubCustomField'] = SubCustomField + globals()['SubFieldOptions'] = SubFieldOptions + globals()['SubFormFieldGroup'] = SubFormFieldGroup + globals()['SubFormFieldRule'] = SubFormFieldRule + globals()['SubFormFieldsPerDocumentBase'] = SubFormFieldsPerDocumentBase + globals()['SubSignatureRequestGroupedSigners'] = SubSignatureRequestGroupedSigners + globals()['SubSignatureRequestSigner'] = SubSignatureRequestSigner + globals()['SubSigningOptions'] = SubSigningOptions + + +class SignatureRequestEditEmbeddedRequest(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + ('message',): { + 'max_length': 5000, + }, + ('metadata',): { + }, + ('subject',): { + 'max_length': 255, + }, + ('title',): { + 'max_length': 255, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'client_id': (str,), # noqa: E501 + 'files': ([file_type],), # noqa: E501 + 'file_urls': ([str],), # noqa: E501 + 'signers': ([SubSignatureRequestSigner],), # noqa: E501 + 'grouped_signers': ([SubSignatureRequestGroupedSigners],), # noqa: E501 + 'allow_decline': (bool,), # noqa: E501 + 'allow_reassign': (bool,), # noqa: E501 + 'attachments': ([SubAttachment],), # noqa: E501 + 'cc_email_addresses': ([str],), # noqa: E501 + 'custom_fields': ([SubCustomField],), # noqa: E501 + 'field_options': (SubFieldOptions,), # noqa: E501 + 'form_field_groups': ([SubFormFieldGroup],), # noqa: E501 + 'form_field_rules': ([SubFormFieldRule],), # noqa: E501 + 'form_fields_per_document': ([SubFormFieldsPerDocumentBase],), # noqa: E501 + 'hide_text_tags': (bool,), # noqa: E501 + 'message': (str,), # noqa: E501 + 'metadata': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501 + 'signing_options': (SubSigningOptions,), # noqa: E501 + 'subject': (str,), # noqa: E501 + 'test_mode': (bool,), # noqa: E501 + 'title': (str,), # noqa: E501 + 'use_text_tags': (bool,), # noqa: E501 + 'populate_auto_fill_fields': (bool,), # noqa: E501 + 'expires_at': (int, none_type,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + @staticmethod + def init(data: any) -> SignatureRequestEditEmbeddedRequest: + """ + Attempt to instantiate and hydrate a new instance of this class + """ + try: + obj_data = json.dumps(data) + except TypeError: + obj_data = data + + return ApiClient().deserialize( + response=type('obj_dict', (object,), {'data': obj_data}), + response_type=[SignatureRequestEditEmbeddedRequest], + _check_type=True, + ) + + attribute_map = { + 'client_id': 'client_id', # noqa: E501 + 'files': 'files', # noqa: E501 + 'file_urls': 'file_urls', # noqa: E501 + 'signers': 'signers', # noqa: E501 + 'grouped_signers': 'grouped_signers', # noqa: E501 + 'allow_decline': 'allow_decline', # noqa: E501 + 'allow_reassign': 'allow_reassign', # noqa: E501 + 'attachments': 'attachments', # noqa: E501 + 'cc_email_addresses': 'cc_email_addresses', # noqa: E501 + 'custom_fields': 'custom_fields', # noqa: E501 + 'field_options': 'field_options', # noqa: E501 + 'form_field_groups': 'form_field_groups', # noqa: E501 + 'form_field_rules': 'form_field_rules', # noqa: E501 + 'form_fields_per_document': 'form_fields_per_document', # noqa: E501 + 'hide_text_tags': 'hide_text_tags', # noqa: E501 + 'message': 'message', # noqa: E501 + 'metadata': 'metadata', # noqa: E501 + 'signing_options': 'signing_options', # noqa: E501 + 'subject': 'subject', # noqa: E501 + 'test_mode': 'test_mode', # noqa: E501 + 'title': 'title', # noqa: E501 + 'use_text_tags': 'use_text_tags', # noqa: E501 + 'populate_auto_fill_fields': 'populate_auto_fill_fields', # noqa: E501 + 'expires_at': 'expires_at', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @property + def client_id(self) -> str: + return self.get("client_id") + + @client_id.setter + def client_id(self, value: str): + setattr(self, "client_id", value) + + @property + def files(self) -> List[file_type]: + return self.get("files") + + @files.setter + def files(self, value: List[file_type]): + setattr(self, "files", value) + + @property + def file_urls(self) -> List[str]: + return self.get("file_urls") + + @file_urls.setter + def file_urls(self, value: List[str]): + setattr(self, "file_urls", value) + + @property + def signers(self) -> List[SubSignatureRequestSigner]: + return self.get("signers") + + @signers.setter + def signers(self, value: List[SubSignatureRequestSigner]): + setattr(self, "signers", value) + + @property + def grouped_signers(self) -> List[SubSignatureRequestGroupedSigners]: + return self.get("grouped_signers") + + @grouped_signers.setter + def grouped_signers(self, value: List[SubSignatureRequestGroupedSigners]): + setattr(self, "grouped_signers", value) + + @property + def allow_decline(self) -> bool: + return self.get("allow_decline") + + @allow_decline.setter + def allow_decline(self, value: bool): + setattr(self, "allow_decline", value) + + @property + def allow_reassign(self) -> bool: + return self.get("allow_reassign") + + @allow_reassign.setter + def allow_reassign(self, value: bool): + setattr(self, "allow_reassign", value) + + @property + def attachments(self) -> List[SubAttachment]: + return self.get("attachments") + + @attachments.setter + def attachments(self, value: List[SubAttachment]): + setattr(self, "attachments", value) + + @property + def cc_email_addresses(self) -> List[str]: + return self.get("cc_email_addresses") + + @cc_email_addresses.setter + def cc_email_addresses(self, value: List[str]): + setattr(self, "cc_email_addresses", value) + + @property + def custom_fields(self) -> List[SubCustomField]: + return self.get("custom_fields") + + @custom_fields.setter + def custom_fields(self, value: List[SubCustomField]): + setattr(self, "custom_fields", value) + + @property + def field_options(self) -> SubFieldOptions: + return self.get("field_options") + + @field_options.setter + def field_options(self, value: SubFieldOptions): + setattr(self, "field_options", value) + + @property + def form_field_groups(self) -> List[SubFormFieldGroup]: + return self.get("form_field_groups") + + @form_field_groups.setter + def form_field_groups(self, value: List[SubFormFieldGroup]): + setattr(self, "form_field_groups", value) + + @property + def form_field_rules(self) -> List[SubFormFieldRule]: + return self.get("form_field_rules") + + @form_field_rules.setter + def form_field_rules(self, value: List[SubFormFieldRule]): + setattr(self, "form_field_rules", value) + + @property + def form_fields_per_document(self) -> List[SubFormFieldsPerDocumentBase]: + return self.get("form_fields_per_document") + + @form_fields_per_document.setter + def form_fields_per_document(self, value: List[SubFormFieldsPerDocumentBase]): + setattr(self, "form_fields_per_document", value) + + @property + def hide_text_tags(self) -> bool: + return self.get("hide_text_tags") + + @hide_text_tags.setter + def hide_text_tags(self, value: bool): + setattr(self, "hide_text_tags", value) + + @property + def message(self) -> str: + return self.get("message") + + @message.setter + def message(self, value: str): + setattr(self, "message", value) + + @property + def metadata(self) -> Dict[str, Union[bool, date, datetime, dict, float, int, list, str, none_type]]: + return self.get("metadata") + + @metadata.setter + def metadata(self, value: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, none_type]]): + setattr(self, "metadata", value) + + @property + def signing_options(self) -> SubSigningOptions: + return self.get("signing_options") + + @signing_options.setter + def signing_options(self, value: SubSigningOptions): + setattr(self, "signing_options", value) + + @property + def subject(self) -> str: + return self.get("subject") + + @subject.setter + def subject(self, value: str): + setattr(self, "subject", value) + + @property + def test_mode(self) -> bool: + return self.get("test_mode") + + @test_mode.setter + def test_mode(self, value: bool): + setattr(self, "test_mode", value) + + @property + def title(self) -> str: + return self.get("title") + + @title.setter + def title(self, value: str): + setattr(self, "title", value) + + @property + def use_text_tags(self) -> bool: + return self.get("use_text_tags") + + @use_text_tags.setter + def use_text_tags(self, value: bool): + setattr(self, "use_text_tags", value) + + @property + def populate_auto_fill_fields(self) -> bool: + return self.get("populate_auto_fill_fields") + + @populate_auto_fill_fields.setter + def populate_auto_fill_fields(self, value: bool): + setattr(self, "populate_auto_fill_fields", value) + + @property + def expires_at(self) -> Optional[int]: + return self.get("expires_at") + + @expires_at.setter + def expires_at(self, value: Optional[int]): + setattr(self, "expires_at", value) + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, client_id, *args, **kwargs): # noqa: E501 + """SignatureRequestEditEmbeddedRequest - a model defined in OpenAPI + + Args: + client_id (str): Client id of the app you're using to create this embedded signature request. Used for security purposes. + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + files ([file_type]): Use `files[]` to indicate the uploaded file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + file_urls ([str]): Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + signers ([SubSignatureRequestSigner]): Add Signers to your Signature Request. This endpoint requires either **signers** or **grouped_signers**, but not both.. [optional] # noqa: E501 + grouped_signers ([SubSignatureRequestGroupedSigners]): Add Grouped Signers to your Signature Request. This endpoint requires either **signers** or **grouped_signers**, but not both.. [optional] # noqa: E501 + allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + allow_reassign (bool): Allows signers to reassign their signature requests to other signers if set to `true`. Defaults to `false`. **Note**: Only available for Premium plan.. [optional] if omitted the server will use the default value of False # noqa: E501 + attachments ([SubAttachment]): A list describing the attachments. [optional] # noqa: E501 + cc_email_addresses ([str]): The email addresses that should be CCed.. [optional] # noqa: E501 + custom_fields ([SubCustomField]): When used together with merge fields, `custom_fields` allows users to add pre-filled data to their signature requests. Pre-filled data can be used with \"send-once\" signature requests by adding merge fields with `form_fields_per_document` or [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) while passing values back with `custom_fields` together in one API call. For using pre-filled on repeatable signature requests, merge fields are added to templates in the Dropbox Sign UI or by calling [/template/create_embedded_draft](/api/reference/operation/templateCreateEmbeddedDraft) and then passing `custom_fields` on subsequent signature requests referencing that template.. [optional] # noqa: E501 + field_options (SubFieldOptions): [optional] # noqa: E501 + form_field_groups ([SubFormFieldGroup]): Group information for fields defined in `form_fields_per_document`. String-indexed JSON array with `group_label` and `requirement` keys. `form_fields_per_document` must contain fields referencing a group defined in `form_field_groups`.. [optional] # noqa: E501 + form_field_rules ([SubFormFieldRule]): Conditional Logic rules for fields defined in `form_fields_per_document`.. [optional] # noqa: E501 + form_fields_per_document ([SubFormFieldsPerDocumentBase]): The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).) **NOTE**: Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types. * Text Field use `SubFormFieldsPerDocumentText` * Dropdown Field use `SubFormFieldsPerDocumentDropdown` * Hyperlink Field use `SubFormFieldsPerDocumentHyperlink` * Checkbox Field use `SubFormFieldsPerDocumentCheckbox` * Radio Field use `SubFormFieldsPerDocumentRadio` * Signature Field use `SubFormFieldsPerDocumentSignature` * Date Signed Field use `SubFormFieldsPerDocumentDateSigned` * Initials Field use `SubFormFieldsPerDocumentInitials` * Text Merge Field use `SubFormFieldsPerDocumentTextMerge` * Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge`. [optional] # noqa: E501 + hide_text_tags (bool): Enables automatic Text Tag removal when set to true. **NOTE**: Removing text tags this way can cause unwanted clipping. We recommend leaving this setting on `false` and instead hiding your text tags using white text or a similar approach. See the [Text Tags Walkthrough](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) for more information.. [optional] if omitted the server will use the default value of False # noqa: E501 + message (str): The custom message in the email that will be sent to the signers.. [optional] # noqa: E501 + metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long.. [optional] # noqa: E501 + signing_options (SubSigningOptions): [optional] # noqa: E501 + subject (str): The subject in the email that will be sent to the signers.. [optional] # noqa: E501 + test_mode (bool): Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + title (str): The title you want to assign to the SignatureRequest.. [optional] # noqa: E501 + use_text_tags (bool): Send with a value of `true` if you wish to enable [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) parsing in your document. Defaults to disabled, or `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + populate_auto_fill_fields (bool): Controls whether [auto fill fields](https://faq.hellosign.com/hc/en-us/articles/360051467511-Auto-Fill-Fields) can automatically populate a signer's information during signing. ⚠️ **Note** ⚠️: Keep your signer's information safe by ensuring that the _signer on your signature request is the intended party_ before using this feature.. [optional] if omitted the server will use the default value of False # noqa: E501 + expires_at (int, none_type): When the signature request will expire. Unsigned signatures will be moved to the expired status, and no longer signable. See [Signature Request Expiration Date](https://developers.hellosign.com/docs/signature-request/expiration/) for details.. [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.client_id = client_id + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, client_id, *args, **kwargs): # noqa: E501 + """SignatureRequestEditEmbeddedRequest - a model defined in OpenAPI + + Args: + client_id (str): Client id of the app you're using to create this embedded signature request. Used for security purposes. + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + files ([file_type]): Use `files[]` to indicate the uploaded file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + file_urls ([str]): Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + signers ([SubSignatureRequestSigner]): Add Signers to your Signature Request. This endpoint requires either **signers** or **grouped_signers**, but not both.. [optional] # noqa: E501 + grouped_signers ([SubSignatureRequestGroupedSigners]): Add Grouped Signers to your Signature Request. This endpoint requires either **signers** or **grouped_signers**, but not both.. [optional] # noqa: E501 + allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + allow_reassign (bool): Allows signers to reassign their signature requests to other signers if set to `true`. Defaults to `false`. **Note**: Only available for Premium plan.. [optional] if omitted the server will use the default value of False # noqa: E501 + attachments ([SubAttachment]): A list describing the attachments. [optional] # noqa: E501 + cc_email_addresses ([str]): The email addresses that should be CCed.. [optional] # noqa: E501 + custom_fields ([SubCustomField]): When used together with merge fields, `custom_fields` allows users to add pre-filled data to their signature requests. Pre-filled data can be used with \"send-once\" signature requests by adding merge fields with `form_fields_per_document` or [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) while passing values back with `custom_fields` together in one API call. For using pre-filled on repeatable signature requests, merge fields are added to templates in the Dropbox Sign UI or by calling [/template/create_embedded_draft](/api/reference/operation/templateCreateEmbeddedDraft) and then passing `custom_fields` on subsequent signature requests referencing that template.. [optional] # noqa: E501 + field_options (SubFieldOptions): [optional] # noqa: E501 + form_field_groups ([SubFormFieldGroup]): Group information for fields defined in `form_fields_per_document`. String-indexed JSON array with `group_label` and `requirement` keys. `form_fields_per_document` must contain fields referencing a group defined in `form_field_groups`.. [optional] # noqa: E501 + form_field_rules ([SubFormFieldRule]): Conditional Logic rules for fields defined in `form_fields_per_document`.. [optional] # noqa: E501 + form_fields_per_document ([SubFormFieldsPerDocumentBase]): The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).) **NOTE**: Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types. * Text Field use `SubFormFieldsPerDocumentText` * Dropdown Field use `SubFormFieldsPerDocumentDropdown` * Hyperlink Field use `SubFormFieldsPerDocumentHyperlink` * Checkbox Field use `SubFormFieldsPerDocumentCheckbox` * Radio Field use `SubFormFieldsPerDocumentRadio` * Signature Field use `SubFormFieldsPerDocumentSignature` * Date Signed Field use `SubFormFieldsPerDocumentDateSigned` * Initials Field use `SubFormFieldsPerDocumentInitials` * Text Merge Field use `SubFormFieldsPerDocumentTextMerge` * Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge`. [optional] # noqa: E501 + hide_text_tags (bool): Enables automatic Text Tag removal when set to true. **NOTE**: Removing text tags this way can cause unwanted clipping. We recommend leaving this setting on `false` and instead hiding your text tags using white text or a similar approach. See the [Text Tags Walkthrough](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) for more information.. [optional] if omitted the server will use the default value of False # noqa: E501 + message (str): The custom message in the email that will be sent to the signers.. [optional] # noqa: E501 + metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long.. [optional] # noqa: E501 + signing_options (SubSigningOptions): [optional] # noqa: E501 + subject (str): The subject in the email that will be sent to the signers.. [optional] # noqa: E501 + test_mode (bool): Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + title (str): The title you want to assign to the SignatureRequest.. [optional] # noqa: E501 + use_text_tags (bool): Send with a value of `true` if you wish to enable [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) parsing in your document. Defaults to disabled, or `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + populate_auto_fill_fields (bool): Controls whether [auto fill fields](https://faq.hellosign.com/hc/en-us/articles/360051467511-Auto-Fill-Fields) can automatically populate a signer's information during signing. ⚠️ **Note** ⚠️: Keep your signer's information safe by ensuring that the _signer on your signature request is the intended party_ before using this feature.. [optional] if omitted the server will use the default value of False # noqa: E501 + expires_at (int, none_type): When the signature request will expire. Unsigned signatures will be moved to the expired status, and no longer signable. See [Signature Request Expiration Date](https://developers.hellosign.com/docs/signature-request/expiration/) for details.. [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.client_id = client_id + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/dropbox_sign/model/signature_request_edit_embedded_with_template_request.py b/dropbox_sign/model/signature_request_edit_embedded_with_template_request.py new file mode 100644 index 0000000..30ed5e3 --- /dev/null +++ b/dropbox_sign/model/signature_request_edit_embedded_with_template_request.py @@ -0,0 +1,489 @@ +""" + Dropbox Sign API + + Dropbox Sign v3 API # noqa: E501 + + The version of the OpenAPI document: 3.0.0 + Contact: apisupport@hellosign.com + Generated by: https://openapi-generator.tech +""" + + +from __future__ import annotations +from typing import TYPE_CHECKING, Optional, List, Dict, Union +import json # noqa: F401 +import re # noqa: F401 +import sys # noqa: F401 + +from dropbox_sign import ApiClient +from dropbox_sign.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from dropbox_sign.exceptions import ApiAttributeError +if TYPE_CHECKING: + from dropbox_sign.model.sub_cc import SubCC + from dropbox_sign.model.sub_custom_field import SubCustomField + from dropbox_sign.model.sub_signature_request_template_signer import SubSignatureRequestTemplateSigner + from dropbox_sign.model.sub_signing_options import SubSigningOptions + + +def lazy_import(): + from dropbox_sign.model.sub_cc import SubCC + from dropbox_sign.model.sub_custom_field import SubCustomField + from dropbox_sign.model.sub_signature_request_template_signer import SubSignatureRequestTemplateSigner + from dropbox_sign.model.sub_signing_options import SubSigningOptions + globals()['SubCC'] = SubCC + globals()['SubCustomField'] = SubCustomField + globals()['SubSignatureRequestTemplateSigner'] = SubSignatureRequestTemplateSigner + globals()['SubSigningOptions'] = SubSigningOptions + + +class SignatureRequestEditEmbeddedWithTemplateRequest(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + ('message',): { + 'max_length': 5000, + }, + ('metadata',): { + }, + ('subject',): { + 'max_length': 255, + }, + ('title',): { + 'max_length': 255, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'template_ids': ([str],), # noqa: E501 + 'client_id': (str,), # noqa: E501 + 'signers': ([SubSignatureRequestTemplateSigner],), # noqa: E501 + 'allow_decline': (bool,), # noqa: E501 + 'ccs': ([SubCC],), # noqa: E501 + 'custom_fields': ([SubCustomField],), # noqa: E501 + 'files': ([file_type],), # noqa: E501 + 'file_urls': ([str],), # noqa: E501 + 'message': (str,), # noqa: E501 + 'metadata': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501 + 'signing_options': (SubSigningOptions,), # noqa: E501 + 'subject': (str,), # noqa: E501 + 'test_mode': (bool,), # noqa: E501 + 'title': (str,), # noqa: E501 + 'populate_auto_fill_fields': (bool,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + @staticmethod + def init(data: any) -> SignatureRequestEditEmbeddedWithTemplateRequest: + """ + Attempt to instantiate and hydrate a new instance of this class + """ + try: + obj_data = json.dumps(data) + except TypeError: + obj_data = data + + return ApiClient().deserialize( + response=type('obj_dict', (object,), {'data': obj_data}), + response_type=[SignatureRequestEditEmbeddedWithTemplateRequest], + _check_type=True, + ) + + attribute_map = { + 'template_ids': 'template_ids', # noqa: E501 + 'client_id': 'client_id', # noqa: E501 + 'signers': 'signers', # noqa: E501 + 'allow_decline': 'allow_decline', # noqa: E501 + 'ccs': 'ccs', # noqa: E501 + 'custom_fields': 'custom_fields', # noqa: E501 + 'files': 'files', # noqa: E501 + 'file_urls': 'file_urls', # noqa: E501 + 'message': 'message', # noqa: E501 + 'metadata': 'metadata', # noqa: E501 + 'signing_options': 'signing_options', # noqa: E501 + 'subject': 'subject', # noqa: E501 + 'test_mode': 'test_mode', # noqa: E501 + 'title': 'title', # noqa: E501 + 'populate_auto_fill_fields': 'populate_auto_fill_fields', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @property + def template_ids(self) -> List[str]: + return self.get("template_ids") + + @template_ids.setter + def template_ids(self, value: List[str]): + setattr(self, "template_ids", value) + + @property + def client_id(self) -> str: + return self.get("client_id") + + @client_id.setter + def client_id(self, value: str): + setattr(self, "client_id", value) + + @property + def signers(self) -> List[SubSignatureRequestTemplateSigner]: + return self.get("signers") + + @signers.setter + def signers(self, value: List[SubSignatureRequestTemplateSigner]): + setattr(self, "signers", value) + + @property + def allow_decline(self) -> bool: + return self.get("allow_decline") + + @allow_decline.setter + def allow_decline(self, value: bool): + setattr(self, "allow_decline", value) + + @property + def ccs(self) -> List[SubCC]: + return self.get("ccs") + + @ccs.setter + def ccs(self, value: List[SubCC]): + setattr(self, "ccs", value) + + @property + def custom_fields(self) -> List[SubCustomField]: + return self.get("custom_fields") + + @custom_fields.setter + def custom_fields(self, value: List[SubCustomField]): + setattr(self, "custom_fields", value) + + @property + def files(self) -> List[file_type]: + return self.get("files") + + @files.setter + def files(self, value: List[file_type]): + setattr(self, "files", value) + + @property + def file_urls(self) -> List[str]: + return self.get("file_urls") + + @file_urls.setter + def file_urls(self, value: List[str]): + setattr(self, "file_urls", value) + + @property + def message(self) -> str: + return self.get("message") + + @message.setter + def message(self, value: str): + setattr(self, "message", value) + + @property + def metadata(self) -> Dict[str, Union[bool, date, datetime, dict, float, int, list, str, none_type]]: + return self.get("metadata") + + @metadata.setter + def metadata(self, value: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, none_type]]): + setattr(self, "metadata", value) + + @property + def signing_options(self) -> SubSigningOptions: + return self.get("signing_options") + + @signing_options.setter + def signing_options(self, value: SubSigningOptions): + setattr(self, "signing_options", value) + + @property + def subject(self) -> str: + return self.get("subject") + + @subject.setter + def subject(self, value: str): + setattr(self, "subject", value) + + @property + def test_mode(self) -> bool: + return self.get("test_mode") + + @test_mode.setter + def test_mode(self, value: bool): + setattr(self, "test_mode", value) + + @property + def title(self) -> str: + return self.get("title") + + @title.setter + def title(self, value: str): + setattr(self, "title", value) + + @property + def populate_auto_fill_fields(self) -> bool: + return self.get("populate_auto_fill_fields") + + @populate_auto_fill_fields.setter + def populate_auto_fill_fields(self, value: bool): + setattr(self, "populate_auto_fill_fields", value) + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, template_ids, client_id, signers, *args, **kwargs): # noqa: E501 + """SignatureRequestEditEmbeddedWithTemplateRequest - a model defined in OpenAPI + + Args: + template_ids ([str]): Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used. + client_id (str): Client id of the app you're using to create this embedded signature request. Used for security purposes. + signers ([SubSignatureRequestTemplateSigner]): Add Signers to your Templated-based Signature Request. + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + ccs ([SubCC]): Add CC email recipients. Required when a CC role exists for the Template.. [optional] # noqa: E501 + custom_fields ([SubCustomField]): An array defining values and options for custom fields. Required when a custom field exists in the Template.. [optional] # noqa: E501 + files ([file_type]): Use `files[]` to indicate the uploaded file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + file_urls ([str]): Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + message (str): The custom message in the email that will be sent to the signers.. [optional] # noqa: E501 + metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long.. [optional] # noqa: E501 + signing_options (SubSigningOptions): [optional] # noqa: E501 + subject (str): The subject in the email that will be sent to the signers.. [optional] # noqa: E501 + test_mode (bool): Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + title (str): The title you want to assign to the SignatureRequest.. [optional] # noqa: E501 + populate_auto_fill_fields (bool): Controls whether [auto fill fields](https://faq.hellosign.com/hc/en-us/articles/360051467511-Auto-Fill-Fields) can automatically populate a signer's information during signing. ⚠️ **Note** ⚠️: Keep your signer's information safe by ensuring that the _signer on your signature request is the intended party_ before using this feature.. [optional] if omitted the server will use the default value of False # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.template_ids = template_ids + self.client_id = client_id + self.signers = signers + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, template_ids, client_id, signers, *args, **kwargs): # noqa: E501 + """SignatureRequestEditEmbeddedWithTemplateRequest - a model defined in OpenAPI + + Args: + template_ids ([str]): Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used. + client_id (str): Client id of the app you're using to create this embedded signature request. Used for security purposes. + signers ([SubSignatureRequestTemplateSigner]): Add Signers to your Templated-based Signature Request. + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + ccs ([SubCC]): Add CC email recipients. Required when a CC role exists for the Template.. [optional] # noqa: E501 + custom_fields ([SubCustomField]): An array defining values and options for custom fields. Required when a custom field exists in the Template.. [optional] # noqa: E501 + files ([file_type]): Use `files[]` to indicate the uploaded file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + file_urls ([str]): Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + message (str): The custom message in the email that will be sent to the signers.. [optional] # noqa: E501 + metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long.. [optional] # noqa: E501 + signing_options (SubSigningOptions): [optional] # noqa: E501 + subject (str): The subject in the email that will be sent to the signers.. [optional] # noqa: E501 + test_mode (bool): Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + title (str): The title you want to assign to the SignatureRequest.. [optional] # noqa: E501 + populate_auto_fill_fields (bool): Controls whether [auto fill fields](https://faq.hellosign.com/hc/en-us/articles/360051467511-Auto-Fill-Fields) can automatically populate a signer's information during signing. ⚠️ **Note** ⚠️: Keep your signer's information safe by ensuring that the _signer on your signature request is the intended party_ before using this feature.. [optional] if omitted the server will use the default value of False # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.template_ids = template_ids + self.client_id = client_id + self.signers = signers + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/dropbox_sign/model/signature_request_edit_request.py b/dropbox_sign/model/signature_request_edit_request.py new file mode 100644 index 0000000..cb9b355 --- /dev/null +++ b/dropbox_sign/model/signature_request_edit_request.py @@ -0,0 +1,626 @@ +""" + Dropbox Sign API + + Dropbox Sign v3 API # noqa: E501 + + The version of the OpenAPI document: 3.0.0 + Contact: apisupport@hellosign.com + Generated by: https://openapi-generator.tech +""" + + +from __future__ import annotations +from typing import TYPE_CHECKING, Optional, List, Dict, Union +import json # noqa: F401 +import re # noqa: F401 +import sys # noqa: F401 + +from dropbox_sign import ApiClient +from dropbox_sign.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from dropbox_sign.exceptions import ApiAttributeError +if TYPE_CHECKING: + from dropbox_sign.model.sub_attachment import SubAttachment + from dropbox_sign.model.sub_custom_field import SubCustomField + from dropbox_sign.model.sub_field_options import SubFieldOptions + from dropbox_sign.model.sub_form_field_group import SubFormFieldGroup + from dropbox_sign.model.sub_form_field_rule import SubFormFieldRule + from dropbox_sign.model.sub_form_fields_per_document_base import SubFormFieldsPerDocumentBase + from dropbox_sign.model.sub_signature_request_grouped_signers import SubSignatureRequestGroupedSigners + from dropbox_sign.model.sub_signature_request_signer import SubSignatureRequestSigner + from dropbox_sign.model.sub_signing_options import SubSigningOptions + + +def lazy_import(): + from dropbox_sign.model.sub_attachment import SubAttachment + from dropbox_sign.model.sub_custom_field import SubCustomField + from dropbox_sign.model.sub_field_options import SubFieldOptions + from dropbox_sign.model.sub_form_field_group import SubFormFieldGroup + from dropbox_sign.model.sub_form_field_rule import SubFormFieldRule + from dropbox_sign.model.sub_form_fields_per_document_base import SubFormFieldsPerDocumentBase + from dropbox_sign.model.sub_signature_request_grouped_signers import SubSignatureRequestGroupedSigners + from dropbox_sign.model.sub_signature_request_signer import SubSignatureRequestSigner + from dropbox_sign.model.sub_signing_options import SubSigningOptions + globals()['SubAttachment'] = SubAttachment + globals()['SubCustomField'] = SubCustomField + globals()['SubFieldOptions'] = SubFieldOptions + globals()['SubFormFieldGroup'] = SubFormFieldGroup + globals()['SubFormFieldRule'] = SubFormFieldRule + globals()['SubFormFieldsPerDocumentBase'] = SubFormFieldsPerDocumentBase + globals()['SubSignatureRequestGroupedSigners'] = SubSignatureRequestGroupedSigners + globals()['SubSignatureRequestSigner'] = SubSignatureRequestSigner + globals()['SubSigningOptions'] = SubSigningOptions + + +class SignatureRequestEditRequest(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + ('message',): { + 'max_length': 5000, + }, + ('metadata',): { + }, + ('subject',): { + 'max_length': 255, + }, + ('title',): { + 'max_length': 255, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'files': ([file_type],), # noqa: E501 + 'file_urls': ([str],), # noqa: E501 + 'signers': ([SubSignatureRequestSigner],), # noqa: E501 + 'grouped_signers': ([SubSignatureRequestGroupedSigners],), # noqa: E501 + 'allow_decline': (bool,), # noqa: E501 + 'allow_reassign': (bool,), # noqa: E501 + 'attachments': ([SubAttachment],), # noqa: E501 + 'cc_email_addresses': ([str],), # noqa: E501 + 'client_id': (str,), # noqa: E501 + 'custom_fields': ([SubCustomField],), # noqa: E501 + 'field_options': (SubFieldOptions,), # noqa: E501 + 'form_field_groups': ([SubFormFieldGroup],), # noqa: E501 + 'form_field_rules': ([SubFormFieldRule],), # noqa: E501 + 'form_fields_per_document': ([SubFormFieldsPerDocumentBase],), # noqa: E501 + 'hide_text_tags': (bool,), # noqa: E501 + 'is_qualified_signature': (bool,), # noqa: E501 + 'is_eid': (bool,), # noqa: E501 + 'message': (str,), # noqa: E501 + 'metadata': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501 + 'signing_options': (SubSigningOptions,), # noqa: E501 + 'signing_redirect_url': (str,), # noqa: E501 + 'subject': (str,), # noqa: E501 + 'test_mode': (bool,), # noqa: E501 + 'title': (str,), # noqa: E501 + 'use_text_tags': (bool,), # noqa: E501 + 'expires_at': (int, none_type,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + @staticmethod + def init(data: any) -> SignatureRequestEditRequest: + """ + Attempt to instantiate and hydrate a new instance of this class + """ + try: + obj_data = json.dumps(data) + except TypeError: + obj_data = data + + return ApiClient().deserialize( + response=type('obj_dict', (object,), {'data': obj_data}), + response_type=[SignatureRequestEditRequest], + _check_type=True, + ) + + attribute_map = { + 'files': 'files', # noqa: E501 + 'file_urls': 'file_urls', # noqa: E501 + 'signers': 'signers', # noqa: E501 + 'grouped_signers': 'grouped_signers', # noqa: E501 + 'allow_decline': 'allow_decline', # noqa: E501 + 'allow_reassign': 'allow_reassign', # noqa: E501 + 'attachments': 'attachments', # noqa: E501 + 'cc_email_addresses': 'cc_email_addresses', # noqa: E501 + 'client_id': 'client_id', # noqa: E501 + 'custom_fields': 'custom_fields', # noqa: E501 + 'field_options': 'field_options', # noqa: E501 + 'form_field_groups': 'form_field_groups', # noqa: E501 + 'form_field_rules': 'form_field_rules', # noqa: E501 + 'form_fields_per_document': 'form_fields_per_document', # noqa: E501 + 'hide_text_tags': 'hide_text_tags', # noqa: E501 + 'is_qualified_signature': 'is_qualified_signature', # noqa: E501 + 'is_eid': 'is_eid', # noqa: E501 + 'message': 'message', # noqa: E501 + 'metadata': 'metadata', # noqa: E501 + 'signing_options': 'signing_options', # noqa: E501 + 'signing_redirect_url': 'signing_redirect_url', # noqa: E501 + 'subject': 'subject', # noqa: E501 + 'test_mode': 'test_mode', # noqa: E501 + 'title': 'title', # noqa: E501 + 'use_text_tags': 'use_text_tags', # noqa: E501 + 'expires_at': 'expires_at', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @property + def files(self) -> List[file_type]: + return self.get("files") + + @files.setter + def files(self, value: List[file_type]): + setattr(self, "files", value) + + @property + def file_urls(self) -> List[str]: + return self.get("file_urls") + + @file_urls.setter + def file_urls(self, value: List[str]): + setattr(self, "file_urls", value) + + @property + def signers(self) -> List[SubSignatureRequestSigner]: + return self.get("signers") + + @signers.setter + def signers(self, value: List[SubSignatureRequestSigner]): + setattr(self, "signers", value) + + @property + def grouped_signers(self) -> List[SubSignatureRequestGroupedSigners]: + return self.get("grouped_signers") + + @grouped_signers.setter + def grouped_signers(self, value: List[SubSignatureRequestGroupedSigners]): + setattr(self, "grouped_signers", value) + + @property + def allow_decline(self) -> bool: + return self.get("allow_decline") + + @allow_decline.setter + def allow_decline(self, value: bool): + setattr(self, "allow_decline", value) + + @property + def allow_reassign(self) -> bool: + return self.get("allow_reassign") + + @allow_reassign.setter + def allow_reassign(self, value: bool): + setattr(self, "allow_reassign", value) + + @property + def attachments(self) -> List[SubAttachment]: + return self.get("attachments") + + @attachments.setter + def attachments(self, value: List[SubAttachment]): + setattr(self, "attachments", value) + + @property + def cc_email_addresses(self) -> List[str]: + return self.get("cc_email_addresses") + + @cc_email_addresses.setter + def cc_email_addresses(self, value: List[str]): + setattr(self, "cc_email_addresses", value) + + @property + def client_id(self) -> str: + return self.get("client_id") + + @client_id.setter + def client_id(self, value: str): + setattr(self, "client_id", value) + + @property + def custom_fields(self) -> List[SubCustomField]: + return self.get("custom_fields") + + @custom_fields.setter + def custom_fields(self, value: List[SubCustomField]): + setattr(self, "custom_fields", value) + + @property + def field_options(self) -> SubFieldOptions: + return self.get("field_options") + + @field_options.setter + def field_options(self, value: SubFieldOptions): + setattr(self, "field_options", value) + + @property + def form_field_groups(self) -> List[SubFormFieldGroup]: + return self.get("form_field_groups") + + @form_field_groups.setter + def form_field_groups(self, value: List[SubFormFieldGroup]): + setattr(self, "form_field_groups", value) + + @property + def form_field_rules(self) -> List[SubFormFieldRule]: + return self.get("form_field_rules") + + @form_field_rules.setter + def form_field_rules(self, value: List[SubFormFieldRule]): + setattr(self, "form_field_rules", value) + + @property + def form_fields_per_document(self) -> List[SubFormFieldsPerDocumentBase]: + return self.get("form_fields_per_document") + + @form_fields_per_document.setter + def form_fields_per_document(self, value: List[SubFormFieldsPerDocumentBase]): + setattr(self, "form_fields_per_document", value) + + @property + def hide_text_tags(self) -> bool: + return self.get("hide_text_tags") + + @hide_text_tags.setter + def hide_text_tags(self, value: bool): + setattr(self, "hide_text_tags", value) + + @property + def is_qualified_signature(self) -> bool: + return self.get("is_qualified_signature") + + @is_qualified_signature.setter + def is_qualified_signature(self, value: bool): + setattr(self, "is_qualified_signature", value) + + @property + def is_eid(self) -> bool: + return self.get("is_eid") + + @is_eid.setter + def is_eid(self, value: bool): + setattr(self, "is_eid", value) + + @property + def message(self) -> str: + return self.get("message") + + @message.setter + def message(self, value: str): + setattr(self, "message", value) + + @property + def metadata(self) -> Dict[str, Union[bool, date, datetime, dict, float, int, list, str, none_type]]: + return self.get("metadata") + + @metadata.setter + def metadata(self, value: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, none_type]]): + setattr(self, "metadata", value) + + @property + def signing_options(self) -> SubSigningOptions: + return self.get("signing_options") + + @signing_options.setter + def signing_options(self, value: SubSigningOptions): + setattr(self, "signing_options", value) + + @property + def signing_redirect_url(self) -> str: + return self.get("signing_redirect_url") + + @signing_redirect_url.setter + def signing_redirect_url(self, value: str): + setattr(self, "signing_redirect_url", value) + + @property + def subject(self) -> str: + return self.get("subject") + + @subject.setter + def subject(self, value: str): + setattr(self, "subject", value) + + @property + def test_mode(self) -> bool: + return self.get("test_mode") + + @test_mode.setter + def test_mode(self, value: bool): + setattr(self, "test_mode", value) + + @property + def title(self) -> str: + return self.get("title") + + @title.setter + def title(self, value: str): + setattr(self, "title", value) + + @property + def use_text_tags(self) -> bool: + return self.get("use_text_tags") + + @use_text_tags.setter + def use_text_tags(self, value: bool): + setattr(self, "use_text_tags", value) + + @property + def expires_at(self) -> Optional[int]: + return self.get("expires_at") + + @expires_at.setter + def expires_at(self, value: Optional[int]): + setattr(self, "expires_at", value) + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """SignatureRequestEditRequest - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + files ([file_type]): Use `files[]` to indicate the uploaded file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + file_urls ([str]): Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + signers ([SubSignatureRequestSigner]): Add Signers to your Signature Request. This endpoint requires either **signers** or **grouped_signers**, but not both.. [optional] # noqa: E501 + grouped_signers ([SubSignatureRequestGroupedSigners]): Add Grouped Signers to your Signature Request. This endpoint requires either **signers** or **grouped_signers**, but not both.. [optional] # noqa: E501 + allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + allow_reassign (bool): Allows signers to reassign their signature requests to other signers if set to `true`. Defaults to `false`. **Note**: Only available for Premium plan and higher.. [optional] if omitted the server will use the default value of False # noqa: E501 + attachments ([SubAttachment]): A list describing the attachments. [optional] # noqa: E501 + cc_email_addresses ([str]): The email addresses that should be CCed.. [optional] # noqa: E501 + client_id (str): The client id of the API App you want to associate with this request. Used to apply the branding and callback url defined for the app.. [optional] # noqa: E501 + custom_fields ([SubCustomField]): When used together with merge fields, `custom_fields` allows users to add pre-filled data to their signature requests. Pre-filled data can be used with \"send-once\" signature requests by adding merge fields with `form_fields_per_document` or [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) while passing values back with `custom_fields` together in one API call. For using pre-filled on repeatable signature requests, merge fields are added to templates in the Dropbox Sign UI or by calling [/template/create_embedded_draft](/api/reference/operation/templateCreateEmbeddedDraft) and then passing `custom_fields` on subsequent signature requests referencing that template.. [optional] # noqa: E501 + field_options (SubFieldOptions): [optional] # noqa: E501 + form_field_groups ([SubFormFieldGroup]): Group information for fields defined in `form_fields_per_document`. String-indexed JSON array with `group_label` and `requirement` keys. `form_fields_per_document` must contain fields referencing a group defined in `form_field_groups`.. [optional] # noqa: E501 + form_field_rules ([SubFormFieldRule]): Conditional Logic rules for fields defined in `form_fields_per_document`.. [optional] # noqa: E501 + form_fields_per_document ([SubFormFieldsPerDocumentBase]): The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).) **NOTE**: Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types. * Text Field use `SubFormFieldsPerDocumentText` * Dropdown Field use `SubFormFieldsPerDocumentDropdown` * Hyperlink Field use `SubFormFieldsPerDocumentHyperlink` * Checkbox Field use `SubFormFieldsPerDocumentCheckbox` * Radio Field use `SubFormFieldsPerDocumentRadio` * Signature Field use `SubFormFieldsPerDocumentSignature` * Date Signed Field use `SubFormFieldsPerDocumentDateSigned` * Initials Field use `SubFormFieldsPerDocumentInitials` * Text Merge Field use `SubFormFieldsPerDocumentTextMerge` * Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge`. [optional] # noqa: E501 + hide_text_tags (bool): Enables automatic Text Tag removal when set to true. **NOTE**: Removing text tags this way can cause unwanted clipping. We recommend leaving this setting on `false` and instead hiding your text tags using white text or a similar approach. See the [Text Tags Walkthrough](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) for more information.. [optional] if omitted the server will use the default value of False # noqa: E501 + is_qualified_signature (bool): Send with a value of `true` if you wish to enable [Qualified Electronic Signatures](https://www.hellosign.com/features/qualified-electronic-signatures) (QES), which requires a face-to-face call to verify the signer's identity.
**Note**: QES is only available on the Premium API plan as an add-on purchase. Cannot be used in `test_mode`. Only works on requests with one signer.. [optional] if omitted the server will use the default value of False # noqa: E501 + is_eid (bool): Send with a value of `true` if you wish to enable [electronic identification (eID)](https://www.hellosign.com/features/electronic-id), which requires the signer to verify their identity with an eID provider to sign a document.
**Note**: eID is only available on the Premium API plan. Cannot be used in `test_mode`. Only works on requests with one signer.. [optional] if omitted the server will use the default value of False # noqa: E501 + message (str): The custom message in the email that will be sent to the signers.. [optional] # noqa: E501 + metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long.. [optional] # noqa: E501 + signing_options (SubSigningOptions): [optional] # noqa: E501 + signing_redirect_url (str): The URL you want signers redirected to after they successfully sign.. [optional] # noqa: E501 + subject (str): The subject in the email that will be sent to the signers.. [optional] # noqa: E501 + test_mode (bool): Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + title (str): The title you want to assign to the SignatureRequest.. [optional] # noqa: E501 + use_text_tags (bool): Send with a value of `true` if you wish to enable [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) parsing in your document. Defaults to disabled, or `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + expires_at (int, none_type): When the signature request will expire. Unsigned signatures will be moved to the expired status, and no longer signable. See [Signature Request Expiration Date](https://developers.hellosign.com/docs/signature-request/expiration/) for details.. [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """SignatureRequestEditRequest - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + files ([file_type]): Use `files[]` to indicate the uploaded file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + file_urls ([str]): Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + signers ([SubSignatureRequestSigner]): Add Signers to your Signature Request. This endpoint requires either **signers** or **grouped_signers**, but not both.. [optional] # noqa: E501 + grouped_signers ([SubSignatureRequestGroupedSigners]): Add Grouped Signers to your Signature Request. This endpoint requires either **signers** or **grouped_signers**, but not both.. [optional] # noqa: E501 + allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + allow_reassign (bool): Allows signers to reassign their signature requests to other signers if set to `true`. Defaults to `false`. **Note**: Only available for Premium plan and higher.. [optional] if omitted the server will use the default value of False # noqa: E501 + attachments ([SubAttachment]): A list describing the attachments. [optional] # noqa: E501 + cc_email_addresses ([str]): The email addresses that should be CCed.. [optional] # noqa: E501 + client_id (str): The client id of the API App you want to associate with this request. Used to apply the branding and callback url defined for the app.. [optional] # noqa: E501 + custom_fields ([SubCustomField]): When used together with merge fields, `custom_fields` allows users to add pre-filled data to their signature requests. Pre-filled data can be used with \"send-once\" signature requests by adding merge fields with `form_fields_per_document` or [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) while passing values back with `custom_fields` together in one API call. For using pre-filled on repeatable signature requests, merge fields are added to templates in the Dropbox Sign UI or by calling [/template/create_embedded_draft](/api/reference/operation/templateCreateEmbeddedDraft) and then passing `custom_fields` on subsequent signature requests referencing that template.. [optional] # noqa: E501 + field_options (SubFieldOptions): [optional] # noqa: E501 + form_field_groups ([SubFormFieldGroup]): Group information for fields defined in `form_fields_per_document`. String-indexed JSON array with `group_label` and `requirement` keys. `form_fields_per_document` must contain fields referencing a group defined in `form_field_groups`.. [optional] # noqa: E501 + form_field_rules ([SubFormFieldRule]): Conditional Logic rules for fields defined in `form_fields_per_document`.. [optional] # noqa: E501 + form_fields_per_document ([SubFormFieldsPerDocumentBase]): The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).) **NOTE**: Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types. * Text Field use `SubFormFieldsPerDocumentText` * Dropdown Field use `SubFormFieldsPerDocumentDropdown` * Hyperlink Field use `SubFormFieldsPerDocumentHyperlink` * Checkbox Field use `SubFormFieldsPerDocumentCheckbox` * Radio Field use `SubFormFieldsPerDocumentRadio` * Signature Field use `SubFormFieldsPerDocumentSignature` * Date Signed Field use `SubFormFieldsPerDocumentDateSigned` * Initials Field use `SubFormFieldsPerDocumentInitials` * Text Merge Field use `SubFormFieldsPerDocumentTextMerge` * Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge`. [optional] # noqa: E501 + hide_text_tags (bool): Enables automatic Text Tag removal when set to true. **NOTE**: Removing text tags this way can cause unwanted clipping. We recommend leaving this setting on `false` and instead hiding your text tags using white text or a similar approach. See the [Text Tags Walkthrough](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) for more information.. [optional] if omitted the server will use the default value of False # noqa: E501 + is_qualified_signature (bool): Send with a value of `true` if you wish to enable [Qualified Electronic Signatures](https://www.hellosign.com/features/qualified-electronic-signatures) (QES), which requires a face-to-face call to verify the signer's identity.
**Note**: QES is only available on the Premium API plan as an add-on purchase. Cannot be used in `test_mode`. Only works on requests with one signer.. [optional] if omitted the server will use the default value of False # noqa: E501 + is_eid (bool): Send with a value of `true` if you wish to enable [electronic identification (eID)](https://www.hellosign.com/features/electronic-id), which requires the signer to verify their identity with an eID provider to sign a document.
**Note**: eID is only available on the Premium API plan. Cannot be used in `test_mode`. Only works on requests with one signer.. [optional] if omitted the server will use the default value of False # noqa: E501 + message (str): The custom message in the email that will be sent to the signers.. [optional] # noqa: E501 + metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long.. [optional] # noqa: E501 + signing_options (SubSigningOptions): [optional] # noqa: E501 + signing_redirect_url (str): The URL you want signers redirected to after they successfully sign.. [optional] # noqa: E501 + subject (str): The subject in the email that will be sent to the signers.. [optional] # noqa: E501 + test_mode (bool): Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + title (str): The title you want to assign to the SignatureRequest.. [optional] # noqa: E501 + use_text_tags (bool): Send with a value of `true` if you wish to enable [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) parsing in your document. Defaults to disabled, or `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + expires_at (int, none_type): When the signature request will expire. Unsigned signatures will be moved to the expired status, and no longer signable. See [Signature Request Expiration Date](https://developers.hellosign.com/docs/signature-request/expiration/) for details.. [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/dropbox_sign/model/signature_request_edit_with_template_request.py b/dropbox_sign/model/signature_request_edit_with_template_request.py new file mode 100644 index 0000000..412a39e --- /dev/null +++ b/dropbox_sign/model/signature_request_edit_with_template_request.py @@ -0,0 +1,511 @@ +""" + Dropbox Sign API + + Dropbox Sign v3 API # noqa: E501 + + The version of the OpenAPI document: 3.0.0 + Contact: apisupport@hellosign.com + Generated by: https://openapi-generator.tech +""" + + +from __future__ import annotations +from typing import TYPE_CHECKING, Optional, List, Dict, Union +import json # noqa: F401 +import re # noqa: F401 +import sys # noqa: F401 + +from dropbox_sign import ApiClient +from dropbox_sign.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel +) +from dropbox_sign.exceptions import ApiAttributeError +if TYPE_CHECKING: + from dropbox_sign.model.sub_cc import SubCC + from dropbox_sign.model.sub_custom_field import SubCustomField + from dropbox_sign.model.sub_signature_request_template_signer import SubSignatureRequestTemplateSigner + from dropbox_sign.model.sub_signing_options import SubSigningOptions + + +def lazy_import(): + from dropbox_sign.model.sub_cc import SubCC + from dropbox_sign.model.sub_custom_field import SubCustomField + from dropbox_sign.model.sub_signature_request_template_signer import SubSignatureRequestTemplateSigner + from dropbox_sign.model.sub_signing_options import SubSigningOptions + globals()['SubCC'] = SubCC + globals()['SubCustomField'] = SubCustomField + globals()['SubSignatureRequestTemplateSigner'] = SubSignatureRequestTemplateSigner + globals()['SubSigningOptions'] = SubSigningOptions + + +class SignatureRequestEditWithTemplateRequest(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + } + + validations = { + ('message',): { + 'max_length': 5000, + }, + ('metadata',): { + }, + ('subject',): { + 'max_length': 255, + }, + ('title',): { + 'max_length': 255, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'template_ids': ([str],), # noqa: E501 + 'signers': ([SubSignatureRequestTemplateSigner],), # noqa: E501 + 'allow_decline': (bool,), # noqa: E501 + 'ccs': ([SubCC],), # noqa: E501 + 'client_id': (str,), # noqa: E501 + 'custom_fields': ([SubCustomField],), # noqa: E501 + 'files': ([file_type],), # noqa: E501 + 'file_urls': ([str],), # noqa: E501 + 'is_qualified_signature': (bool,), # noqa: E501 + 'is_eid': (bool,), # noqa: E501 + 'message': (str,), # noqa: E501 + 'metadata': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501 + 'signing_options': (SubSigningOptions,), # noqa: E501 + 'signing_redirect_url': (str,), # noqa: E501 + 'subject': (str,), # noqa: E501 + 'test_mode': (bool,), # noqa: E501 + 'title': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + @staticmethod + def init(data: any) -> SignatureRequestEditWithTemplateRequest: + """ + Attempt to instantiate and hydrate a new instance of this class + """ + try: + obj_data = json.dumps(data) + except TypeError: + obj_data = data + + return ApiClient().deserialize( + response=type('obj_dict', (object,), {'data': obj_data}), + response_type=[SignatureRequestEditWithTemplateRequest], + _check_type=True, + ) + + attribute_map = { + 'template_ids': 'template_ids', # noqa: E501 + 'signers': 'signers', # noqa: E501 + 'allow_decline': 'allow_decline', # noqa: E501 + 'ccs': 'ccs', # noqa: E501 + 'client_id': 'client_id', # noqa: E501 + 'custom_fields': 'custom_fields', # noqa: E501 + 'files': 'files', # noqa: E501 + 'file_urls': 'file_urls', # noqa: E501 + 'is_qualified_signature': 'is_qualified_signature', # noqa: E501 + 'is_eid': 'is_eid', # noqa: E501 + 'message': 'message', # noqa: E501 + 'metadata': 'metadata', # noqa: E501 + 'signing_options': 'signing_options', # noqa: E501 + 'signing_redirect_url': 'signing_redirect_url', # noqa: E501 + 'subject': 'subject', # noqa: E501 + 'test_mode': 'test_mode', # noqa: E501 + 'title': 'title', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @property + def template_ids(self) -> List[str]: + return self.get("template_ids") + + @template_ids.setter + def template_ids(self, value: List[str]): + setattr(self, "template_ids", value) + + @property + def signers(self) -> List[SubSignatureRequestTemplateSigner]: + return self.get("signers") + + @signers.setter + def signers(self, value: List[SubSignatureRequestTemplateSigner]): + setattr(self, "signers", value) + + @property + def allow_decline(self) -> bool: + return self.get("allow_decline") + + @allow_decline.setter + def allow_decline(self, value: bool): + setattr(self, "allow_decline", value) + + @property + def ccs(self) -> List[SubCC]: + return self.get("ccs") + + @ccs.setter + def ccs(self, value: List[SubCC]): + setattr(self, "ccs", value) + + @property + def client_id(self) -> str: + return self.get("client_id") + + @client_id.setter + def client_id(self, value: str): + setattr(self, "client_id", value) + + @property + def custom_fields(self) -> List[SubCustomField]: + return self.get("custom_fields") + + @custom_fields.setter + def custom_fields(self, value: List[SubCustomField]): + setattr(self, "custom_fields", value) + + @property + def files(self) -> List[file_type]: + return self.get("files") + + @files.setter + def files(self, value: List[file_type]): + setattr(self, "files", value) + + @property + def file_urls(self) -> List[str]: + return self.get("file_urls") + + @file_urls.setter + def file_urls(self, value: List[str]): + setattr(self, "file_urls", value) + + @property + def is_qualified_signature(self) -> bool: + return self.get("is_qualified_signature") + + @is_qualified_signature.setter + def is_qualified_signature(self, value: bool): + setattr(self, "is_qualified_signature", value) + + @property + def is_eid(self) -> bool: + return self.get("is_eid") + + @is_eid.setter + def is_eid(self, value: bool): + setattr(self, "is_eid", value) + + @property + def message(self) -> str: + return self.get("message") + + @message.setter + def message(self, value: str): + setattr(self, "message", value) + + @property + def metadata(self) -> Dict[str, Union[bool, date, datetime, dict, float, int, list, str, none_type]]: + return self.get("metadata") + + @metadata.setter + def metadata(self, value: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, none_type]]): + setattr(self, "metadata", value) + + @property + def signing_options(self) -> SubSigningOptions: + return self.get("signing_options") + + @signing_options.setter + def signing_options(self, value: SubSigningOptions): + setattr(self, "signing_options", value) + + @property + def signing_redirect_url(self) -> str: + return self.get("signing_redirect_url") + + @signing_redirect_url.setter + def signing_redirect_url(self, value: str): + setattr(self, "signing_redirect_url", value) + + @property + def subject(self) -> str: + return self.get("subject") + + @subject.setter + def subject(self, value: str): + setattr(self, "subject", value) + + @property + def test_mode(self) -> bool: + return self.get("test_mode") + + @test_mode.setter + def test_mode(self, value: bool): + setattr(self, "test_mode", value) + + @property + def title(self) -> str: + return self.get("title") + + @title.setter + def title(self, value: str): + setattr(self, "title", value) + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, template_ids, signers, *args, **kwargs): # noqa: E501 + """SignatureRequestEditWithTemplateRequest - a model defined in OpenAPI + + Args: + template_ids ([str]): Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used. + signers ([SubSignatureRequestTemplateSigner]): Add Signers to your Templated-based Signature Request. + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + ccs ([SubCC]): Add CC email recipients. Required when a CC role exists for the Template.. [optional] # noqa: E501 + client_id (str): Client id of the app to associate with the signature request. Used to apply the branding and callback url defined for the app.. [optional] # noqa: E501 + custom_fields ([SubCustomField]): An array defining values and options for custom fields. Required when a custom field exists in the Template.. [optional] # noqa: E501 + files ([file_type]): Use `files[]` to indicate the uploaded file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + file_urls ([str]): Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + is_qualified_signature (bool): Send with a value of `true` if you wish to enable [Qualified Electronic Signatures](https://www.hellosign.com/features/qualified-electronic-signatures) (QES), which requires a face-to-face call to verify the signer's identity.
**Note**: QES is only available on the Premium API plan as an add-on purchase. Cannot be used in `test_mode`. Only works on requests with one signer.. [optional] if omitted the server will use the default value of False # noqa: E501 + is_eid (bool): Send with a value of `true` if you wish to enable [electronic identification (eID)](https://www.hellosign.com/features/electronic-id), which requires the signer to verify their identity with an eID provider to sign a document.
**Note**: eID is only available on the Premium API plan. Cannot be used in `test_mode`. Only works on requests with one signer.. [optional] if omitted the server will use the default value of False # noqa: E501 + message (str): The custom message in the email that will be sent to the signers.. [optional] # noqa: E501 + metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long.. [optional] # noqa: E501 + signing_options (SubSigningOptions): [optional] # noqa: E501 + signing_redirect_url (str): The URL you want signers redirected to after they successfully sign.. [optional] # noqa: E501 + subject (str): The subject in the email that will be sent to the signers.. [optional] # noqa: E501 + test_mode (bool): Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + title (str): The title you want to assign to the SignatureRequest.. [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.template_ids = template_ids + self.signers = signers + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, template_ids, signers, *args, **kwargs): # noqa: E501 + """SignatureRequestEditWithTemplateRequest - a model defined in OpenAPI + + Args: + template_ids ([str]): Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used. + signers ([SubSignatureRequestTemplateSigner]): Add Signers to your Templated-based Signature Request. + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + allow_decline (bool): Allows signers to decline to sign a document if `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + ccs ([SubCC]): Add CC email recipients. Required when a CC role exists for the Template.. [optional] # noqa: E501 + client_id (str): Client id of the app to associate with the signature request. Used to apply the branding and callback url defined for the app.. [optional] # noqa: E501 + custom_fields ([SubCustomField]): An array defining values and options for custom fields. Required when a custom field exists in the Template.. [optional] # noqa: E501 + files ([file_type]): Use `files[]` to indicate the uploaded file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + file_urls ([str]): Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. This endpoint requires either **files** or **file_urls[]**, but not both.. [optional] # noqa: E501 + is_qualified_signature (bool): Send with a value of `true` if you wish to enable [Qualified Electronic Signatures](https://www.hellosign.com/features/qualified-electronic-signatures) (QES), which requires a face-to-face call to verify the signer's identity.
**Note**: QES is only available on the Premium API plan as an add-on purchase. Cannot be used in `test_mode`. Only works on requests with one signer.. [optional] if omitted the server will use the default value of False # noqa: E501 + is_eid (bool): Send with a value of `true` if you wish to enable [electronic identification (eID)](https://www.hellosign.com/features/electronic-id), which requires the signer to verify their identity with an eID provider to sign a document.
**Note**: eID is only available on the Premium API plan. Cannot be used in `test_mode`. Only works on requests with one signer.. [optional] if omitted the server will use the default value of False # noqa: E501 + message (str): The custom message in the email that will be sent to the signers.. [optional] # noqa: E501 + metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long.. [optional] # noqa: E501 + signing_options (SubSigningOptions): [optional] # noqa: E501 + signing_redirect_url (str): The URL you want signers redirected to after they successfully sign.. [optional] # noqa: E501 + subject (str): The subject in the email that will be sent to the signers.. [optional] # noqa: E501 + test_mode (bool): Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.. [optional] if omitted the server will use the default value of False # noqa: E501 + title (str): The title you want to assign to the SignatureRequest.. [optional] # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.template_ids = template_ids + self.signers = signers + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/dropbox_sign/model/signature_request_response.py b/dropbox_sign/model/signature_request_response.py index 7cea17c..79929fb 100644 --- a/dropbox_sign/model/signature_request_response.py +++ b/dropbox_sign/model/signature_request_response.py @@ -121,11 +121,13 @@ def openapi_types(): 'details_url': (str,), # noqa: E501 'cc_email_addresses': ([str],), # noqa: E501 'signing_redirect_url': (str, none_type,), # noqa: E501 + 'final_copy_uri': (str, none_type,), # noqa: E501 'template_ids': ([str], none_type,), # noqa: E501 'custom_fields': ([SignatureRequestResponseCustomFieldBase], none_type,), # noqa: E501 'attachments': ([SignatureRequestResponseAttachment], none_type,), # noqa: E501 'response_data': ([SignatureRequestResponseDataBase], none_type,), # noqa: E501 'signatures': ([SignatureRequestResponseSignatures],), # noqa: E501 + 'bulk_send_job_id': (str, none_type,), # noqa: E501 } @cached_property @@ -167,11 +169,13 @@ def init(data: any) -> SignatureRequestResponse: 'details_url': 'details_url', # noqa: E501 'cc_email_addresses': 'cc_email_addresses', # noqa: E501 'signing_redirect_url': 'signing_redirect_url', # noqa: E501 + 'final_copy_uri': 'final_copy_uri', # noqa: E501 'template_ids': 'template_ids', # noqa: E501 'custom_fields': 'custom_fields', # noqa: E501 'attachments': 'attachments', # noqa: E501 'response_data': 'response_data', # noqa: E501 'signatures': 'signatures', # noqa: E501 + 'bulk_send_job_id': 'bulk_send_job_id', # noqa: E501 } read_only_vars = { @@ -323,6 +327,14 @@ def signing_redirect_url(self) -> Optional[str]: def signing_redirect_url(self, value: Optional[str]): setattr(self, "signing_redirect_url", value) + @property + def final_copy_uri(self) -> Optional[str]: + return self.get("final_copy_uri") + + @final_copy_uri.setter + def final_copy_uri(self, value: Optional[str]): + setattr(self, "final_copy_uri", value) + @property def template_ids(self) -> Optional[List[str]]: return self.get("template_ids") @@ -363,6 +375,14 @@ def signatures(self) -> List[SignatureRequestResponseSignatures]: def signatures(self, value: List[SignatureRequestResponseSignatures]): setattr(self, "signatures", value) + @property + def bulk_send_job_id(self) -> Optional[str]: + return self.get("bulk_send_job_id") + + @bulk_send_job_id.setter + def bulk_send_job_id(self, value: Optional[str]): + setattr(self, "bulk_send_job_id", value) + @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 @@ -417,11 +437,13 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 details_url (str): The URL where the requester and the signers can view the current status of the SignatureRequest.. [optional] # noqa: E501 cc_email_addresses ([str]): A list of email addresses that were CCed on the SignatureRequest. They will receive a copy of the final PDF once all the signers have signed.. [optional] # noqa: E501 signing_redirect_url (str, none_type): The URL you want the signer redirected to after they successfully sign.. [optional] # noqa: E501 + final_copy_uri (str, none_type): The path where the completed document can be downloaded. [optional] # noqa: E501 template_ids ([str], none_type): Templates IDs used in this SignatureRequest (if any).. [optional] # noqa: E501 custom_fields ([SignatureRequestResponseCustomFieldBase], none_type): An array of Custom Field objects containing the name and type of each custom field. * Text Field uses `SignatureRequestResponseCustomFieldText` * Checkbox Field uses `SignatureRequestResponseCustomFieldCheckbox`. [optional] # noqa: E501 attachments ([SignatureRequestResponseAttachment], none_type): Signer attachments.. [optional] # noqa: E501 response_data ([SignatureRequestResponseDataBase], none_type): An array of form field objects containing the name, value, and type of each textbox or checkmark field filled in by the signers.. [optional] # noqa: E501 signatures ([SignatureRequestResponseSignatures]): An array of signature objects, 1 for each signer.. [optional] # noqa: E501 + bulk_send_job_id (str, none_type): The ID of the Bulk Send job which sent the signature request, if applicable.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -521,11 +543,13 @@ def __init__(self, *args, **kwargs): # noqa: E501 details_url (str): The URL where the requester and the signers can view the current status of the SignatureRequest.. [optional] # noqa: E501 cc_email_addresses ([str]): A list of email addresses that were CCed on the SignatureRequest. They will receive a copy of the final PDF once all the signers have signed.. [optional] # noqa: E501 signing_redirect_url (str, none_type): The URL you want the signer redirected to after they successfully sign.. [optional] # noqa: E501 + final_copy_uri (str, none_type): The path where the completed document can be downloaded. [optional] # noqa: E501 template_ids ([str], none_type): Templates IDs used in this SignatureRequest (if any).. [optional] # noqa: E501 custom_fields ([SignatureRequestResponseCustomFieldBase], none_type): An array of Custom Field objects containing the name and type of each custom field. * Text Field uses `SignatureRequestResponseCustomFieldText` * Checkbox Field uses `SignatureRequestResponseCustomFieldCheckbox`. [optional] # noqa: E501 attachments ([SignatureRequestResponseAttachment], none_type): Signer attachments.. [optional] # noqa: E501 response_data ([SignatureRequestResponseDataBase], none_type): An array of form field objects containing the name, value, and type of each textbox or checkmark field filled in by the signers.. [optional] # noqa: E501 signatures ([SignatureRequestResponseSignatures]): An array of signature objects, 1 for each signer.. [optional] # noqa: E501 + bulk_send_job_id (str, none_type): The ID of the Bulk Send job which sent the signature request, if applicable.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/dropbox_sign/model/sub_form_fields_per_document_date_signed.py b/dropbox_sign/model/sub_form_fields_per_document_date_signed.py index 7330db0..6518ff9 100644 --- a/dropbox_sign/model/sub_form_fields_per_document_date_signed.py +++ b/dropbox_sign/model/sub_form_fields_per_document_date_signed.py @@ -317,7 +317,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) font_family (str): Font family for the field.. [optional] # noqa: E501 - font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] # noqa: E501 + font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] if omitted the server will use the default value of 12 # noqa: E501 name (str): Display name for the field.. [optional] # noqa: E501 page (int, none_type): Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.. [optional] # noqa: E501 """ @@ -430,7 +430,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) font_family (str): Font family for the field.. [optional] # noqa: E501 - font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] # noqa: E501 + font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] if omitted the server will use the default value of 12 # noqa: E501 name (str): Display name for the field.. [optional] # noqa: E501 page (int, none_type): Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.. [optional] # noqa: E501 """ diff --git a/dropbox_sign/model/sub_form_fields_per_document_dropdown.py b/dropbox_sign/model/sub_form_fields_per_document_dropdown.py index ded205c..adf581c 100644 --- a/dropbox_sign/model/sub_form_fields_per_document_dropdown.py +++ b/dropbox_sign/model/sub_form_fields_per_document_dropdown.py @@ -342,7 +342,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) content (str): Selected value in `options` array. Value must exist in array.. [optional] # noqa: E501 font_family (str): Font family for the field.. [optional] # noqa: E501 - font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] # noqa: E501 + font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] if omitted the server will use the default value of 12 # noqa: E501 name (str): Display name for the field.. [optional] # noqa: E501 page (int, none_type): Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.. [optional] # noqa: E501 """ @@ -457,7 +457,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) content (str): Selected value in `options` array. Value must exist in array.. [optional] # noqa: E501 font_family (str): Font family for the field.. [optional] # noqa: E501 - font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] # noqa: E501 + font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] if omitted the server will use the default value of 12 # noqa: E501 name (str): Display name for the field.. [optional] # noqa: E501 page (int, none_type): Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.. [optional] # noqa: E501 """ diff --git a/dropbox_sign/model/sub_form_fields_per_document_hyperlink.py b/dropbox_sign/model/sub_form_fields_per_document_hyperlink.py index 5e4dbdc..c697afd 100644 --- a/dropbox_sign/model/sub_form_fields_per_document_hyperlink.py +++ b/dropbox_sign/model/sub_form_fields_per_document_hyperlink.py @@ -339,7 +339,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) font_family (str): Font family for the field.. [optional] # noqa: E501 - font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] # noqa: E501 + font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] if omitted the server will use the default value of 12 # noqa: E501 name (str): Display name for the field.. [optional] # noqa: E501 page (int, none_type): Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.. [optional] # noqa: E501 """ @@ -454,7 +454,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) font_family (str): Font family for the field.. [optional] # noqa: E501 - font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] # noqa: E501 + font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] if omitted the server will use the default value of 12 # noqa: E501 name (str): Display name for the field.. [optional] # noqa: E501 page (int, none_type): Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.. [optional] # noqa: E501 """ diff --git a/dropbox_sign/model/sub_form_fields_per_document_text.py b/dropbox_sign/model/sub_form_fields_per_document_text.py index de959c7..fb35eaf 100644 --- a/dropbox_sign/model/sub_form_fields_per_document_text.py +++ b/dropbox_sign/model/sub_form_fields_per_document_text.py @@ -417,7 +417,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 validation_custom_regex_format_label (str): [optional] # noqa: E501 content (str): Content of a `me_now` text field. [optional] # noqa: E501 font_family (str): Font family for the field.. [optional] # noqa: E501 - font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] # noqa: E501 + font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] if omitted the server will use the default value of 12 # noqa: E501 name (str): Display name for the field.. [optional] # noqa: E501 page (int, none_type): Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.. [optional] # noqa: E501 """ @@ -538,7 +538,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 validation_custom_regex_format_label (str): [optional] # noqa: E501 content (str): Content of a `me_now` text field. [optional] # noqa: E501 font_family (str): Font family for the field.. [optional] # noqa: E501 - font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] # noqa: E501 + font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] if omitted the server will use the default value of 12 # noqa: E501 name (str): Display name for the field.. [optional] # noqa: E501 page (int, none_type): Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.. [optional] # noqa: E501 """ diff --git a/dropbox_sign/model/sub_form_fields_per_document_text_merge.py b/dropbox_sign/model/sub_form_fields_per_document_text_merge.py index d39eacf..4f198ee 100644 --- a/dropbox_sign/model/sub_form_fields_per_document_text_merge.py +++ b/dropbox_sign/model/sub_form_fields_per_document_text_merge.py @@ -317,7 +317,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) font_family (str): Font family for the field.. [optional] # noqa: E501 - font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] # noqa: E501 + font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] if omitted the server will use the default value of 12 # noqa: E501 name (str): Display name for the field.. [optional] # noqa: E501 page (int, none_type): Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.. [optional] # noqa: E501 """ @@ -430,7 +430,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) font_family (str): Font family for the field.. [optional] # noqa: E501 - font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] # noqa: E501 + font_size (int): The initial px font size for the field contents. Can be any integer value between `7` and `49`. **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field.. [optional] if omitted the server will use the default value of 12 # noqa: E501 name (str): Display name for the field.. [optional] # noqa: E501 page (int, none_type): Page in the document where the field should be placed (requires documents be PDF files). - When the page number parameter is supplied, the API will use the new coordinate system. - Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.. [optional] # noqa: E501 """ diff --git a/dropbox_sign/model/sub_signature_request_signer.py b/dropbox_sign/model/sub_signature_request_signer.py index e02f390..878f05a 100644 --- a/dropbox_sign/model/sub_signature_request_signer.py +++ b/dropbox_sign/model/sub_signature_request_signer.py @@ -226,7 +226,7 @@ def _from_openapi_data(cls, name, email_address, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) order (int, none_type): The order the signer is required to sign in.. [optional] # noqa: E501 pin (str): The 4- to 12-character access code that will secure this signer's signature page.. [optional] # noqa: E501 - sms_phone_number (str): An E.164 formatted phone number. **Note**: Not available in test mode and requires a Standard plan or higher.. [optional] # noqa: E501 + sms_phone_number (str): An E.164 formatted phone number. By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). **Note**: Not available in test mode and requires a Standard plan or higher.. [optional] # noqa: E501 sms_phone_number_type (str): Specifies the feature used with the `sms_phone_number`. Default `authentication`. If `authentication`, signer is sent a verification code via SMS that is required to access the document. If `delivery`, a link to complete the signature request is delivered via SMS (_and_ email).. [optional] # noqa: E501 """ @@ -317,7 +317,7 @@ def __init__(self, name, email_address, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) order (int, none_type): The order the signer is required to sign in.. [optional] # noqa: E501 pin (str): The 4- to 12-character access code that will secure this signer's signature page.. [optional] # noqa: E501 - sms_phone_number (str): An E.164 formatted phone number. **Note**: Not available in test mode and requires a Standard plan or higher.. [optional] # noqa: E501 + sms_phone_number (str): An E.164 formatted phone number. By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). **Note**: Not available in test mode and requires a Standard plan or higher.. [optional] # noqa: E501 sms_phone_number_type (str): Specifies the feature used with the `sms_phone_number`. Default `authentication`. If `authentication`, signer is sent a verification code via SMS that is required to access the document. If `delivery`, a link to complete the signature request is delivered via SMS (_and_ email).. [optional] # noqa: E501 """ diff --git a/dropbox_sign/model/sub_signature_request_template_signer.py b/dropbox_sign/model/sub_signature_request_template_signer.py index f331e48..16dfaf6 100644 --- a/dropbox_sign/model/sub_signature_request_template_signer.py +++ b/dropbox_sign/model/sub_signature_request_template_signer.py @@ -226,7 +226,7 @@ def _from_openapi_data(cls, role, name, email_address, *args, **kwargs): # noqa through its discriminator because we passed in _visited_composed_classes = (Animal,) pin (str): The 4- to 12-character access code that will secure this signer's signature page.. [optional] # noqa: E501 - sms_phone_number (str): An E.164 formatted phone number. **Note**: Not available in test mode and requires a Standard plan or higher.. [optional] # noqa: E501 + sms_phone_number (str): An E.164 formatted phone number. By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). **Note**: Not available in test mode and requires a Standard plan or higher.. [optional] # noqa: E501 sms_phone_number_type (str): Specifies the feature used with the `sms_phone_number`. Default `authentication`. If `authentication`, signer is sent a verification code via SMS that is required to access the document. If `delivery`, a link to complete the signature request is delivered via SMS (_and_ email).. [optional] # noqa: E501 """ @@ -318,7 +318,7 @@ def __init__(self, role, name, email_address, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) pin (str): The 4- to 12-character access code that will secure this signer's signature page.. [optional] # noqa: E501 - sms_phone_number (str): An E.164 formatted phone number. **Note**: Not available in test mode and requires a Standard plan or higher.. [optional] # noqa: E501 + sms_phone_number (str): An E.164 formatted phone number. By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). **Note**: Not available in test mode and requires a Standard plan or higher.. [optional] # noqa: E501 sms_phone_number_type (str): Specifies the feature used with the `sms_phone_number`. Default `authentication`. If `authentication`, signer is sent a verification code via SMS that is required to access the document. If `delivery`, a link to complete the signature request is delivered via SMS (_and_ email).. [optional] # noqa: E501 """ diff --git a/dropbox_sign/models/__init__.py b/dropbox_sign/models/__init__.py index cc37e87..3e09671 100644 --- a/dropbox_sign/models/__init__.py +++ b/dropbox_sign/models/__init__.py @@ -55,6 +55,10 @@ from dropbox_sign.model.signature_request_bulk_send_with_template_request import SignatureRequestBulkSendWithTemplateRequest from dropbox_sign.model.signature_request_create_embedded_request import SignatureRequestCreateEmbeddedRequest from dropbox_sign.model.signature_request_create_embedded_with_template_request import SignatureRequestCreateEmbeddedWithTemplateRequest +from dropbox_sign.model.signature_request_edit_embedded_request import SignatureRequestEditEmbeddedRequest +from dropbox_sign.model.signature_request_edit_embedded_with_template_request import SignatureRequestEditEmbeddedWithTemplateRequest +from dropbox_sign.model.signature_request_edit_request import SignatureRequestEditRequest +from dropbox_sign.model.signature_request_edit_with_template_request import SignatureRequestEditWithTemplateRequest from dropbox_sign.model.signature_request_get_response import SignatureRequestGetResponse from dropbox_sign.model.signature_request_list_response import SignatureRequestListResponse from dropbox_sign.model.signature_request_remind_request import SignatureRequestRemindRequest diff --git a/examples/SignatureRequestEdit.py b/examples/SignatureRequestEdit.py new file mode 100644 index 0000000..6eb42cd --- /dev/null +++ b/examples/SignatureRequestEdit.py @@ -0,0 +1,66 @@ +from pprint import pprint + +from dropbox_sign import \ + ApiClient, ApiException, Configuration, apis, models + +configuration = Configuration( + # Configure HTTP basic authorization: api_key + username="YOUR_API_KEY", + + # or, configure Bearer (JWT) authorization: oauth2 + # access_token="YOUR_ACCESS_TOKEN", +) + +with ApiClient(configuration) as api_client: + signature_request_api = apis.SignatureRequestApi(api_client) + + signer_1 = models.SubSignatureRequestSigner( + email_address="jack@example.com", + name="Jack", + order=0, + ) + + signer_2 = models.SubSignatureRequestSigner( + email_address="jill@example.com", + name="Jill", + order=1, + ) + + signing_options = models.SubSigningOptions( + draw=True, + type=True, + upload=True, + phone=True, + default_type="draw", + ) + + field_options = models.SubFieldOptions( + date_format="DD - MM - YYYY", + ) + + data = models.SignatureRequestEditRequest( + title="NDA with Acme Co.", + subject="The NDA we talked about", + message="Please sign this NDA and then we can discuss more. Let me know if you have any questions.", + signers=[signer_1, signer_2], + cc_email_addresses=[ + "lawyer1@dropboxsign.com", + "lawyer2@dropboxsign.com", + ], + files=[open("example_signature_request.pdf", "rb")], + metadata={ + "custom_id": 1234, + "custom_text": "NDA #9", + }, + signing_options=signing_options, + field_options=field_options, + test_mode=True, + ) + + signature_request_id = "2f9781e1a8e2045224d808c153c2e1d3df6f8f2f" + + try: + response = signature_request_api.signature_request_edit(signature_request_id, data) + pprint(response) + except ApiException as e: + print("Exception when calling Dropbox Sign API: %s\n" % e) diff --git a/examples/SignatureRequestEditEmbedded.py b/examples/SignatureRequestEditEmbedded.py new file mode 100644 index 0000000..e894606 --- /dev/null +++ b/examples/SignatureRequestEditEmbedded.py @@ -0,0 +1,55 @@ +from pprint import pprint + +from dropbox_sign import \ + ApiClient, ApiException, Configuration, apis, models + +configuration = Configuration( + # Configure HTTP basic authorization: api_key + username="YOUR_API_KEY", + + # or, configure Bearer (JWT) authorization: oauth2 + # access_token="YOUR_ACCESS_TOKEN", +) + +with ApiClient(configuration) as api_client: + signature_request_api = apis.SignatureRequestApi(api_client) + + signer_1 = models.SubSignatureRequestSigner( + email_address="jack@example.com", + name="Jack", + order=0, + ) + + signer_2 = models.SubSignatureRequestSigner( + email_address="jill@example.com", + name="Jill", + order=1, + ) + + signing_options = models.SubSigningOptions( + draw=True, + type=True, + upload=True, + phone=True, + default_type="draw", + ) + + data = models.SignatureRequestEditEmbeddedRequest( + client_id="ec64a202072370a737edf4a0eb7f4437", + title="NDA with Acme Co.", + subject="The NDA we talked about", + message="Please sign this NDA and then we can discuss more. Let me know if you have any questions.", + signers=[signer_1, signer_2], + cc_email_addresses=["lawyer1@dropboxsign.com", "lawyer2@dropboxsign.com"], + files=[open("example_signature_request.pdf", "rb")], + signing_options=signing_options, + test_mode=True, + ) + + signature_request_id = "2f9781e1a8e2045224d808c153c2e1d3df6f8f2f" + + try: + response = signature_request_api.signature_request_edit_embedded(signature_request_id, data) + pprint(response) + except ApiException as e: + print("Exception when calling Dropbox Sign API: %s\n" % e) diff --git a/examples/SignatureRequestEditEmbeddedWithTemplate.py b/examples/SignatureRequestEditEmbeddedWithTemplate.py new file mode 100644 index 0000000..55e147c --- /dev/null +++ b/examples/SignatureRequestEditEmbeddedWithTemplate.py @@ -0,0 +1,47 @@ +from pprint import pprint + +from dropbox_sign import \ + ApiClient, ApiException, Configuration, apis, models + +configuration = Configuration( + # Configure HTTP basic authorization: api_key + username="YOUR_API_KEY", + + # or, configure Bearer (JWT) authorization: oauth2 + # access_token="YOUR_ACCESS_TOKEN", +) + +with ApiClient(configuration) as api_client: + signature_request_api = apis.SignatureRequestApi(api_client) + + signer_1 = models.SubSignatureRequestTemplateSigner( + role="Client", + email_address="jack@example.com", + name="Jack", + ) + + signing_options = models.SubSigningOptions( + draw=True, + type=True, + upload=True, + phone=True, + default_type="draw", + ) + + data = models.SignatureRequestEditEmbeddedWithTemplateRequest( + client_id="ec64a202072370a737edf4a0eb7f4437", + template_ids=["c26b8a16784a872da37ea946b9ddec7c1e11dff6"], + subject="Purchase Order", + message="Glad we could come to an agreement.", + signers=[signer_1], + signing_options=signing_options, + test_mode=True, + ) + + signature_request_id = "2f9781e1a8e2045224d808c153c2e1d3df6f8f2f" + + try: + response = signature_request_api.signature_request_edit_embedded_with_template(signature_request_id, data) + pprint(response) + except ApiException as e: + print("Exception when calling Dropbox Sign API: %s\n" % e) diff --git a/examples/SignatureRequestEditWithTemplate.py b/examples/SignatureRequestEditWithTemplate.py new file mode 100644 index 0000000..d3ff475 --- /dev/null +++ b/examples/SignatureRequestEditWithTemplate.py @@ -0,0 +1,60 @@ +from pprint import pprint + +from dropbox_sign import \ + ApiClient, ApiException, Configuration, apis, models + +configuration = Configuration( + # Configure HTTP basic authorization: api_key + username="YOUR_API_KEY", + + # or, configure Bearer (JWT) authorization: oauth2 + # access_token="YOUR_ACCESS_TOKEN", +) + +with ApiClient(configuration) as api_client: + signature_request_api = apis.SignatureRequestApi(api_client) + + signer_1 = models.SubSignatureRequestTemplateSigner( + role="Client", + email_address="george@example.com", + name="George", + ) + + cc_1 = models.SubCC( + role="Accounting", + email_address="accounting@example.com", + ) + + custom_field_1 = models.SubCustomField( + name="Cost", + value="$20,000", + editor="Client", + required=True, + ) + + signing_options = models.SubSigningOptions( + draw=True, + type=True, + upload=True, + phone=False, + default_type="draw", + ) + + data = models.SignatureRequestSendWithTemplateRequest( + template_ids=["c26b8a16784a872da37ea946b9ddec7c1e11dff6"], + subject="Purchase Order", + message="Glad we could come to an agreement.", + signers=[signer_1], + ccs=[cc_1], + custom_fields=[custom_field_1], + signing_options=signing_options, + test_mode=True, + ) + + signature_request_id = "2f9781e1a8e2045224d808c153c2e1d3df6f8f2f" + + try: + response = signature_request_api.signature_request_edit_with_template(signature_request_id, data) + pprint(response) + except ApiException as e: + print("Exception when calling Dropbox Sign API: %s\n" % e) diff --git a/openapi-config.yaml b/openapi-config.yaml index 1ec8cd7..174f4a5 100644 --- a/openapi-config.yaml +++ b/openapi-config.yaml @@ -4,7 +4,7 @@ additionalProperties: generatorLanguageVersion: ">=3.7" packageName: dropbox_sign projectName: dropbox-sign - packageVersion: 1.3.0 + packageVersion: 1.4.0 sortModelPropertiesByRequiredFlag: true legacyDiscriminatorBehavior: true packageAuthor: Dropbox Sign API Team diff --git a/openapi-sdk.yaml b/openapi-sdk.yaml index 6ef2e00..d77d984 100644 --- a/openapi-sdk.yaml +++ b/openapi-sdk.yaml @@ -457,7 +457,7 @@ paths: schema: $ref: '#/components/schemas/ApiAppCreateRequest' responses: - 200: + 201: description: 'successful operation' headers: X-RateLimit-Limit: @@ -2226,35 +2226,39 @@ paths: seo: title: 'Signature Request with Template | Dropbox Sign for Developers' description: 'The Dropbox Sign API allows you to build custom integrations. To find out how to create a new SignatureRequest based on the given Template, click here.' - '/signature_request/files/{signature_request_id}': - get: + '/signature_request/edit/{signature_request_id}': + put: tags: - 'Signature Request' - summary: 'Download Files' + summary: 'Edit Signature Request' description: |- - Obtain a copy of the current documents specified by the `signature_request_id` parameter. Returns a PDF or ZIP file. + Edits and sends a SignatureRequest with the submitted documents. If `form_fields_per_document` is not specified, a signature page will be affixed where all signers will be required to add their signature, signifying their agreement to all contained documents. - If the files are currently being prepared, a status code of `409` will be returned instead. - operationId: signatureRequestFiles + **NOTE:** Edit and resend will not deduct your signature request quota. + operationId: signatureRequestEdit parameters: - name: signature_request_id in: path - description: 'The id of the SignatureRequest to retrieve.' + description: 'The id of the SignatureRequest to edit.' required: true schema: type: string example: fa5c8a0b0f492d768749333ad6fcc214c111e967 - - - name: file_type - in: query - description: 'Set to `pdf` for a single merged document or `zip` for a collection of individual documents.' - schema: - type: string - default: pdf - enum: - - pdf - - zip + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SignatureRequestEditRequest' + examples: + default_example: + $ref: '#/components/examples/SignatureRequestEditRequestDefaultExample' + grouped_signers_example: + $ref: '#/components/examples/SignatureRequestEditRequestGroupedSignersExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/SignatureRequestEditRequest' responses: 200: description: 'successful operation' @@ -2266,14 +2270,12 @@ paths: X-Ratelimit-Reset: $ref: '#/components/headers/X-Ratelimit-Reset' content: - application/pdf: - schema: - type: string - format: binary - application/zip: + application/json: schema: - type: string - format: binary + $ref: '#/components/schemas/SignatureRequestGetResponse' + examples: + default_example: + $ref: '#/components/examples/SignatureRequestEditResponseExample' 4XX: description: failed_operation content: @@ -2293,8 +2295,6 @@ paths: $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' - 410_example: - $ref: '#/components/examples/Error410ResponseExample' 429_example: $ref: '#/components/examples/Error429ResponseExample' 4XX_example: @@ -2311,65 +2311,78 @@ paths: lang: PHP label: PHP source: - $ref: examples/SignatureRequestFiles.php + $ref: examples/SignatureRequestEdit.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestFiles.cs + $ref: examples/SignatureRequestEdit.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestFiles.js + $ref: examples/SignatureRequestEdit.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestFiles.ts + $ref: examples/SignatureRequestEdit.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestFiles.java + $ref: examples/SignatureRequestEdit.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestFiles.rb + $ref: examples/SignatureRequestEdit.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestFiles.py + $ref: examples/SignatureRequestEdit.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestFiles.sh + $ref: examples/SignatureRequestEdit.sh x-meta: seo: - title: 'Download Files | API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API allows you to build custom integrations. To find out how to get the current documents specified by the parameters, click here' - '/signature_request/files_as_data_uri/{signature_request_id}': - get: + title: 'Edit Signature Request | REST API | Dropbox Sign for Developers' + description: 'Dropbox Sign API allows you to build custom integrations. To find out how to edit a SignatureRequest with the submitted documents, click here.' + x-hideOn: doc + x-beta: closed + '/signature_request/edit_embedded/{signature_request_id}': + put: tags: - 'Signature Request' - summary: 'Download Files as Data Uri' - description: |- - Obtain a copy of the current documents specified by the `signature_request_id` parameter. Returns a JSON object with a `data_uri` representing the base64 encoded file (PDFs only). - - If the files are currently being prepared, a status code of `409` will be returned instead. - operationId: signatureRequestFilesAsDataUri + summary: 'Edit Embedded Signature Request' + description: 'Edits a SignatureRequest with the submitted documents to be signed in an embedded iFrame. If form_fields_per_document is not specified, a signature page will be affixed where all signers will be required to add their signature, signifying their agreement to all contained documents. Note that embedded signature requests can only be signed in embedded iFrames whereas normal signature requests can only be signed on Dropbox Sign.' + operationId: signatureRequestEditEmbedded parameters: - name: signature_request_id in: path - description: 'The id of the SignatureRequest to retrieve.' + description: 'The id of the SignatureRequest to edit.' required: true schema: type: string example: fa5c8a0b0f492d768749333ad6fcc214c111e967 + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SignatureRequestEditEmbeddedRequest' + examples: + default_example: + $ref: '#/components/examples/SignatureRequestEditEmbeddedRequestDefaultExample' + grouped_signers_example: + $ref: '#/components/examples/SignatureRequestEditEmbeddedRequestGroupedSignersExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/SignatureRequestEditEmbeddedRequest' responses: 200: description: 'successful operation' @@ -2383,10 +2396,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/FileResponseDataUri' + $ref: '#/components/schemas/SignatureRequestGetResponse' examples: default_example: - $ref: '#/components/examples/SignatureRequestFilesResponseExample' + $ref: '#/components/examples/SignatureRequestEditEmbeddedResponseExample' 4XX: description: failed_operation content: @@ -2406,8 +2419,6 @@ paths: $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' - 410_example: - $ref: '#/components/examples/Error410ResponseExample' 429_example: $ref: '#/components/examples/Error429ResponseExample' 4XX_example: @@ -2417,79 +2428,82 @@ paths: api_key: [] - oauth2: - - request_signature - signature_request_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/SignatureRequestFilesAsDataUri.php + $ref: examples/SignatureRequestEditEmbedded.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestFilesAsDataUri.cs + $ref: examples/SignatureRequestEditEmbedded.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestFilesAsDataUri.js + $ref: examples/SignatureRequestEditEmbedded.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestFilesAsDataUri.ts + $ref: examples/SignatureRequestEditEmbedded.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestFilesAsDataUri.java + $ref: examples/SignatureRequestEditEmbedded.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestFilesAsDataUri.rb + $ref: examples/SignatureRequestEditEmbedded.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestFilesAsDataUri.py + $ref: examples/SignatureRequestEditEmbedded.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestFilesAsDataUri.sh + $ref: examples/SignatureRequestEditEmbedded.sh x-meta: seo: - title: 'Download Files | API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API allows you to build custom integrations. To find out how to get the current documents specified by the parameters, click here' - '/signature_request/files_as_file_url/{signature_request_id}': - get: + title: 'Edit Embedded Signature Request | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to edit a SignatureRequest in an iFrame, click here.' + x-hideOn: doc + x-beta: closed + '/signature_request/edit_embedded_with_template/{signature_request_id}': + put: tags: - 'Signature Request' - summary: 'Download Files as File Url' - description: |- - Obtain a copy of the current documents specified by the `signature_request_id` parameter. Returns a JSON object with a url to the file (PDFs only). - - If the files are currently being prepared, a status code of `409` will be returned instead. - operationId: signatureRequestFilesAsFileUrl + summary: 'Edit Embedded Signature Request with Template' + description: 'Edits a SignatureRequest based on the given Template(s) to be signed in an embedded iFrame. Note that embedded signature requests can only be signed in embedded iFrames whereas normal signature requests can only be signed on Dropbox Sign.' + operationId: signatureRequestEditEmbeddedWithTemplate parameters: - name: signature_request_id in: path - description: 'The id of the SignatureRequest to retrieve.' + description: 'The id of the SignatureRequest to edit.' required: true schema: type: string example: fa5c8a0b0f492d768749333ad6fcc214c111e967 - - - name: force_download - in: query - description: 'By default when opening the `file_url` a browser will download the PDF and save it locally. When set to `0` the PDF file will be displayed in the browser.' - schema: - type: integer - default: 1 + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SignatureRequestEditEmbeddedWithTemplateRequest' + examples: + default_example: + $ref: '#/components/examples/SignatureRequestEditEmbeddedWithTemplateRequestDefaultExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/SignatureRequestEditEmbeddedWithTemplateRequest' responses: 200: description: 'successful operation' @@ -2503,10 +2517,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/FileResponse' + $ref: '#/components/schemas/SignatureRequestGetResponse' examples: default_example: - $ref: '#/components/examples/SignatureRequestFilesResponseExample' + $ref: '#/components/examples/SignatureRequestEditEmbeddedWithTemplateResponseExample' 4XX: description: failed_operation content: @@ -2526,8 +2540,6 @@ paths: $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' - 410_example: - $ref: '#/components/examples/Error410ResponseExample' 429_example: $ref: '#/components/examples/Error429ResponseExample' 4XX_example: @@ -2537,69 +2549,85 @@ paths: api_key: [] - oauth2: - - request_signature - signature_request_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/SignatureRequestFilesAsFileUrl.php + $ref: examples/SignatureRequestEditEmbeddedWithTemplate.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestFilesAsFileUrl.cs + $ref: examples/SignatureRequestEditEmbeddedWithTemplate.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestFilesAsFileUrl.js + $ref: examples/SignatureRequestEditEmbeddedWithTemplate.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestFilesAsFileUrl.ts + $ref: examples/SignatureRequestEditEmbeddedWithTemplate.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestFilesAsFileUrl.java + $ref: examples/SignatureRequestEditEmbeddedWithTemplate.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestFilesAsFileUrl.rb + $ref: examples/SignatureRequestEditEmbeddedWithTemplate.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestFilesAsFileUrl.py + $ref: examples/SignatureRequestEditEmbeddedWithTemplate.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestFilesAsFileUrl.sh + $ref: examples/SignatureRequestEditEmbeddedWithTemplate.sh x-meta: seo: - title: 'Download Files | API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API allows you to build custom integrations. To find out how to get the current documents specified by the parameters, click here' - '/signature_request/{signature_request_id}': - get: + title: 'Signature Request with Template | Dropbox Sign for Developers' + description: 'The Dropbox Sign API allows you to build custom integrations. To find out how to edit a SignatureRequest based on the given Template, click here.' + x-hideOn: doc + x-beta: closed + '/signature_request/edit_with_template/{signature_request_id}': + put: tags: - 'Signature Request' - summary: 'Get Signature Request' - description: 'Returns the status of the SignatureRequest specified by the `signature_request_id` parameter.' - operationId: signatureRequestGet + summary: 'Edit Signature Request With Template' + description: |- + Edits and sends a SignatureRequest based off of the Template(s) specified with the template_ids parameter. + + **NOTE:** Edit and resend will not deduct your signature request quota. + operationId: signatureRequestEditWithTemplate parameters: - name: signature_request_id in: path - description: 'The id of the SignatureRequest to retrieve.' + description: 'The id of the SignatureRequest to edit.' required: true schema: type: string example: fa5c8a0b0f492d768749333ad6fcc214c111e967 + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SignatureRequestEditWithTemplateRequest' + examples: + default_example: + $ref: '#/components/examples/SignatureRequestEditWithTemplateRequestDefaultExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/SignatureRequestEditWithTemplateRequest' responses: 200: description: 'successful operation' @@ -2616,7 +2644,7 @@ paths: $ref: '#/components/schemas/SignatureRequestGetResponse' examples: default_example: - $ref: '#/components/examples/SignatureRequestGetResponseExample' + $ref: '#/components/examples/SignatureRequestEditWithTemplateResponseExample' 4XX: description: failed_operation content: @@ -2634,8 +2662,10 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 404_example: $ref: '#/components/examples/Error404ResponseExample' - 410_example: - $ref: '#/components/examples/Error410ResponseExample' + 409_example: + $ref: '#/components/examples/Error409ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -2650,84 +2680,77 @@ paths: lang: PHP label: PHP source: - $ref: examples/SignatureRequestGet.php + $ref: examples/SignatureRequestEditWithTemplate.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestGet.cs + $ref: examples/SignatureRequestEditWithTemplate.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestGet.js + $ref: examples/SignatureRequestEditWithTemplate.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestGet.ts + $ref: examples/SignatureRequestEditWithTemplate.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestGet.java + $ref: examples/SignatureRequestEditWithTemplate.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestGet.rb + $ref: examples/SignatureRequestEditWithTemplate.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestGet.py + $ref: examples/SignatureRequestEditWithTemplate.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestGet.sh + $ref: examples/SignatureRequestEditWithTemplate.sh x-meta: seo: - title: 'Get Signature Request | Documentation | Dropbox Sign for Developers' - description: 'The Dropbox Sign API allows you to build custom integrations. To find out how to return the status of SignatureRequest specified by the parameters, click here.' - /signature_request/list: + title: 'Edit Signature Request with Template | API Documentation | Dropbox Sign for Developers' + description: 'Dropbox Sign API allows you to build custom integrations. To find out how to edit a SignatureRequest based off of the Template, click here.' + x-hideOn: doc + x-beta: closed + '/signature_request/files/{signature_request_id}': get: tags: - 'Signature Request' - summary: 'List Signature Requests' + summary: 'Download Files' description: |- - Returns a list of SignatureRequests that you can access. This includes SignatureRequests you have sent as well as received, but not ones that you have been CCed on. + Obtain a copy of the current documents specified by the `signature_request_id` parameter. Returns a PDF or ZIP file. - Take a look at our [search guide](/api/reference/search/) to learn more about querying signature requests. - operationId: signatureRequestList + If the files are currently being prepared, a status code of `409` will be returned instead. + operationId: signatureRequestFiles parameters: - - name: account_id - in: query - description: 'Which account to return SignatureRequests for. Must be a team member. Use `all` to indicate all team members. Defaults to your account.' + name: signature_request_id + in: path + description: 'The id of the SignatureRequest to retrieve.' + required: true schema: type: string + example: fa5c8a0b0f492d768749333ad6fcc214c111e967 - - name: page - in: query - description: 'Which page number of the SignatureRequest List to return. Defaults to `1`.' - schema: - type: integer - default: 1 - example: 1 - - - name: page_size - in: query - description: 'Number of objects to be returned per page. Must be between `1` and `100`. Default is `20`.' - schema: - type: integer - default: 20 - - - name: query + name: file_type in: query - description: 'String that includes search terms and/or fields to be used to filter the SignatureRequest objects.' + description: 'Set to `pdf` for a single merged document or `zip` for a collection of individual documents.' schema: type: string + default: pdf + enum: + - pdf + - zip responses: 200: description: 'successful operation' @@ -2739,12 +2762,14 @@ paths: X-Ratelimit-Reset: $ref: '#/components/headers/X-Ratelimit-Reset' content: - application/json: + application/pdf: schema: - $ref: '#/components/schemas/SignatureRequestListResponse' - examples: - default_example: - $ref: '#/components/examples/SignatureRequestListResponseExample' + type: string + format: binary + application/zip: + schema: + type: string + format: binary 4XX: description: failed_operation content: @@ -2760,8 +2785,14 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' + 404_example: + $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' + 410_example: + $ref: '#/components/examples/Error410ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -2776,58 +2807,61 @@ paths: lang: PHP label: PHP source: - $ref: examples/SignatureRequestList.php + $ref: examples/SignatureRequestFiles.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestList.cs + $ref: examples/SignatureRequestFiles.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestList.js + $ref: examples/SignatureRequestFiles.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestList.ts + $ref: examples/SignatureRequestFiles.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestList.java + $ref: examples/SignatureRequestFiles.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestList.rb + $ref: examples/SignatureRequestFiles.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestList.py + $ref: examples/SignatureRequestFiles.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestList.sh + $ref: examples/SignatureRequestFiles.sh x-meta: seo: - title: 'List Signature Requests | REST API | Dropbox Sign for Developers' - description: 'The Dropbox Sign API allows you to build custom integrations. To find out how to return a list of SignatureRequests that you can access, click here.' - '/signature_request/release_hold/{signature_request_id}': - post: + title: 'Download Files | API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API allows you to build custom integrations. To find out how to get the current documents specified by the parameters, click here' + '/signature_request/files_as_data_uri/{signature_request_id}': + get: tags: - 'Signature Request' - summary: 'Release On-Hold Signature Request' - description: 'Releases a held SignatureRequest that was claimed and prepared from an [UnclaimedDraft](/api/reference/tag/Unclaimed-Draft). The owner of the Draft must indicate at Draft creation that the SignatureRequest created from the Draft should be held. Releasing the SignatureRequest will send requests to all signers.' - operationId: signatureRequestReleaseHold - parameters: - - - name: signature_request_id - in: path - description: 'The id of the SignatureRequest to release.' + summary: 'Download Files as Data Uri' + description: |- + Obtain a copy of the current documents specified by the `signature_request_id` parameter. Returns a JSON object with a `data_uri` representing the base64 encoded file (PDFs only). + + If the files are currently being prepared, a status code of `409` will be returned instead. + operationId: signatureRequestFilesAsDataUri + parameters: + - + name: signature_request_id + in: path + description: 'The id of the SignatureRequest to retrieve.' required: true schema: type: string @@ -2845,10 +2879,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SignatureRequestGetResponse' + $ref: '#/components/schemas/FileResponseDataUri' examples: default_example: - $ref: '#/components/examples/SignatureRequestReleaseHoldResponseExample' + $ref: '#/components/examples/SignatureRequestFilesResponseExample' 4XX: description: failed_operation content: @@ -2866,6 +2900,12 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 404_example: $ref: '#/components/examples/Error404ResponseExample' + 409_example: + $ref: '#/components/examples/Error409ResponseExample' + 410_example: + $ref: '#/components/examples/Error410ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -2873,80 +2913,79 @@ paths: api_key: [] - oauth2: + - request_signature - signature_request_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/SignatureRequestReleaseHold.php + $ref: examples/SignatureRequestFilesAsDataUri.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestReleaseHold.cs + $ref: examples/SignatureRequestFilesAsDataUri.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestReleaseHold.js + $ref: examples/SignatureRequestFilesAsDataUri.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestReleaseHold.ts + $ref: examples/SignatureRequestFilesAsDataUri.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestReleaseHold.java + $ref: examples/SignatureRequestFilesAsDataUri.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestReleaseHold.rb + $ref: examples/SignatureRequestFilesAsDataUri.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestReleaseHold.py + $ref: examples/SignatureRequestFilesAsDataUri.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestReleaseHold.sh + $ref: examples/SignatureRequestFilesAsDataUri.sh x-meta: seo: - title: 'Release On-Hold Signature Request | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API allows you to build custom eSign integrations. To find out how to release an on-hold SignatureRequest, click here.' - '/signature_request/remind/{signature_request_id}': - post: + title: 'Download Files | API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API allows you to build custom integrations. To find out how to get the current documents specified by the parameters, click here' + '/signature_request/files_as_file_url/{signature_request_id}': + get: tags: - 'Signature Request' - summary: 'Send Request Reminder' + summary: 'Download Files as File Url' description: |- - Sends an email to the signer reminding them to sign the signature request. You cannot send a reminder within 1 hour of the last reminder that was sent. This includes manual AND automatic reminders. + Obtain a copy of the current documents specified by the `signature_request_id` parameter. Returns a JSON object with a url to the file (PDFs only). - **NOTE**: This action can **not** be used with embedded signature requests. - operationId: signatureRequestRemind + If the files are currently being prepared, a status code of `409` will be returned instead. + operationId: signatureRequestFilesAsFileUrl parameters: - name: signature_request_id in: path - description: 'The id of the SignatureRequest to send a reminder for.' + description: 'The id of the SignatureRequest to retrieve.' required: true schema: type: string example: fa5c8a0b0f492d768749333ad6fcc214c111e967 - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/SignatureRequestRemindRequest' - examples: - default_example: - $ref: '#/components/examples/SignatureRequestRemindRequestDefaultExample' + - + name: force_download + in: query + description: 'By default when opening the `file_url` a browser will download the PDF and save it locally. When set to `0` the PDF file will be displayed in the browser.' + schema: + type: integer + default: 1 responses: 200: description: 'successful operation' @@ -2960,10 +2999,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SignatureRequestGetResponse' + $ref: '#/components/schemas/FileResponse' examples: default_example: - $ref: '#/components/examples/SignatureRequestRemindResponseExample' + $ref: '#/components/examples/SignatureRequestFilesResponseExample' 4XX: description: failed_operation content: @@ -3001,63 +3040,58 @@ paths: lang: PHP label: PHP source: - $ref: examples/SignatureRequestRemind.php + $ref: examples/SignatureRequestFilesAsFileUrl.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestRemind.cs + $ref: examples/SignatureRequestFilesAsFileUrl.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestRemind.js + $ref: examples/SignatureRequestFilesAsFileUrl.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestRemind.ts + $ref: examples/SignatureRequestFilesAsFileUrl.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestRemind.java + $ref: examples/SignatureRequestFilesAsFileUrl.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestRemind.rb + $ref: examples/SignatureRequestFilesAsFileUrl.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestRemind.py + $ref: examples/SignatureRequestFilesAsFileUrl.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestRemind.sh + $ref: examples/SignatureRequestFilesAsFileUrl.sh x-meta: seo: - title: 'Send Request Reminder | REST API | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API allows you to build custom eSign integrations. To find out how to send an email reminder to the signer, click here.' - '/signature_request/remove/{signature_request_id}': - post: + title: 'Download Files | API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API allows you to build custom integrations. To find out how to get the current documents specified by the parameters, click here' + '/signature_request/{signature_request_id}': + get: tags: - 'Signature Request' - summary: 'Remove Signature Request Access' - description: |- - Removes your access to a completed signature request. This action is **not reversible**. - - The signature request must be fully executed by all parties (signed or declined to sign). Other parties will continue to maintain access to the completed signature request document(s). - - Unlike /signature_request/cancel, this endpoint is synchronous and your access will be immediately removed. Upon successful removal, this endpoint will return a 200 OK response. - operationId: signatureRequestRemove + summary: 'Get Signature Request' + description: 'Returns the status of the SignatureRequest specified by the `signature_request_id` parameter.' + operationId: signatureRequestGet parameters: - name: signature_request_id in: path - description: 'The id of the SignatureRequest to remove.' + description: 'The id of the SignatureRequest to retrieve.' required: true schema: type: string @@ -3073,7 +3107,12 @@ paths: X-Ratelimit-Reset: $ref: '#/components/headers/X-Ratelimit-Reset' content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/SignatureRequestGetResponse' + examples: + default_example: + $ref: '#/components/examples/SignatureRequestGetResponseExample' 4XX: description: failed_operation content: @@ -3091,8 +3130,6 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 404_example: $ref: '#/components/examples/Error404ResponseExample' - 409_example: - $ref: '#/components/examples/Error409ResponseExample' 410_example: $ref: '#/components/examples/Error410ResponseExample' 4XX_example: @@ -3100,72 +3137,93 @@ paths: security: - api_key: [] + - + oauth2: + - request_signature + - signature_request_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/SignatureRequestRemove.php + $ref: examples/SignatureRequestGet.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestRemove.cs + $ref: examples/SignatureRequestGet.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestRemove.js + $ref: examples/SignatureRequestGet.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestRemove.ts + $ref: examples/SignatureRequestGet.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestRemove.java + $ref: examples/SignatureRequestGet.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestRemove.rb + $ref: examples/SignatureRequestGet.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestRemove.py + $ref: examples/SignatureRequestGet.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestRemove.sh + $ref: examples/SignatureRequestGet.sh x-meta: seo: - title: 'Remove Signature Request Access | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API allows you to build custom integrations. To find out how to remove your access to a completed signature request, click here.' - /signature_request/send: - post: + title: 'Get Signature Request | Documentation | Dropbox Sign for Developers' + description: 'The Dropbox Sign API allows you to build custom integrations. To find out how to return the status of SignatureRequest specified by the parameters, click here.' + /signature_request/list: + get: tags: - 'Signature Request' - summary: 'Send Signature Request' - description: 'Creates and sends a new SignatureRequest with the submitted documents. If `form_fields_per_document` is not specified, a signature page will be affixed where all signers will be required to add their signature, signifying their agreement to all contained documents.' - operationId: signatureRequestSend - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/SignatureRequestSendRequest' - examples: - default_example: - $ref: '#/components/examples/SignatureRequestSendRequestDefaultExample' - grouped_signers_example: - $ref: '#/components/examples/SignatureRequestSendRequestGroupedSignersExample' - multipart/form-data: - schema: - $ref: '#/components/schemas/SignatureRequestSendRequest' + summary: 'List Signature Requests' + description: |- + Returns a list of SignatureRequests that you can access. This includes SignatureRequests you have sent as well as received, but not ones that you have been CCed on. + + Take a look at our [search guide](/api/reference/search/) to learn more about querying signature requests. + operationId: signatureRequestList + parameters: + - + name: account_id + in: query + description: 'Which account to return SignatureRequests for. Must be a team member. Use `all` to indicate all team members. Defaults to your account.' + schema: + type: string + - + name: page + in: query + description: 'Which page number of the SignatureRequest List to return. Defaults to `1`.' + schema: + type: integer + default: 1 + example: 1 + - + name: page_size + in: query + description: 'Number of objects to be returned per page. Must be between `1` and `100`. Default is `20`.' + schema: + type: integer + default: 20 + - + name: query + in: query + description: 'String that includes search terms and/or fields to be used to filter the SignatureRequest objects.' + schema: + type: string responses: 200: description: 'successful operation' @@ -3179,10 +3237,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SignatureRequestGetResponse' + $ref: '#/components/schemas/SignatureRequestListResponse' examples: default_example: - $ref: '#/components/examples/SignatureRequestSendResponseExample' + $ref: '#/components/examples/SignatureRequestListResponseExample' 4XX: description: failed_operation content: @@ -3200,8 +3258,6 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' - 429_example: - $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -3216,82 +3272,79 @@ paths: lang: PHP label: PHP source: - $ref: examples/SignatureRequestSend.php + $ref: examples/SignatureRequestList.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestSend.cs + $ref: examples/SignatureRequestList.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestSend.js + $ref: examples/SignatureRequestList.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestSend.ts + $ref: examples/SignatureRequestList.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestSend.java + $ref: examples/SignatureRequestList.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestSend.rb + $ref: examples/SignatureRequestList.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestSend.py + $ref: examples/SignatureRequestList.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestSend.sh + $ref: examples/SignatureRequestList.sh x-meta: seo: - title: 'Send Signature Request | REST API | Dropbox Sign for Developers' - description: 'Dropbox Sign API allows you to build custom integrations. To find out how to create and send new SignatureRequest with the submitted documents, click here.' - /signature_request/send_with_template: + title: 'List Signature Requests | REST API | Dropbox Sign for Developers' + description: 'The Dropbox Sign API allows you to build custom integrations. To find out how to return a list of SignatureRequests that you can access, click here.' + '/signature_request/release_hold/{signature_request_id}': post: tags: - 'Signature Request' - summary: 'Send with Template' - description: 'Creates and sends a new SignatureRequest based off of the Template(s) specified with the `template_ids` parameter.' - operationId: signatureRequestSendWithTemplate - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/SignatureRequestSendWithTemplateRequest' - examples: - default_example: - $ref: '#/components/examples/SignatureRequestSendWithTemplateRequestDefaultExample' - multipart/form-data: - schema: - $ref: '#/components/schemas/SignatureRequestSendWithTemplateRequest' - responses: - 200: - description: 'successful operation' - headers: - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-Ratelimit-Reset: - $ref: '#/components/headers/X-Ratelimit-Reset' - content: + summary: 'Release On-Hold Signature Request' + description: 'Releases a held SignatureRequest that was claimed and prepared from an [UnclaimedDraft](/api/reference/tag/Unclaimed-Draft). The owner of the Draft must indicate at Draft creation that the SignatureRequest created from the Draft should be held. Releasing the SignatureRequest will send requests to all signers.' + operationId: signatureRequestReleaseHold + parameters: + - + name: signature_request_id + in: path + description: 'The id of the SignatureRequest to release.' + required: true + schema: + type: string + example: fa5c8a0b0f492d768749333ad6fcc214c111e967 + responses: + 200: + description: 'successful operation' + headers: + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-Ratelimit-Reset: + $ref: '#/components/headers/X-Ratelimit-Reset' + content: application/json: schema: $ref: '#/components/schemas/SignatureRequestGetResponse' examples: default_example: - $ref: '#/components/examples/SignatureRequestSendWithTemplateResponseExample' + $ref: '#/components/examples/SignatureRequestReleaseHoldResponseExample' 4XX: description: failed_operation content: @@ -3307,8 +3360,8 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' - 429_example: - $ref: '#/components/examples/Error429ResponseExample' + 404_example: + $ref: '#/components/examples/Error404ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -3316,70 +3369,67 @@ paths: api_key: [] - oauth2: - - request_signature - signature_request_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/SignatureRequestSendWithTemplate.php + $ref: examples/SignatureRequestReleaseHold.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestSendWithTemplate.cs + $ref: examples/SignatureRequestReleaseHold.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestSendWithTemplate.js + $ref: examples/SignatureRequestReleaseHold.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestSendWithTemplate.ts + $ref: examples/SignatureRequestReleaseHold.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestSendWithTemplate.java + $ref: examples/SignatureRequestReleaseHold.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestSendWithTemplate.rb + $ref: examples/SignatureRequestReleaseHold.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestSendWithTemplate.py + $ref: examples/SignatureRequestReleaseHold.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestSendWithTemplate.sh + $ref: examples/SignatureRequestReleaseHold.sh x-meta: seo: - title: 'Send with Template | API Documentation | Dropbox Sign for Developers' - description: 'Dropbox Sign API allows you to build custom integrations. To find out how to create and send a new SignatureRequest based off of the Template, click here.' - '/signature_request/update/{signature_request_id}': + title: 'Release On-Hold Signature Request | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API allows you to build custom eSign integrations. To find out how to release an on-hold SignatureRequest, click here.' + '/signature_request/remind/{signature_request_id}': post: tags: - 'Signature Request' - summary: 'Update Signature Request' + summary: 'Send Request Reminder' description: |- - Updates the email address and/or the name for a given signer on a signature request. You can listen for the `signature_request_email_bounce` event on your app or account to detect bounced emails, and respond with this method. - - Updating the email address of a signer will generate a new `signature_id` value. + Sends an email to the signer reminding them to sign the signature request. You cannot send a reminder within 1 hour of the last reminder that was sent. This includes manual AND automatic reminders. - **NOTE**: This action cannot be performed on a signature request with an appended signature page. - operationId: signatureRequestUpdate + **NOTE**: This action can **not** be used with embedded signature requests. + operationId: signatureRequestRemind parameters: - name: signature_request_id in: path - description: 'The id of the SignatureRequest to update.' + description: 'The id of the SignatureRequest to send a reminder for.' required: true schema: type: string @@ -3389,10 +3439,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SignatureRequestUpdateRequest' + $ref: '#/components/schemas/SignatureRequestRemindRequest' examples: default_example: - $ref: '#/components/examples/SignatureRequestUpdateRequestDefaultExample' + $ref: '#/components/examples/SignatureRequestRemindRequestDefaultExample' responses: 200: description: 'successful operation' @@ -3409,7 +3459,7 @@ paths: $ref: '#/components/schemas/SignatureRequestGetResponse' examples: default_example: - $ref: '#/components/examples/SignatureRequestUpdateResponseExample' + $ref: '#/components/examples/SignatureRequestRemindResponseExample' 4XX: description: failed_operation content: @@ -3427,6 +3477,12 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 404_example: $ref: '#/components/examples/Error404ResponseExample' + 409_example: + $ref: '#/components/examples/Error409ResponseExample' + 410_example: + $ref: '#/components/examples/Error410ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -3434,79 +3490,74 @@ paths: api_key: [] - oauth2: + - request_signature - signature_request_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/SignatureRequestUpdate.php + $ref: examples/SignatureRequestRemind.php - lang: 'C#' label: 'C#' source: - $ref: examples/SignatureRequestUpdate.cs + $ref: examples/SignatureRequestRemind.cs - lang: JavaScript label: JavaScript source: - $ref: examples/SignatureRequestUpdate.js + $ref: examples/SignatureRequestRemind.js - lang: TypeScript label: TypeScript source: - $ref: examples/SignatureRequestUpdate.ts + $ref: examples/SignatureRequestRemind.ts - lang: Java label: Java source: - $ref: examples/SignatureRequestUpdate.java + $ref: examples/SignatureRequestRemind.java - lang: Ruby label: Ruby source: - $ref: examples/SignatureRequestUpdate.rb + $ref: examples/SignatureRequestRemind.rb - lang: Python label: Python source: - $ref: examples/SignatureRequestUpdate.py + $ref: examples/SignatureRequestRemind.py - lang: cURL label: cURL source: - $ref: examples/SignatureRequestUpdate.sh + $ref: examples/SignatureRequestRemind.sh x-meta: seo: - title: 'Update Signature Request | REST API | Dropbox Sign for Developers' - description: 'Dropbox Sign API allows you to build custom integrations. To find out how to update the email address/name for a signer on a signature request, click here.' - /team/add_member: - put: + title: 'Send Request Reminder | REST API | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API allows you to build custom eSign integrations. To find out how to send an email reminder to the signer, click here.' + '/signature_request/remove/{signature_request_id}': + post: tags: - - Team - summary: 'Add User to Team' - description: 'Invites a user (specified using the `email_address` parameter) to your Team. If the user does not currently have a Dropbox Sign Account, a new one will be created for them. If a user is already a part of another Team, a `team_invite_failed` error will be returned.' - operationId: teamAddMember + - 'Signature Request' + summary: 'Remove Signature Request Access' + description: |- + Removes your access to a completed signature request. This action is **not reversible**. + + The signature request must be fully executed by all parties (signed or declined to sign). Other parties will continue to maintain access to the completed signature request document(s). + + Unlike /signature_request/cancel, this endpoint is synchronous and your access will be immediately removed. Upon successful removal, this endpoint will return a 200 OK response. + operationId: signatureRequestRemove parameters: - - name: team_id - in: query - description: 'The id of the team.' - required: false + name: signature_request_id + in: path + description: 'The id of the SignatureRequest to remove.' + required: true schema: type: string - example: 4fea99bfcf2b26bfccf6cea3e127fb8bb74d8d9c - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TeamAddMemberRequest' - examples: - email_address: - $ref: '#/components/examples/TeamAddMemberRequestEmailAddressExample' - account_id: - $ref: '#/components/examples/TeamAddMemberRequestAccountIdExample' + example: fa5c8a0b0f492d768749333ad6fcc214c111e967 responses: 200: description: 'successful operation' @@ -3518,12 +3569,7 @@ paths: X-Ratelimit-Reset: $ref: '#/components/headers/X-Ratelimit-Reset' content: - application/json: - schema: - $ref: '#/components/schemas/TeamGetResponse' - examples: - default_example: - $ref: '#/components/examples/TeamAddMemberResponseExample' + application/json: {} 4XX: description: failed_operation content: @@ -3541,75 +3587,81 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 404_example: $ref: '#/components/examples/Error404ResponseExample' + 409_example: + $ref: '#/components/examples/Error409ResponseExample' + 410_example: + $ref: '#/components/examples/Error410ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: - api_key: [] - - - oauth2: - - team_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/TeamAddMember.php + $ref: examples/SignatureRequestRemove.php - lang: 'C#' label: 'C#' source: - $ref: examples/TeamAddMember.cs + $ref: examples/SignatureRequestRemove.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TeamAddMember.js + $ref: examples/SignatureRequestRemove.js - lang: TypeScript label: TypeScript source: - $ref: examples/TeamAddMember.ts + $ref: examples/SignatureRequestRemove.ts - lang: Java label: Java source: - $ref: examples/TeamAddMember.java + $ref: examples/SignatureRequestRemove.java - lang: Ruby label: Ruby source: - $ref: examples/TeamAddMember.rb + $ref: examples/SignatureRequestRemove.rb - lang: Python label: Python source: - $ref: examples/TeamAddMember.py + $ref: examples/SignatureRequestRemove.py - lang: cURL label: cURL source: - $ref: examples/TeamAddMember.sh + $ref: examples/SignatureRequestRemove.sh x-meta: seo: - title: 'Add User to Team | API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to invite a specified user to your Team, click here.' - /team/create: + title: 'Remove Signature Request Access | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API allows you to build custom integrations. To find out how to remove your access to a completed signature request, click here.' + /signature_request/send: post: tags: - - Team - summary: 'Create Team' - description: 'Creates a new Team and makes you a member. You must not currently belong to a Team to invoke.' - operationId: teamCreate + - 'Signature Request' + summary: 'Send Signature Request' + description: 'Creates and sends a new SignatureRequest with the submitted documents. If `form_fields_per_document` is not specified, a signature page will be affixed where all signers will be required to add their signature, signifying their agreement to all contained documents.' + operationId: signatureRequestSend requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/TeamCreateRequest' + $ref: '#/components/schemas/SignatureRequestSendRequest' examples: default_example: - $ref: '#/components/examples/TeamCreateRequestDefaultExample' + $ref: '#/components/examples/SignatureRequestSendRequestDefaultExample' + grouped_signers_example: + $ref: '#/components/examples/SignatureRequestSendRequestGroupedSignersExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/SignatureRequestSendRequest' responses: 200: description: 'successful operation' @@ -3623,10 +3675,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TeamGetResponse' + $ref: '#/components/schemas/SignatureRequestGetResponse' examples: default_example: - $ref: '#/components/examples/TeamCreateResponseExample' + $ref: '#/components/examples/SignatureRequestSendResponseExample' 4XX: description: failed_operation content: @@ -3642,6 +3694,10 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' + 409_example: + $ref: '#/components/examples/Error409ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -3649,59 +3705,72 @@ paths: api_key: [] - oauth2: - - team_access + - request_signature + - signature_request_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/TeamCreate.php + $ref: examples/SignatureRequestSend.php - lang: 'C#' label: 'C#' source: - $ref: examples/TeamCreate.cs + $ref: examples/SignatureRequestSend.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TeamCreate.js + $ref: examples/SignatureRequestSend.js - lang: TypeScript label: TypeScript source: - $ref: examples/TeamCreate.ts + $ref: examples/SignatureRequestSend.ts - lang: Java label: Java source: - $ref: examples/TeamCreate.java + $ref: examples/SignatureRequestSend.java - lang: Ruby label: Ruby source: - $ref: examples/TeamCreate.rb + $ref: examples/SignatureRequestSend.rb - lang: Python label: Python source: - $ref: examples/TeamCreate.py + $ref: examples/SignatureRequestSend.py - lang: cURL label: cURL source: - $ref: examples/TeamCreate.sh + $ref: examples/SignatureRequestSend.sh x-meta: seo: - title: 'Create Team | REST API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API allows you to build custom eSign integrations. To find out how to create a new team and make yourself a member, click here.' - /team/destroy: - delete: + title: 'Send Signature Request | REST API | Dropbox Sign for Developers' + description: 'Dropbox Sign API allows you to build custom integrations. To find out how to create and send new SignatureRequest with the submitted documents, click here.' + /signature_request/send_with_template: + post: tags: - - Team - summary: 'Delete Team' - description: 'Deletes your Team. Can only be invoked when you have a Team with only one member (yourself).' - operationId: teamDelete + - 'Signature Request' + summary: 'Send with Template' + description: 'Creates and sends a new SignatureRequest based off of the Template(s) specified with the `template_ids` parameter.' + operationId: signatureRequestSendWithTemplate + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SignatureRequestSendWithTemplateRequest' + examples: + default_example: + $ref: '#/components/examples/SignatureRequestSendWithTemplateRequestDefaultExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/SignatureRequestSendWithTemplateRequest' responses: 200: description: 'successful operation' @@ -3712,6 +3781,13 @@ paths: $ref: '#/components/headers/X-RateLimit-Remaining' X-Ratelimit-Reset: $ref: '#/components/headers/X-Ratelimit-Reset' + content: + application/json: + schema: + $ref: '#/components/schemas/SignatureRequestGetResponse' + examples: + default_example: + $ref: '#/components/examples/SignatureRequestSendWithTemplateResponseExample' 4XX: description: failed_operation content: @@ -3727,6 +3803,8 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -3734,59 +3812,83 @@ paths: api_key: [] - oauth2: - - team_access + - request_signature + - signature_request_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/TeamDelete.php + $ref: examples/SignatureRequestSendWithTemplate.php - lang: 'C#' label: 'C#' source: - $ref: examples/TeamDelete.cs + $ref: examples/SignatureRequestSendWithTemplate.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TeamDelete.js + $ref: examples/SignatureRequestSendWithTemplate.js - lang: TypeScript label: TypeScript source: - $ref: examples/TeamDelete.ts + $ref: examples/SignatureRequestSendWithTemplate.ts - lang: Java label: Java source: - $ref: examples/TeamDelete.java + $ref: examples/SignatureRequestSendWithTemplate.java - lang: Ruby label: Ruby source: - $ref: examples/TeamDelete.rb + $ref: examples/SignatureRequestSendWithTemplate.rb - lang: Python label: Python source: - $ref: examples/TeamDelete.py + $ref: examples/SignatureRequestSendWithTemplate.py - lang: cURL label: cURL source: - $ref: examples/TeamDelete.sh + $ref: examples/SignatureRequestSendWithTemplate.sh x-meta: seo: - title: 'Delete Team | REST API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to delete a team you are a member of, click here.' - /team: - get: + title: 'Send with Template | API Documentation | Dropbox Sign for Developers' + description: 'Dropbox Sign API allows you to build custom integrations. To find out how to create and send a new SignatureRequest based off of the Template, click here.' + '/signature_request/update/{signature_request_id}': + post: tags: - - Team - summary: 'Get Team' - description: 'Returns information about your Team as well as a list of its members. If you do not belong to a Team, a 404 error with an error_name of "not_found" will be returned.' - operationId: teamGet + - 'Signature Request' + summary: 'Update Signature Request' + description: |- + Updates the email address and/or the name for a given signer on a signature request. You can listen for the `signature_request_email_bounce` event on your app or account to detect bounced emails, and respond with this method. + + Updating the email address of a signer will generate a new `signature_id` value. + + **NOTE**: This action cannot be performed on a signature request with an appended signature page. + operationId: signatureRequestUpdate + parameters: + - + name: signature_request_id + in: path + description: 'The id of the SignatureRequest to update.' + required: true + schema: + type: string + example: fa5c8a0b0f492d768749333ad6fcc214c111e967 + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SignatureRequestUpdateRequest' + examples: + default_example: + $ref: '#/components/examples/SignatureRequestUpdateRequestDefaultExample' responses: 200: description: 'successful operation' @@ -3800,10 +3902,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TeamGetResponse' + $ref: '#/components/schemas/SignatureRequestGetResponse' examples: default_example: - $ref: '#/components/examples/TeamGetResponseExample' + $ref: '#/components/examples/SignatureRequestUpdateResponseExample' 4XX: description: failed_operation content: @@ -3820,7 +3922,7 @@ paths: 403_example: $ref: '#/components/examples/Error403ResponseExample' 404_example: - $ref: '#/components/examples/TeamDoesNotExistResponseExample' + $ref: '#/components/examples/Error404ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -3828,67 +3930,79 @@ paths: api_key: [] - oauth2: - - team_access + - signature_request_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/TeamGet.php + $ref: examples/SignatureRequestUpdate.php - lang: 'C#' label: 'C#' source: - $ref: examples/TeamGet.cs + $ref: examples/SignatureRequestUpdate.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TeamGet.js + $ref: examples/SignatureRequestUpdate.js - lang: TypeScript label: TypeScript source: - $ref: examples/TeamGet.ts + $ref: examples/SignatureRequestUpdate.ts - lang: Java label: Java source: - $ref: examples/TeamGet.java + $ref: examples/SignatureRequestUpdate.java - lang: Ruby label: Ruby source: - $ref: examples/TeamGet.rb + $ref: examples/SignatureRequestUpdate.rb - lang: Python label: Python source: - $ref: examples/TeamGet.py + $ref: examples/SignatureRequestUpdate.py - lang: cURL label: cURL source: - $ref: examples/TeamGet.sh + $ref: examples/SignatureRequestUpdate.sh x-meta: seo: - title: 'Get Team | REST API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to return information about your Team, click here.' + title: 'Update Signature Request | REST API | Dropbox Sign for Developers' + description: 'Dropbox Sign API allows you to build custom integrations. To find out how to update the email address/name for a signer on a signature request, click here.' + /team/add_member: put: tags: - Team - summary: 'Update Team' - description: 'Updates the name of your Team.' - operationId: teamUpdate + summary: 'Add User to Team' + description: 'Invites a user (specified using the `email_address` parameter) to your Team. If the user does not currently have a Dropbox Sign Account, a new one will be created for them. If a user is already a part of another Team, a `team_invite_failed` error will be returned.' + operationId: teamAddMember + parameters: + - + name: team_id + in: query + description: 'The id of the team.' + required: false + schema: + type: string + example: 4fea99bfcf2b26bfccf6cea3e127fb8bb74d8d9c requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/TeamUpdateRequest' + $ref: '#/components/schemas/TeamAddMemberRequest' examples: - default_example: - $ref: '#/components/examples/TeamUpdateRequestDefaultExample' + email_address: + $ref: '#/components/examples/TeamAddMemberRequestEmailAddressExample' + account_id: + $ref: '#/components/examples/TeamAddMemberRequestAccountIdExample' responses: 200: description: 'successful operation' @@ -3905,7 +4019,7 @@ paths: $ref: '#/components/schemas/TeamGetResponse' examples: default_example: - $ref: '#/components/examples/TeamUpdateResponseExample' + $ref: '#/components/examples/TeamAddMemberResponseExample' 4XX: description: failed_operation content: @@ -3921,6 +4035,8 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' + 404_example: + $ref: '#/components/examples/Error404ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -3934,62 +4050,62 @@ paths: lang: PHP label: PHP source: - $ref: examples/TeamUpdate.php + $ref: examples/TeamAddMember.php - lang: 'C#' label: 'C#' source: - $ref: examples/TeamUpdate.cs + $ref: examples/TeamAddMember.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TeamUpdate.js + $ref: examples/TeamAddMember.js - lang: TypeScript label: TypeScript source: - $ref: examples/TeamUpdate.ts + $ref: examples/TeamAddMember.ts - lang: Java label: Java source: - $ref: examples/TeamUpdate.java + $ref: examples/TeamAddMember.java - lang: Ruby label: Ruby source: - $ref: examples/TeamUpdate.rb + $ref: examples/TeamAddMember.rb - lang: Python label: Python source: - $ref: examples/TeamUpdate.py + $ref: examples/TeamAddMember.py - lang: cURL label: cURL source: - $ref: examples/TeamUpdate.sh + $ref: examples/TeamAddMember.sh x-meta: seo: - title: 'Update Team | API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to update the name of your team, click here.' - /team/info: - get: + title: 'Add User to Team | API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to invite a specified user to your Team, click here.' + /team/create: + post: tags: - Team - summary: 'Get Team Info' - description: 'Provides information about a team.' - operationId: teamInfo - parameters: - - - name: team_id - in: query - description: 'The id of the team.' - required: false - schema: - type: string - example: 4fea99bfcf2b26bfccf6cea3e127fb8bb74d8d9c + summary: 'Create Team' + description: 'Creates a new Team and makes you a member. You must not currently belong to a Team to invoke.' + operationId: teamCreate + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TeamCreateRequest' + examples: + default_example: + $ref: '#/components/examples/TeamCreateRequestDefaultExample' responses: 200: description: 'successful operation' @@ -4003,10 +4119,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TeamGetInfoResponse' + $ref: '#/components/schemas/TeamGetResponse' examples: default_example: - $ref: '#/components/examples/TeamGetInfoResponseExample' + $ref: '#/components/examples/TeamCreateResponseExample' 4XX: description: failed_operation content: @@ -4022,10 +4138,6 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' - 409_example: - $ref: '#/components/examples/Error409ResponseExample' - 429_example: - $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -4039,61 +4151,53 @@ paths: lang: PHP label: PHP source: - $ref: examples/TeamInfo.php + $ref: examples/TeamCreate.php - lang: 'C#' label: 'C#' source: - $ref: examples/TeamInfo.cs + $ref: examples/TeamCreate.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TeamInfo.js + $ref: examples/TeamCreate.js - lang: TypeScript label: TypeScript source: - $ref: examples/TeamInfo.ts + $ref: examples/TeamCreate.ts - lang: Java label: Java source: - $ref: examples/TeamInfo.java + $ref: examples/TeamCreate.java - lang: Ruby label: Ruby source: - $ref: examples/TeamInfo.rb + $ref: examples/TeamCreate.rb - lang: Python label: Python source: - $ref: examples/TeamInfo.py + $ref: examples/TeamCreate.py - lang: cURL label: cURL source: - $ref: examples/TeamInfo.sh + $ref: examples/TeamCreate.sh x-meta: seo: - title: 'Get Team Info | Dropbox Sign for Developers' - description: 'The Dropbox Sign API allows you automate your team management. To find out how to get information about a specific team, click here.' - /team/invites: - get: + title: 'Create Team | REST API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API allows you to build custom eSign integrations. To find out how to create a new team and make yourself a member, click here.' + /team/destroy: + delete: tags: - Team - summary: 'List Team Invites' - description: 'Provides a list of team invites (and their roles).' - operationId: teamInvites - parameters: - - - name: email_address - in: query - description: 'The email address for which to display the team invites.' - required: false - schema: - type: string + summary: 'Delete Team' + description: 'Deletes your Team. Can only be invoked when you have a Team with only one member (yourself).' + operationId: teamDelete responses: 200: description: 'successful operation' @@ -4104,13 +4208,6 @@ paths: $ref: '#/components/headers/X-RateLimit-Remaining' X-Ratelimit-Reset: $ref: '#/components/headers/X-Ratelimit-Reset' - content: - application/json: - schema: - $ref: '#/components/schemas/TeamInvitesResponse' - examples: - default_example: - $ref: '#/components/examples/TeamInvitesResponseExample' 4XX: description: failed_operation content: @@ -4133,85 +4230,59 @@ paths: api_key: [] - oauth2: - - account_access - - basic_account_info + - team_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/TeamInvites.php + $ref: examples/TeamDelete.php - lang: 'C#' label: 'C#' source: - $ref: examples/TeamInvites.cs + $ref: examples/TeamDelete.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TeamInvites.js + $ref: examples/TeamDelete.js - lang: TypeScript label: TypeScript source: - $ref: examples/TeamInvites.ts + $ref: examples/TeamDelete.ts - lang: Java label: Java source: - $ref: examples/TeamInvites.java + $ref: examples/TeamDelete.java - lang: Ruby label: Ruby source: - $ref: examples/TeamInvites.rb + $ref: examples/TeamDelete.rb - lang: Python label: Python source: - $ref: examples/TeamInvites.py + $ref: examples/TeamDelete.py - lang: cURL label: cURL source: - $ref: examples/TeamInvites.sh + $ref: examples/TeamDelete.sh x-meta: seo: - title: 'List Team Invites | Dropbox Sign for Developers' - description: 'The Dropbox Sign API allows you automate your team management. To find out how to get a list of team invites (and their roles), click here.' - '/team/members/{team_id}': + title: 'Delete Team | REST API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to delete a team you are a member of, click here.' + /team: get: tags: - Team - summary: 'List Team Members' - description: 'Provides a paginated list of members (and their roles) that belong to a given team.' - operationId: teamMembers - parameters: - - - name: team_id - in: path - description: 'The id of the team that a member list is being requested from.' - required: true - schema: - type: string - example: 4fea99bfcf2b26bfccf6cea3e127fb8bb74d8d9c - - - name: page - in: query - description: 'Which page number of the team member list to return. Defaults to `1`.' - schema: - type: integer - default: 1 - - - name: page_size - in: query - description: 'Number of objects to be returned per page. Must be between `1` and `100`. Default is `20`.' - schema: - type: integer - default: 20 - maximum: 100 - minimum: 1 + summary: 'Get Team' + description: 'Returns information about your Team as well as a list of its members. If you do not belong to a Team, a 404 error with an error_name of "not_found" will be returned.' + operationId: teamGet responses: 200: description: 'successful operation' @@ -4225,10 +4296,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TeamMembersResponse' + $ref: '#/components/schemas/TeamGetResponse' examples: default_example: - $ref: '#/components/examples/TeamMembersResponseExample' + $ref: '#/components/examples/TeamGetResponseExample' 4XX: description: failed_operation content: @@ -4244,10 +4315,8 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' - 409_example: - $ref: '#/components/examples/Error409ResponseExample' - 429_example: - $ref: '#/components/examples/Error429ResponseExample' + 404_example: + $ref: '#/components/examples/TeamDoesNotExistResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -4261,64 +4330,61 @@ paths: lang: PHP label: PHP source: - $ref: examples/TeamMembers.php + $ref: examples/TeamGet.php - lang: 'C#' label: 'C#' source: - $ref: examples/TeamMembers.cs + $ref: examples/TeamGet.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TeamMembers.js + $ref: examples/TeamGet.js - lang: TypeScript label: TypeScript source: - $ref: examples/TeamMembers.ts + $ref: examples/TeamGet.ts - lang: Java label: Java source: - $ref: examples/TeamMembers.java + $ref: examples/TeamGet.java - lang: Ruby label: Ruby source: - $ref: examples/TeamMembers.rb + $ref: examples/TeamGet.rb - lang: Python label: Python source: - $ref: examples/TeamMembers.py + $ref: examples/TeamGet.py - lang: cURL label: cURL source: - $ref: examples/TeamMembers.sh + $ref: examples/TeamGet.sh x-meta: seo: - title: 'List Team Members | Dropbox Sign for Developers' - description: 'The Dropbox Sign API allows you automate your team management. To find out how to get a list of team members and their roles for a specific team, click here.' - /team/remove_member: - post: + title: 'Get Team | REST API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to return information about your Team, click here.' + put: tags: - Team - summary: 'Remove User from Team' - description: 'Removes the provided user Account from your Team. If the Account had an outstanding invitation to your Team, the invitation will be expired. If you choose to transfer documents from the removed Account to an Account provided in the `new_owner_email_address` parameter (available only for Enterprise plans), the response status code will be 201, which indicates that your request has been queued but not fully executed.' - operationId: teamRemoveMember + summary: 'Update Team' + description: 'Updates the name of your Team.' + operationId: teamUpdate requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/TeamRemoveMemberRequest' + $ref: '#/components/schemas/TeamUpdateRequest' examples: - email_address: - $ref: '#/components/examples/TeamRemoveMemberRequestEmailAddressExample' - account_id: - $ref: '#/components/examples/TeamRemoveMemberRequestAccountIdExample' + default_example: + $ref: '#/components/examples/TeamUpdateRequestDefaultExample' responses: 200: description: 'successful operation' @@ -4335,7 +4401,7 @@ paths: $ref: '#/components/schemas/TeamGetResponse' examples: default_example: - $ref: '#/components/examples/TeamRemoveMemberResponseExample' + $ref: '#/components/examples/TeamUpdateResponseExample' 4XX: description: failed_operation content: @@ -4351,8 +4417,6 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' - 404_example: - $ref: '#/components/examples/Error404ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -4366,78 +4430,62 @@ paths: lang: PHP label: PHP source: - $ref: examples/TeamRemoveMember.php + $ref: examples/TeamUpdate.php - lang: 'C#' label: 'C#' source: - $ref: examples/TeamRemoveMember.cs + $ref: examples/TeamUpdate.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TeamRemoveMember.js + $ref: examples/TeamUpdate.js - lang: TypeScript label: TypeScript source: - $ref: examples/TeamRemoveMember.ts + $ref: examples/TeamUpdate.ts - lang: Java label: Java source: - $ref: examples/TeamRemoveMember.java + $ref: examples/TeamUpdate.java - lang: Ruby label: Ruby source: - $ref: examples/TeamRemoveMember.rb + $ref: examples/TeamUpdate.rb - lang: Python label: Python source: - $ref: examples/TeamRemoveMember.py + $ref: examples/TeamUpdate.py - lang: cURL label: cURL source: - $ref: examples/TeamRemoveMember.sh + $ref: examples/TeamUpdate.sh x-meta: seo: - title: 'Remove User from Team | REST API | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to remove a user Account from your Team, click here.' - '/team/sub_teams/{team_id}': + title: 'Update Team | API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to update the name of your team, click here.' + /team/info: get: tags: - Team - summary: 'List Sub Teams' - description: 'Provides a paginated list of sub teams that belong to a given team.' - operationId: teamSubTeams + summary: 'Get Team Info' + description: 'Provides information about a team.' + operationId: teamInfo parameters: - name: team_id - in: path - description: 'The id of the parent Team.' - required: true + in: query + description: 'The id of the team.' + required: false schema: type: string example: 4fea99bfcf2b26bfccf6cea3e127fb8bb74d8d9c - - - name: page - in: query - description: 'Which page number of the SubTeam List to return. Defaults to `1`.' - schema: - type: integer - default: 1 - - - name: page_size - in: query - description: 'Number of objects to be returned per page. Must be between `1` and `100`. Default is `20`.' - schema: - type: integer - default: 20 - maximum: 100 - minimum: 1 responses: 200: description: 'successful operation' @@ -4451,10 +4499,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TeamSubTeamsResponse' + $ref: '#/components/schemas/TeamGetInfoResponse' examples: default_example: - $ref: '#/components/examples/TeamSubTeamsResponseExample' + $ref: '#/components/examples/TeamGetInfoResponseExample' 4XX: description: failed_operation content: @@ -4487,71 +4535,61 @@ paths: lang: PHP label: PHP source: - $ref: examples/TeamSubTeams.php + $ref: examples/TeamInfo.php - lang: 'C#' label: 'C#' source: - $ref: examples/TeamSubTeams.cs + $ref: examples/TeamInfo.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TeamSubTeams.js + $ref: examples/TeamInfo.js - lang: TypeScript label: TypeScript source: - $ref: examples/TeamSubTeams.ts + $ref: examples/TeamInfo.ts - lang: Java label: Java source: - $ref: examples/TeamSubTeams.java + $ref: examples/TeamInfo.java - lang: Ruby label: Ruby source: - $ref: examples/TeamSubTeams.rb + $ref: examples/TeamInfo.rb - lang: Python label: Python source: - $ref: examples/TeamSubTeams.py + $ref: examples/TeamInfo.py - lang: cURL label: cURL source: - $ref: examples/TeamSubTeams.sh + $ref: examples/TeamInfo.sh x-meta: seo: - title: 'List Sub Teams | Dropbox Sign for Developers' - description: 'The Dropbox Sign API allows you automate your team management. To find out how to get a list of sub teams that exist for a given team, click here.' - '/template/add_user/{template_id}': - post: + title: 'Get Team Info | Dropbox Sign for Developers' + description: 'The Dropbox Sign API allows you automate your team management. To find out how to get information about a specific team, click here.' + /team/invites: + get: tags: - - Template - summary: 'Add User to Template' - description: 'Gives the specified Account access to the specified Template. The specified Account must be a part of your Team.' - operationId: templateAddUser + - Team + summary: 'List Team Invites' + description: 'Provides a list of team invites (and their roles).' + operationId: teamInvites parameters: - - name: template_id - in: path - description: 'The id of the Template to give the Account access to.' - required: true + name: email_address + in: query + description: 'The email address for which to display the team invites.' + required: false schema: type: string - example: f57db65d3f933b5316d398057a36176831451a35 - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TemplateAddUserRequest' - examples: - default_example: - $ref: '#/components/examples/TemplateAddUserRequestDefaultExample' responses: 200: description: 'successful operation' @@ -4565,10 +4603,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TemplateGetResponse' + $ref: '#/components/schemas/TeamInvitesResponse' examples: default_example: - $ref: '#/components/examples/TemplateAddUserResponseExample' + $ref: '#/components/examples/TeamInvitesResponseExample' 4XX: description: failed_operation content: @@ -4584,8 +4622,6 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' - 404_example: - $ref: '#/components/examples/Error404ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -4593,77 +4629,85 @@ paths: api_key: [] - oauth2: - - template_access + - account_access + - basic_account_info x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/TemplateAddUser.php + $ref: examples/TeamInvites.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateAddUser.cs + $ref: examples/TeamInvites.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateAddUser.js + $ref: examples/TeamInvites.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateAddUser.ts + $ref: examples/TeamInvites.ts - lang: Java label: Java source: - $ref: examples/TemplateAddUser.java + $ref: examples/TeamInvites.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateAddUser.rb + $ref: examples/TeamInvites.rb - lang: Python label: Python source: - $ref: examples/TemplateAddUser.py + $ref: examples/TeamInvites.py - lang: cURL label: cURL source: - $ref: examples/TemplateAddUser.sh + $ref: examples/TeamInvites.sh x-meta: seo: - title: 'Add User to Template | REST API | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to give an Account access to a Template, click here.' - /template/create: - post: + title: 'List Team Invites | Dropbox Sign for Developers' + description: 'The Dropbox Sign API allows you automate your team management. To find out how to get a list of team invites (and their roles), click here.' + '/team/members/{team_id}': + get: tags: - - Template - summary: 'Create Template' - description: 'Creates a template that can then be used.' - operationId: templateCreate - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TemplateCreateRequest' - examples: - default_example: - $ref: '#/components/examples/TemplateCreateRequestDefaultExample' - form_fields_per_document: - $ref: '#/components/examples/TemplateCreateRequestFormFieldsPerDocumentExample' - form_field_groups: - $ref: '#/components/examples/TemplateCreateRequestFormFieldGroupsExample' - form_field_rules: - $ref: '#/components/examples/TemplateCreateRequestFormFieldRulesExample' - multipart/form-data: - schema: - $ref: '#/components/schemas/TemplateCreateRequest' + - Team + summary: 'List Team Members' + description: 'Provides a paginated list of members (and their roles) that belong to a given team.' + operationId: teamMembers + parameters: + - + name: team_id + in: path + description: 'The id of the team that a member list is being requested from.' + required: true + schema: + type: string + example: 4fea99bfcf2b26bfccf6cea3e127fb8bb74d8d9c + - + name: page + in: query + description: 'Which page number of the team member list to return. Defaults to `1`.' + schema: + type: integer + default: 1 + - + name: page_size + in: query + description: 'Number of objects to be returned per page. Must be between `1` and `100`. Default is `20`.' + schema: + type: integer + default: 20 + maximum: 100 + minimum: 1 responses: 200: description: 'successful operation' @@ -4677,10 +4721,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TemplateCreateResponse' + $ref: '#/components/schemas/TeamMembersResponse' examples: default_example: - $ref: '#/components/examples/TemplateCreateResponseExample' + $ref: '#/components/examples/TeamMembersResponseExample' 4XX: description: failed_operation content: @@ -4696,10 +4740,10 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' - 404_example: - $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -4707,79 +4751,72 @@ paths: api_key: [] - oauth2: - - template_access + - team_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/TemplateCreate.php + $ref: examples/TeamMembers.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateCreate.cs + $ref: examples/TeamMembers.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateCreate.js + $ref: examples/TeamMembers.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateCreate.ts + $ref: examples/TeamMembers.ts - lang: Java label: Java source: - $ref: examples/TemplateCreate.java + $ref: examples/TeamMembers.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateCreate.rb + $ref: examples/TeamMembers.rb - lang: Python label: Python source: - $ref: examples/TemplateCreate.py + $ref: examples/TeamMembers.py - lang: cURL label: cURL source: - $ref: examples/TemplateCreate.sh + $ref: examples/TeamMembers.sh x-meta: seo: - title: 'Create Template | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to create an template, click here.' - /template/create_embedded_draft: + title: 'List Team Members | Dropbox Sign for Developers' + description: 'The Dropbox Sign API allows you automate your team management. To find out how to get a list of team members and their roles for a specific team, click here.' + /team/remove_member: post: tags: - - Template - summary: 'Create Embedded Template Draft' - description: 'The first step in an embedded template workflow. Creates a draft template that can then be further set up in the template ''edit'' stage.' - operationId: templateCreateEmbeddedDraft + - Team + summary: 'Remove User from Team' + description: 'Removes the provided user Account from your Team. If the Account had an outstanding invitation to your Team, the invitation will be expired. If you choose to transfer documents from the removed Account to an Account provided in the `new_owner_email_address` parameter (available only for Enterprise plans), the response status code will be 201, which indicates that your request has been queued but not fully executed.' + operationId: teamRemoveMember requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/TemplateCreateEmbeddedDraftRequest' + $ref: '#/components/schemas/TeamRemoveMemberRequest' examples: - default_example: - $ref: '#/components/examples/TemplateCreateEmbeddedDraftRequestDefaultExample' - form_fields_per_document: - $ref: '#/components/examples/TemplateCreateEmbeddedDraftRequestFormFieldsPerDocumentExample' - form_field_groups: - $ref: '#/components/examples/TemplateCreateEmbeddedDraftRequestFormFieldGroupsExample' - form_field_rules: - $ref: '#/components/examples/TemplateCreateEmbeddedDraftRequestFormFieldRulesExample' - multipart/form-data: - schema: - $ref: '#/components/schemas/TemplateCreateEmbeddedDraftRequest' + email_address: + $ref: '#/components/examples/TeamRemoveMemberRequestEmailAddressExample' + account_id: + $ref: '#/components/examples/TeamRemoveMemberRequestAccountIdExample' responses: - 200: + 201: description: 'successful operation' headers: X-RateLimit-Limit: @@ -4791,10 +4828,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TemplateCreateEmbeddedDraftResponse' + $ref: '#/components/schemas/TeamGetResponse' examples: default_example: - $ref: '#/components/examples/TemplateCreateEmbeddedDraftResponseExample' + $ref: '#/components/examples/TeamRemoveMemberResponseExample' 4XX: description: failed_operation content: @@ -4812,8 +4849,6 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 404_example: $ref: '#/components/examples/Error404ResponseExample' - 409_example: - $ref: '#/components/examples/Error409ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -4821,68 +4856,84 @@ paths: api_key: [] - oauth2: - - template_access + - team_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/TemplateCreateEmbeddedDraft.php + $ref: examples/TeamRemoveMember.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateCreateEmbeddedDraft.cs + $ref: examples/TeamRemoveMember.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateCreateEmbeddedDraft.js + $ref: examples/TeamRemoveMember.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateCreateEmbeddedDraft.ts + $ref: examples/TeamRemoveMember.ts - lang: Java label: Java source: - $ref: examples/TemplateCreateEmbeddedDraft.java + $ref: examples/TeamRemoveMember.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateCreateEmbeddedDraft.rb + $ref: examples/TeamRemoveMember.rb - lang: Python label: Python source: - $ref: examples/TemplateCreateEmbeddedDraft.py + $ref: examples/TeamRemoveMember.py - lang: cURL label: cURL source: - $ref: examples/TemplateCreateEmbeddedDraft.sh + $ref: examples/TeamRemoveMember.sh x-meta: seo: - title: 'Create Embedded Template Draft | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to create an embedded draft template, click here.' - '/template/delete/{template_id}': - post: + title: 'Remove User from Team | REST API | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to remove a user Account from your Team, click here.' + '/team/sub_teams/{team_id}': + get: tags: - - Template - summary: 'Delete Template' - description: 'Completely deletes the template specified from the account.' - operationId: templateDelete + - Team + summary: 'List Sub Teams' + description: 'Provides a paginated list of sub teams that belong to a given team.' + operationId: teamSubTeams parameters: - - name: template_id + name: team_id in: path - description: 'The id of the Template to delete.' + description: 'The id of the parent Team.' required: true schema: type: string - example: f57db65d3f933b5316d398057a36176831451a35 + example: 4fea99bfcf2b26bfccf6cea3e127fb8bb74d8d9c + - + name: page + in: query + description: 'Which page number of the SubTeam List to return. Defaults to `1`.' + schema: + type: integer + default: 1 + - + name: page_size + in: query + description: 'Number of objects to be returned per page. Must be between `1` and `100`. Default is `20`.' + schema: + type: integer + default: 20 + maximum: 100 + minimum: 1 responses: 200: description: 'successful operation' @@ -4894,7 +4945,12 @@ paths: X-Ratelimit-Reset: $ref: '#/components/headers/X-Ratelimit-Reset' content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/TeamSubTeamsResponse' + examples: + default_example: + $ref: '#/components/examples/TeamSubTeamsResponseExample' 4XX: description: failed_operation content: @@ -4910,10 +4966,10 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' - 404_example: - $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -4921,80 +4977,77 @@ paths: api_key: [] - oauth2: - - template_access + - team_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/TemplateDelete.php + $ref: examples/TeamSubTeams.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateDelete.cs + $ref: examples/TeamSubTeams.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateDelete.js + $ref: examples/TeamSubTeams.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateDelete.ts + $ref: examples/TeamSubTeams.ts - lang: Java label: Java source: - $ref: examples/TemplateDelete.java + $ref: examples/TeamSubTeams.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateDelete.rb + $ref: examples/TeamSubTeams.rb - lang: Python label: Python source: - $ref: examples/TemplateDelete.py + $ref: examples/TeamSubTeams.py - lang: cURL label: cURL source: - $ref: examples/TemplateDelete.sh + $ref: examples/TeamSubTeams.sh x-meta: seo: - title: 'Delete Template | API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to completely delete a template from the account, click here.' - '/template/files/{template_id}': - get: + title: 'List Sub Teams | Dropbox Sign for Developers' + description: 'The Dropbox Sign API allows you automate your team management. To find out how to get a list of sub teams that exist for a given team, click here.' + '/template/add_user/{template_id}': + post: tags: - Template - summary: 'Get Template Files' - description: |- - Obtain a copy of the current documents specified by the `template_id` parameter. Returns a PDF or ZIP file. - - If the files are currently being prepared, a status code of `409` will be returned instead. In this case please wait for the `template_created` callback event. - operationId: templateFiles + summary: 'Add User to Template' + description: 'Gives the specified Account access to the specified Template. The specified Account must be a part of your Team.' + operationId: templateAddUser parameters: - name: template_id in: path - description: 'The id of the template files to retrieve.' + description: 'The id of the Template to give the Account access to.' required: true schema: type: string example: f57db65d3f933b5316d398057a36176831451a35 - - - name: file_type - in: query - description: 'Set to `pdf` for a single merged document or `zip` for a collection of individual documents.' - schema: - type: string - enum: - - pdf - - zip + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TemplateAddUserRequest' + examples: + default_example: + $ref: '#/components/examples/TemplateAddUserRequestDefaultExample' responses: 200: description: 'successful operation' @@ -5006,14 +5059,12 @@ paths: X-Ratelimit-Reset: $ref: '#/components/headers/X-Ratelimit-Reset' content: - application/pdf: - schema: - type: string - format: binary - application/zip: + application/json: schema: - type: string - format: binary + $ref: '#/components/schemas/TemplateGetResponse' + examples: + default_example: + $ref: '#/components/examples/TemplateAddUserResponseExample' 4XX: description: failed_operation content: @@ -5031,12 +5082,6 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 404_example: $ref: '#/components/examples/Error404ResponseExample' - 409_example: - $ref: '#/components/examples/Error409ResponseExample' - 422_example: - $ref: '#/components/examples/Error422ResponseExample' - 429_example: - $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -5050,84 +5095,90 @@ paths: lang: PHP label: PHP source: - $ref: examples/TemplateFiles.php + $ref: examples/TemplateAddUser.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateFiles.cs + $ref: examples/TemplateAddUser.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateFiles.js + $ref: examples/TemplateAddUser.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateFiles.ts + $ref: examples/TemplateAddUser.ts - lang: Java label: Java source: - $ref: examples/TemplateFiles.java + $ref: examples/TemplateAddUser.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateFiles.rb + $ref: examples/TemplateAddUser.rb - lang: Python label: Python source: - $ref: examples/TemplateFiles.py + $ref: examples/TemplateAddUser.py - lang: cURL label: cURL source: - $ref: examples/TemplateFiles.sh + $ref: examples/TemplateAddUser.sh x-meta: seo: - title: 'Get Template Files | API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to get a copy of the current specified documents, click here.' - '/template/files_as_data_uri/{template_id}': - get: + title: 'Add User to Template | REST API | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to give an Account access to a Template, click here.' + /template/create: + post: tags: - Template - summary: 'Get Template Files as Data Uri' - description: |- - Obtain a copy of the current documents specified by the `template_id` parameter. Returns a JSON object with a `data_uri` representing the base64 encoded file (PDFs only). - - If the files are currently being prepared, a status code of `409` will be returned instead. In this case please wait for the `template_created` callback event. - operationId: templateFilesAsDataUri - parameters: - - - name: template_id - in: path - description: 'The id of the template files to retrieve.' - required: true - schema: - type: string - example: f57db65d3f933b5316d398057a36176831451a35 - responses: - 200: - description: 'successful operation' - headers: - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-Ratelimit-Reset: - $ref: '#/components/headers/X-Ratelimit-Reset' - content: - application/json: - schema: - $ref: '#/components/schemas/FileResponseDataUri' - examples: - default_example: - $ref: '#/components/examples/TemplateFilesResponseExample' - 4XX: - description: failed_operation + summary: 'Create Template' + description: 'Creates a template that can then be used.' + operationId: templateCreate + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TemplateCreateRequest' + examples: + default_example: + $ref: '#/components/examples/TemplateCreateRequestDefaultExample' + form_fields_per_document: + $ref: '#/components/examples/TemplateCreateRequestFormFieldsPerDocumentExample' + form_field_groups: + $ref: '#/components/examples/TemplateCreateRequestFormFieldGroupsExample' + form_field_rules: + $ref: '#/components/examples/TemplateCreateRequestFormFieldRulesExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/TemplateCreateRequest' + responses: + 200: + description: 'successful operation' + headers: + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-Ratelimit-Reset: + $ref: '#/components/headers/X-Ratelimit-Reset' + content: + application/json: + schema: + $ref: '#/components/schemas/TemplateCreateResponse' + examples: + default_example: + $ref: '#/components/examples/TemplateCreateResponseExample' + 4XX: + description: failed_operation content: application/json: schema: @@ -5145,10 +5196,6 @@ paths: $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' - 422_example: - $ref: '#/components/examples/Error422ResponseExample' - 429_example: - $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -5162,72 +5209,71 @@ paths: lang: PHP label: PHP source: - $ref: examples/TemplateFilesAsDataUri.php + $ref: examples/TemplateCreate.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateFilesAsDataUri.cs + $ref: examples/TemplateCreate.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateFilesAsDataUri.js + $ref: examples/TemplateCreate.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateFilesAsDataUri.ts + $ref: examples/TemplateCreate.ts - lang: Java label: Java source: - $ref: examples/TemplateFilesAsDataUri.java + $ref: examples/TemplateCreate.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateFilesAsDataUri.rb + $ref: examples/TemplateCreate.rb - lang: Python label: Python source: - $ref: examples/TemplateFilesAsDataUri.py + $ref: examples/TemplateCreate.py - lang: cURL label: cURL source: - $ref: examples/TemplateFilesAsDataUri.sh + $ref: examples/TemplateCreate.sh x-meta: seo: - title: 'Get Template Files | API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to get a copy of the current specified documents, click here.' - '/template/files_as_file_url/{template_id}': - get: + title: 'Create Template | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to create an template, click here.' + /template/create_embedded_draft: + post: tags: - Template - summary: 'Get Template Files as File Url' - description: |- - Obtain a copy of the current documents specified by the `template_id` parameter. Returns a JSON object with a url to the file (PDFs only). - - If the files are currently being prepared, a status code of `409` will be returned instead. In this case please wait for the `template_created` callback event. - operationId: templateFilesAsFileUrl - parameters: - - - name: template_id - in: path - description: 'The id of the template files to retrieve.' - required: true - schema: - type: string - example: f57db65d3f933b5316d398057a36176831451a35 - - - name: force_download - in: query - description: 'By default when opening the `file_url` a browser will download the PDF and save it locally. When set to `0` the PDF file will be displayed in the browser.' - schema: - type: integer - default: 1 + summary: 'Create Embedded Template Draft' + description: 'The first step in an embedded template workflow. Creates a draft template that can then be further set up in the template ''edit'' stage.' + operationId: templateCreateEmbeddedDraft + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TemplateCreateEmbeddedDraftRequest' + examples: + default_example: + $ref: '#/components/examples/TemplateCreateEmbeddedDraftRequestDefaultExample' + form_fields_per_document: + $ref: '#/components/examples/TemplateCreateEmbeddedDraftRequestFormFieldsPerDocumentExample' + form_field_groups: + $ref: '#/components/examples/TemplateCreateEmbeddedDraftRequestFormFieldGroupsExample' + form_field_rules: + $ref: '#/components/examples/TemplateCreateEmbeddedDraftRequestFormFieldRulesExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/TemplateCreateEmbeddedDraftRequest' responses: 200: description: 'successful operation' @@ -5241,10 +5287,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/FileResponse' + $ref: '#/components/schemas/TemplateCreateEmbeddedDraftResponse' examples: default_example: - $ref: '#/components/examples/TemplateFilesResponseExample' + $ref: '#/components/examples/TemplateCreateEmbeddedDraftResponseExample' 4XX: description: failed_operation content: @@ -5264,10 +5310,6 @@ paths: $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' - 422_example: - $ref: '#/components/examples/Error422ResponseExample' - 429_example: - $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -5281,58 +5323,58 @@ paths: lang: PHP label: PHP source: - $ref: examples/TemplateFilesAsFileUrl.php + $ref: examples/TemplateCreateEmbeddedDraft.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateFilesAsFileUrl.cs + $ref: examples/TemplateCreateEmbeddedDraft.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateFilesAsFileUrl.js + $ref: examples/TemplateCreateEmbeddedDraft.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateFilesAsFileUrl.ts + $ref: examples/TemplateCreateEmbeddedDraft.ts - lang: Java label: Java source: - $ref: examples/TemplateFilesAsFileUrl.java + $ref: examples/TemplateCreateEmbeddedDraft.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateFilesAsFileUrl.rb + $ref: examples/TemplateCreateEmbeddedDraft.rb - lang: Python label: Python source: - $ref: examples/TemplateFilesAsFileUrl.py + $ref: examples/TemplateCreateEmbeddedDraft.py - lang: cURL label: cURL source: - $ref: examples/TemplateFilesAsFileUrl.sh + $ref: examples/TemplateCreateEmbeddedDraft.sh x-meta: seo: - title: 'Get Template Files | API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to get a copy of the current specified documents, click here.' - '/template/{template_id}': - get: + title: 'Create Embedded Template Draft | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom eSign integrations. To find out how to create an embedded draft template, click here.' + '/template/delete/{template_id}': + post: tags: - Template - summary: 'Get Template' - description: 'Returns the Template specified by the `template_id` parameter.' - operationId: templateGet + summary: 'Delete Template' + description: 'Completely deletes the template specified from the account.' + operationId: templateDelete parameters: - name: template_id in: path - description: 'The id of the Template to retrieve.' + description: 'The id of the Template to delete.' required: true schema: type: string @@ -5348,12 +5390,7 @@ paths: X-Ratelimit-Reset: $ref: '#/components/headers/X-Ratelimit-Reset' content: - application/json: - schema: - $ref: '#/components/schemas/TemplateGetResponse' - examples: - default_example: - $ref: '#/components/examples/TemplateGetResponseExample' + application/json: {} 4XX: description: failed_operation content: @@ -5371,8 +5408,8 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 404_example: $ref: '#/components/examples/Error404ResponseExample' - 429_example: - $ref: '#/components/examples/Error429ResponseExample' + 409_example: + $ref: '#/components/examples/Error409ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -5386,85 +5423,74 @@ paths: lang: PHP label: PHP source: - $ref: examples/TemplateGet.php + $ref: examples/TemplateDelete.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateGet.cs + $ref: examples/TemplateDelete.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateGet.js + $ref: examples/TemplateDelete.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateGet.ts + $ref: examples/TemplateDelete.ts - lang: Java label: Java source: - $ref: examples/TemplateGet.java + $ref: examples/TemplateDelete.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateGet.rb + $ref: examples/TemplateDelete.rb - lang: Python label: Python source: - $ref: examples/TemplateGet.py + $ref: examples/TemplateDelete.py - lang: cURL label: cURL source: - $ref: examples/TemplateGet.sh + $ref: examples/TemplateDelete.sh x-meta: seo: - title: 'Get Template | API Documentation | Dropbox Sign for Developers' - description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to return the Template specified by the `template_id` parameter, click here.' - /template/list: + title: 'Delete Template | API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to completely delete a template from the account, click here.' + '/template/files/{template_id}': get: tags: - Template - summary: 'List Templates' + summary: 'Get Template Files' description: |- - Returns a list of the Templates that are accessible by you. + Obtain a copy of the current documents specified by the `template_id` parameter. Returns a PDF or ZIP file. - Take a look at our [search guide](/api/reference/search/) to learn more about querying templates. - operationId: templateList + If the files are currently being prepared, a status code of `409` will be returned instead. In this case please wait for the `template_created` callback event. + operationId: templateFiles parameters: - - name: account_id - in: query - description: 'Which account to return Templates for. Must be a team member. Use `all` to indicate all team members. Defaults to your account.' + name: template_id + in: path + description: 'The id of the template files to retrieve.' + required: true schema: type: string + example: f57db65d3f933b5316d398057a36176831451a35 - - name: page - in: query - description: 'Which page number of the Template List to return. Defaults to `1`.' - schema: - type: integer - default: 1 - - - name: page_size - in: query - description: 'Number of objects to be returned per page. Must be between `1` and `100`. Default is `20`.' - schema: - type: integer - default: 20 - maximum: 100 - minimum: 1 - - - name: query + name: file_type in: query - description: 'String that includes search terms and/or fields to be used to filter the Template objects.' + description: 'Set to `pdf` for a single merged document or `zip` for a collection of individual documents.' schema: type: string + enum: + - pdf + - zip responses: 200: description: 'successful operation' @@ -5476,12 +5502,14 @@ paths: X-Ratelimit-Reset: $ref: '#/components/headers/X-Ratelimit-Reset' content: - application/json: + application/pdf: schema: - $ref: '#/components/schemas/TemplateListResponse' - examples: - default_example: - $ref: '#/components/examples/TemplateListResponseExample' + type: string + format: binary + application/zip: + schema: + type: string + format: binary 4XX: description: failed_operation content: @@ -5497,8 +5525,12 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' + 404_example: + $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' + 422_example: + $ref: '#/components/examples/Error422ResponseExample' 429_example: $ref: '#/components/examples/Error429ResponseExample' 4XX_example: @@ -5514,71 +5546,65 @@ paths: lang: PHP label: PHP source: - $ref: examples/TemplateList.php + $ref: examples/TemplateFiles.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateList.cs + $ref: examples/TemplateFiles.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateList.js + $ref: examples/TemplateFiles.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateList.ts + $ref: examples/TemplateFiles.ts - lang: Java label: Java source: - $ref: examples/TemplateList.java + $ref: examples/TemplateFiles.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateList.rb + $ref: examples/TemplateFiles.rb - lang: Python label: Python source: - $ref: examples/TemplateList.py + $ref: examples/TemplateFiles.py - lang: cURL label: cURL source: - $ref: examples/TemplateList.sh + $ref: examples/TemplateFiles.sh x-meta: seo: - title: 'List Templates | API Documentation | Dropbox Sign for Developers' - description: 'The Dropbox Sign API easily allows you to build custom integrations. To find out how to return a list of the Templates that can be accessed by you, click here.' - '/template/remove_user/{template_id}': - post: + title: 'Get Template Files | API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to get a copy of the current specified documents, click here.' + '/template/files_as_data_uri/{template_id}': + get: tags: - Template - summary: 'Remove User from Template' - description: 'Removes the specified Account''s access to the specified Template.' - operationId: templateRemoveUser + summary: 'Get Template Files as Data Uri' + description: |- + Obtain a copy of the current documents specified by the `template_id` parameter. Returns a JSON object with a `data_uri` representing the base64 encoded file (PDFs only). + + If the files are currently being prepared, a status code of `409` will be returned instead. In this case please wait for the `template_created` callback event. + operationId: templateFilesAsDataUri parameters: - name: template_id in: path - description: 'The id of the Template to remove the Account''s access to.' + description: 'The id of the template files to retrieve.' required: true schema: type: string example: f57db65d3f933b5316d398057a36176831451a35 - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TemplateRemoveUserRequest' - examples: - default_example: - $ref: '#/components/examples/TemplateRemoveUserRequestDefaultExample' responses: 200: description: 'successful operation' @@ -5592,10 +5618,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TemplateGetResponse' + $ref: '#/components/schemas/FileResponseDataUri' examples: default_example: - $ref: '#/components/examples/TemplateRemoveUserResponseExample' + $ref: '#/components/examples/TemplateFilesResponseExample' 4XX: description: failed_operation content: @@ -5613,6 +5639,12 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 404_example: $ref: '#/components/examples/Error404ResponseExample' + 409_example: + $ref: '#/components/examples/Error409ResponseExample' + 422_example: + $ref: '#/components/examples/Error422ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -5626,86 +5658,72 @@ paths: lang: PHP label: PHP source: - $ref: examples/TemplateRemoveUser.php + $ref: examples/TemplateFilesAsDataUri.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateRemoveUser.cs + $ref: examples/TemplateFilesAsDataUri.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateRemoveUser.js + $ref: examples/TemplateFilesAsDataUri.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateRemoveUser.ts + $ref: examples/TemplateFilesAsDataUri.ts - lang: Java label: Java source: - $ref: examples/TemplateRemoveUser.java + $ref: examples/TemplateFilesAsDataUri.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateRemoveUser.rb + $ref: examples/TemplateFilesAsDataUri.rb - lang: Python label: Python source: - $ref: examples/TemplateRemoveUser.py + $ref: examples/TemplateFilesAsDataUri.py - lang: cURL label: cURL source: - $ref: examples/TemplateRemoveUser.sh + $ref: examples/TemplateFilesAsDataUri.sh x-meta: seo: - title: 'Remove User from Template | REST API | Dropbox Sign for Developers' - description: 'The Dropbox Sign API easily allows you to build custom integrations. To find out how to remove a specified Account''s access to a Template, click here.' - '/template/update_files/{template_id}': - post: + title: 'Get Template Files | API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to get a copy of the current specified documents, click here.' + '/template/files_as_file_url/{template_id}': + get: tags: - Template - summary: 'Update Template Files' + summary: 'Get Template Files as File Url' description: |- - Overlays a new file with the overlay of an existing template. The new file(s) must: - - 1. have the same or higher page count - 2. the same orientation as the file(s) being replaced. - - This will not overwrite or in any way affect the existing template. Both the existing template and new template will be available for use after executing this endpoint. Also note that this will decrement your template quota. - - Overlaying new files is asynchronous and a successful call to this endpoint will return 200 OK response if the request passes initial validation checks. - - It is recommended that a callback be implemented to listen for the callback event. A `template_created` event will be sent when the files are updated or a `template_error` event will be sent if there was a problem while updating the files. If a callback handler has been configured and the event has not been received within 60 minutes of making the call, check the status of the request in the API dashboard and retry the request if necessary. + Obtain a copy of the current documents specified by the `template_id` parameter. Returns a JSON object with a url to the file (PDFs only). - If the page orientation or page count is different from the original template document, we will notify you with a `template_error` [callback event](https://app.hellosign.com/api/eventsAndCallbacksWalkthrough). - operationId: templateUpdateFiles + If the files are currently being prepared, a status code of `409` will be returned instead. In this case please wait for the `template_created` callback event. + operationId: templateFilesAsFileUrl parameters: - name: template_id in: path - description: 'The ID of the template whose files to update.' + description: 'The id of the template files to retrieve.' required: true schema: type: string example: f57db65d3f933b5316d398057a36176831451a35 - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TemplateUpdateFilesRequest' - examples: - default_example: - $ref: '#/components/examples/TemplateUpdateFilesRequestDefaultExample' - multipart/form-data: - schema: - $ref: '#/components/schemas/TemplateUpdateFilesRequest' + - + name: force_download + in: query + description: 'By default when opening the `file_url` a browser will download the PDF and save it locally. When set to `0` the PDF file will be displayed in the browser.' + schema: + type: integer + default: 1 responses: 200: description: 'successful operation' @@ -5719,10 +5737,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TemplateUpdateFilesResponse' + $ref: '#/components/schemas/FileResponse' examples: default_example: - $ref: '#/components/examples/TemplateUpdateFilesResponseExample' + $ref: '#/components/examples/TemplateFilesResponseExample' 4XX: description: failed_operation content: @@ -5742,6 +5760,8 @@ paths: $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' + 422_example: + $ref: '#/components/examples/Error422ResponseExample' 429_example: $ref: '#/components/examples/Error429ResponseExample' 4XX_example: @@ -5757,71 +5777,62 @@ paths: lang: PHP label: PHP source: - $ref: examples/TemplateUpdateFiles.php + $ref: examples/TemplateFilesAsFileUrl.php - lang: 'C#' label: 'C#' source: - $ref: examples/TemplateUpdateFiles.cs + $ref: examples/TemplateFilesAsFileUrl.cs - lang: JavaScript label: JavaScript source: - $ref: examples/TemplateUpdateFiles.js + $ref: examples/TemplateFilesAsFileUrl.js - lang: TypeScript label: TypeScript source: - $ref: examples/TemplateUpdateFiles.ts + $ref: examples/TemplateFilesAsFileUrl.ts - lang: Java label: Java source: - $ref: examples/TemplateUpdateFiles.java + $ref: examples/TemplateFilesAsFileUrl.java - lang: Ruby label: Ruby source: - $ref: examples/TemplateUpdateFiles.rb + $ref: examples/TemplateFilesAsFileUrl.rb - lang: Python label: Python source: - $ref: examples/TemplateUpdateFiles.py + $ref: examples/TemplateFilesAsFileUrl.py - lang: cURL label: cURL source: - $ref: examples/TemplateUpdateFiles.sh + $ref: examples/TemplateFilesAsFileUrl.sh x-meta: seo: - title: 'Update Template Files | REST API | Dropbox Sign for Developers' - description: 'Overlays a new file with the overlay of an existing template' - /unclaimed_draft/create: - post: + title: 'Get Template Files | API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to get a copy of the current specified documents, click here.' + '/template/{template_id}': + get: tags: - - 'Unclaimed Draft' - summary: 'Create Unclaimed Draft' - description: 'Creates a new Draft that can be claimed using the claim URL. The first authenticated user to access the URL will claim the Draft and will be shown either the "Sign and send" or the "Request signature" page with the Draft loaded. Subsequent access to the claim URL will result in a 404.' - operationId: unclaimedDraftCreate - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UnclaimedDraftCreateRequest' - examples: - default_example: - $ref: '#/components/examples/UnclaimedDraftCreateRequestDefaultExample' - form_fields_per_document: - $ref: '#/components/examples/UnclaimedDraftCreateRequestFormFieldsPerDocumentExample' - form_field_groups: - $ref: '#/components/examples/UnclaimedDraftCreateRequestFormFieldGroupsExample' - form_field_rules: - $ref: '#/components/examples/UnclaimedDraftCreateRequestFormFieldRulesExample' - multipart/form-data: - schema: - $ref: '#/components/schemas/UnclaimedDraftCreateRequest' + - Template + summary: 'Get Template' + description: 'Returns the Template specified by the `template_id` parameter.' + operationId: templateGet + parameters: + - + name: template_id + in: path + description: 'The id of the Template to retrieve.' + required: true + schema: + type: string + example: f57db65d3f933b5316d398057a36176831451a35 responses: 200: description: 'successful operation' @@ -5835,10 +5846,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UnclaimedDraftCreateResponse' + $ref: '#/components/schemas/TemplateGetResponse' examples: default_example: - $ref: '#/components/examples/UnclaimedDraftCreateResponseExample' + $ref: '#/components/examples/TemplateGetResponseExample' 4XX: description: failed_operation content: @@ -5854,6 +5865,10 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' + 404_example: + $ref: '#/components/examples/Error404ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -5861,80 +5876,91 @@ paths: api_key: [] - oauth2: - - signature_request_access + - template_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/UnclaimedDraftCreate.php + $ref: examples/TemplateGet.php - lang: 'C#' label: 'C#' source: - $ref: examples/UnclaimedDraftCreate.cs + $ref: examples/TemplateGet.cs - lang: JavaScript label: JavaScript source: - $ref: examples/UnclaimedDraftCreate.js + $ref: examples/TemplateGet.js - lang: TypeScript label: TypeScript source: - $ref: examples/UnclaimedDraftCreate.ts + $ref: examples/TemplateGet.ts - lang: Java label: Java source: - $ref: examples/UnclaimedDraftCreate.java + $ref: examples/TemplateGet.java - lang: Ruby label: Ruby source: - $ref: examples/UnclaimedDraftCreate.rb + $ref: examples/TemplateGet.rb - lang: Python label: Python source: - $ref: examples/UnclaimedDraftCreate.py + $ref: examples/TemplateGet.py - lang: cURL label: cURL source: - $ref: examples/UnclaimedDraftCreate.sh + $ref: examples/TemplateGet.sh x-meta: seo: - title: 'Create Unclaimed Draft | REST API | Dropbox Sign for Developers' - description: 'The Dropbox Sign API allows you to build eSign integrations. To find out how to create a new Signature Request Draft that can be claimed using the claim URL, click here.' - /unclaimed_draft/create_embedded: - post: + title: 'Get Template | API Documentation | Dropbox Sign for Developers' + description: 'The RESTful Dropbox Sign API easily allows you to build custom integrations. To find out how to return the Template specified by the `template_id` parameter, click here.' + /template/list: + get: tags: - - 'Unclaimed Draft' - summary: 'Create Embedded Unclaimed Draft' + - Template + summary: 'List Templates' description: |- - Creates a new Draft that can be claimed and used in an embedded iFrame. The first authenticated user to access the URL will claim the Draft and will be shown the "Request signature" page with the Draft loaded. Subsequent access to the claim URL will result in a `404`. For this embedded endpoint the `requester_email_address` parameter is required. + Returns a list of the Templates that are accessible by you. - **NOTE**: Embedded unclaimed drafts can only be accessed in embedded iFrames whereas normal drafts can be used and accessed on Dropbox Sign. - operationId: unclaimedDraftCreateEmbedded - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UnclaimedDraftCreateEmbeddedRequest' - examples: - default_example: - $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedRequestDefaultExample' - form_fields_per_document: - $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedRequestFormFieldsPerDocumentExample' - form_field_groups: - $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedRequestFormFieldGroupsExample' - form_field_rules: - $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedRequestFormFieldRulesExample' - multipart/form-data: - schema: - $ref: '#/components/schemas/UnclaimedDraftCreateEmbeddedRequest' + Take a look at our [search guide](/api/reference/search/) to learn more about querying templates. + operationId: templateList + parameters: + - + name: account_id + in: query + description: 'Which account to return Templates for. Must be a team member. Use `all` to indicate all team members. Defaults to your account.' + schema: + type: string + - + name: page + in: query + description: 'Which page number of the Template List to return. Defaults to `1`.' + schema: + type: integer + default: 1 + - + name: page_size + in: query + description: 'Number of objects to be returned per page. Must be between `1` and `100`. Default is `20`.' + schema: + type: integer + default: 20 + maximum: 100 + minimum: 1 + - + name: query + in: query + description: 'String that includes search terms and/or fields to be used to filter the Template objects.' + schema: + type: string responses: 200: description: 'successful operation' @@ -5948,10 +5974,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UnclaimedDraftCreateResponse' + $ref: '#/components/schemas/TemplateListResponse' examples: default_example: - $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedResponseExample' + $ref: '#/components/examples/TemplateListResponseExample' 4XX: description: failed_operation content: @@ -5967,10 +5993,10 @@ paths: $ref: '#/components/examples/Error402ResponseExample' 403_example: $ref: '#/components/examples/Error403ResponseExample' - 404_example: - $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -5978,75 +6004,77 @@ paths: api_key: [] - oauth2: - - request_signature - - signature_request_access + - template_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/UnclaimedDraftCreateEmbedded.php + $ref: examples/TemplateList.php - lang: 'C#' label: 'C#' source: - $ref: examples/UnclaimedDraftCreateEmbedded.cs + $ref: examples/TemplateList.cs - lang: JavaScript label: JavaScript source: - $ref: examples/UnclaimedDraftCreateEmbedded.js + $ref: examples/TemplateList.js - lang: TypeScript label: TypeScript source: - $ref: examples/UnclaimedDraftCreateEmbedded.ts + $ref: examples/TemplateList.ts - lang: Java label: Java source: - $ref: examples/UnclaimedDraftCreateEmbedded.java + $ref: examples/TemplateList.java - lang: Ruby label: Ruby source: - $ref: examples/UnclaimedDraftCreateEmbedded.rb + $ref: examples/TemplateList.rb - lang: Python label: Python source: - $ref: examples/UnclaimedDraftCreateEmbedded.py + $ref: examples/TemplateList.py - lang: cURL label: cURL source: - $ref: examples/UnclaimedDraftCreateEmbedded.sh + $ref: examples/TemplateList.sh x-meta: seo: - title: 'Create Embedded Unclaimed Draft | Dropbox Sign for Developers' - description: 'The Dropbox Sign API allows you to build custom integrations. To find out how to create and embed a the creation of a Signature Request in an iFrame, click here.' - /unclaimed_draft/create_embedded_with_template: + title: 'List Templates | API Documentation | Dropbox Sign for Developers' + description: 'The Dropbox Sign API easily allows you to build custom integrations. To find out how to return a list of the Templates that can be accessed by you, click here.' + '/template/remove_user/{template_id}': post: tags: - - 'Unclaimed Draft' - summary: 'Create Embedded Unclaimed Draft with Template' - description: |- - Creates a new Draft with a previously saved template(s) that can be claimed and used in an embedded iFrame. The first authenticated user to access the URL will claim the Draft and will be shown the "Request signature" page with the Draft loaded. Subsequent access to the claim URL will result in a `404`. For this embedded endpoint the `requester_email_address` parameter is required. - - **NOTE**: Embedded unclaimed drafts can only be accessed in embedded iFrames whereas normal drafts can be used and accessed on Dropbox Sign. - operationId: unclaimedDraftCreateEmbeddedWithTemplate + - Template + summary: 'Remove User from Template' + description: 'Removes the specified Account''s access to the specified Template.' + operationId: templateRemoveUser + parameters: + - + name: template_id + in: path + description: 'The id of the Template to remove the Account''s access to.' + required: true + schema: + type: string + example: f57db65d3f933b5316d398057a36176831451a35 requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/UnclaimedDraftCreateEmbeddedWithTemplateRequest' + $ref: '#/components/schemas/TemplateRemoveUserRequest' examples: default_example: - $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedWithTemplateRequestDefaultExample' - multipart/form-data: - schema: - $ref: '#/components/schemas/UnclaimedDraftCreateEmbeddedWithTemplateRequest' + $ref: '#/components/examples/TemplateRemoveUserRequestDefaultExample' responses: 200: description: 'successful operation' @@ -6060,10 +6088,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UnclaimedDraftCreateResponse' + $ref: '#/components/schemas/TemplateGetResponse' examples: default_example: - $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedWithTemplateResponseExample' + $ref: '#/components/examples/TemplateRemoveUserResponseExample' 4XX: description: failed_operation content: @@ -6081,10 +6109,6 @@ paths: $ref: '#/components/examples/Error403ResponseExample' 404_example: $ref: '#/components/examples/Error404ResponseExample' - 409_example: - $ref: '#/components/examples/Error409ResponseExample' - 429_example: - $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -6092,80 +6116,92 @@ paths: api_key: [] - oauth2: - - signature_request_access + - template_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.php + $ref: examples/TemplateRemoveUser.php - lang: 'C#' label: 'C#' source: - $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.cs + $ref: examples/TemplateRemoveUser.cs - lang: JavaScript label: JavaScript source: - $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.js + $ref: examples/TemplateRemoveUser.js - lang: TypeScript label: TypeScript source: - $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.ts + $ref: examples/TemplateRemoveUser.ts - lang: Java label: Java source: - $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.java + $ref: examples/TemplateRemoveUser.java - lang: Ruby label: Ruby source: - $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.rb + $ref: examples/TemplateRemoveUser.rb - lang: Python label: Python source: - $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.py + $ref: examples/TemplateRemoveUser.py - lang: cURL label: cURL source: - $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.sh + $ref: examples/TemplateRemoveUser.sh x-meta: seo: - title: 'Embed Unclaimed Draft with Template | Dropbox Sign for Developers' - description: 'The Dropbox Sign API easily allows you to build custom integrations. To find out how to create a new Draft with a previously saved template, click here.' - '/unclaimed_draft/edit_and_resend/{signature_request_id}': + title: 'Remove User from Template | REST API | Dropbox Sign for Developers' + description: 'The Dropbox Sign API easily allows you to build custom integrations. To find out how to remove a specified Account''s access to a Template, click here.' + '/template/update_files/{template_id}': post: tags: - - 'Unclaimed Draft' - summary: 'Edit and Resend Unclaimed Draft' + - Template + summary: 'Update Template Files' description: |- - Creates a new signature request from an embedded request that can be edited prior to being sent to the recipients. Parameter `test_mode` can be edited prior to request. Signers can be edited in embedded editor. Requester's email address will remain unchanged if `requester_email_address` parameter is not set. + Overlays a new file with the overlay of an existing template. The new file(s) must: - **NOTE**: Embedded unclaimed drafts can only be accessed in embedded iFrames whereas normal drafts can be used and accessed on Dropbox Sign. - operationId: unclaimedDraftEditAndResend + 1. have the same or higher page count + 2. the same orientation as the file(s) being replaced. + + This will not overwrite or in any way affect the existing template. Both the existing template and new template will be available for use after executing this endpoint. Also note that this will decrement your template quota. + + Overlaying new files is asynchronous and a successful call to this endpoint will return 200 OK response if the request passes initial validation checks. + + It is recommended that a callback be implemented to listen for the callback event. A `template_created` event will be sent when the files are updated or a `template_error` event will be sent if there was a problem while updating the files. If a callback handler has been configured and the event has not been received within 60 minutes of making the call, check the status of the request in the API dashboard and retry the request if necessary. + + If the page orientation or page count is different from the original template document, we will notify you with a `template_error` [callback event](https://app.hellosign.com/api/eventsAndCallbacksWalkthrough). + operationId: templateUpdateFiles parameters: - - name: signature_request_id + name: template_id in: path - description: 'The ID of the signature request to edit and resend.' + description: 'The ID of the template whose files to update.' required: true schema: type: string - example: fa5c8a0b0f492d768749333ad6fcc214c111e967 + example: f57db65d3f933b5316d398057a36176831451a35 requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/UnclaimedDraftEditAndResendRequest' + $ref: '#/components/schemas/TemplateUpdateFilesRequest' examples: default_example: - $ref: '#/components/examples/UnclaimedDraftEditAndResendRequestDefaultExample' + $ref: '#/components/examples/TemplateUpdateFilesRequestDefaultExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/TemplateUpdateFilesRequest' responses: 200: description: 'successful operation' @@ -6179,10 +6215,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UnclaimedDraftCreateResponse' + $ref: '#/components/schemas/TemplateUpdateFilesResponse' examples: default_example: - $ref: '#/components/examples/UnclaimedDraftEditAndResendExample' + $ref: '#/components/examples/TemplateUpdateFilesResponseExample' 4XX: description: failed_operation content: @@ -6202,8 +6238,8 @@ paths: $ref: '#/components/examples/Error404ResponseExample' 409_example: $ref: '#/components/examples/Error409ResponseExample' - 410_example: - $ref: '#/components/examples/Error410ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' 4XX_example: $ref: '#/components/examples/Error4XXResponseExample' security: @@ -6211,157 +6247,617 @@ paths: api_key: [] - oauth2: - - request_signature - - signature_request_access + - template_access x-codeSamples: - lang: PHP label: PHP source: - $ref: examples/UnclaimedDraftEditAndResend.php + $ref: examples/TemplateUpdateFiles.php - lang: 'C#' label: 'C#' source: - $ref: examples/UnclaimedDraftEditAndResend.cs + $ref: examples/TemplateUpdateFiles.cs - lang: JavaScript label: JavaScript source: - $ref: examples/UnclaimedDraftEditAndResend.js + $ref: examples/TemplateUpdateFiles.js - lang: TypeScript label: TypeScript source: - $ref: examples/UnclaimedDraftEditAndResend.ts + $ref: examples/TemplateUpdateFiles.ts - lang: Java label: Java source: - $ref: examples/UnclaimedDraftEditAndResend.java + $ref: examples/TemplateUpdateFiles.java - lang: Ruby label: Ruby source: - $ref: examples/UnclaimedDraftEditAndResend.rb + $ref: examples/TemplateUpdateFiles.rb - lang: Python label: Python source: - $ref: examples/UnclaimedDraftEditAndResend.py + $ref: examples/TemplateUpdateFiles.py - lang: cURL label: cURL source: - $ref: examples/UnclaimedDraftEditAndResend.sh + $ref: examples/TemplateUpdateFiles.sh x-meta: seo: - title: 'Edit and Resend Unclaimed Draft | Dropbox Sign for Developers' - description: 'The Dropbox Sign API easily allows you to build custom integrations. To find out how to create a new signature request from an embedded request, click here.' -components: - schemas: - AccountCreateRequest: - required: - - email_address - properties: - client_id: - description: |- - Used when creating a new account with OAuth authorization. - - See [OAuth 2.0 Authorization](https://app.hellosign.com/api/oauthWalkthrough#OAuthAuthorization) - type: string - client_secret: - description: |- - Used when creating a new account with OAuth authorization. - - See [OAuth 2.0 Authorization](https://app.hellosign.com/api/oauthWalkthrough#OAuthAuthorization) - type: string - email_address: - description: 'The email address which will be associated with the new Account.' - type: string - format: email - locale: - description: 'The locale used in this Account. Check out the list of [supported locales](/api/reference/constants/#supported-locales) to learn more about the possible values.' - type: string - type: object - AccountUpdateRequest: - properties: - account_id: - description: 'The ID of the Account' - type: string - nullable: true - callback_url: - description: 'The URL that Dropbox Sign should POST events to.' - type: string - locale: - description: 'The locale used in this Account. Check out the list of [supported locales](/api/reference/constants/#supported-locales) to learn more about the possible values.' - type: string - type: object - AccountVerifyRequest: - required: - - email_address - properties: - email_address: - description: 'Email address to run the verification for.' - type: string - format: email - type: object - ApiAppCreateRequest: - required: - - name - - domains - properties: - callback_url: - description: 'The URL at which the ApiApp should receive event callbacks.' - type: string - custom_logo_file: - description: 'An image file to use as a custom logo in embedded contexts. (Only applies to some API plans)' - type: string - format: binary - domains: - description: 'The domain names the ApiApp will be associated with.' - type: array - items: - type: string - maxItems: 2 - minItems: 1 - name: - description: 'The name you want to assign to the ApiApp.' - type: string - oauth: - $ref: '#/components/schemas/SubOAuth' - options: - $ref: '#/components/schemas/SubOptions' - white_labeling_options: - $ref: '#/components/schemas/SubWhiteLabelingOptions' - type: object - ApiAppUpdateRequest: - properties: - callback_url: - description: 'The URL at which the API App should receive event callbacks.' - type: string - custom_logo_file: - description: 'An image file to use as a custom logo in embedded contexts. (Only applies to some API plans)' - type: string - format: binary - domains: - description: 'The domain names the ApiApp will be associated with.' - type: array - items: - type: string - maxItems: 2 - name: - description: 'The name you want to assign to the ApiApp.' - type: string - oauth: - $ref: '#/components/schemas/SubOAuth' - options: - $ref: '#/components/schemas/SubOptions' - white_labeling_options: - $ref: '#/components/schemas/SubWhiteLabelingOptions' - type: object - EmbeddedEditUrlRequest: - properties: + title: 'Update Template Files | REST API | Dropbox Sign for Developers' + description: 'Overlays a new file with the overlay of an existing template' + /unclaimed_draft/create: + post: + tags: + - 'Unclaimed Draft' + summary: 'Create Unclaimed Draft' + description: 'Creates a new Draft that can be claimed using the claim URL. The first authenticated user to access the URL will claim the Draft and will be shown either the "Sign and send" or the "Request signature" page with the Draft loaded. Subsequent access to the claim URL will result in a 404.' + operationId: unclaimedDraftCreate + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UnclaimedDraftCreateRequest' + examples: + default_example: + $ref: '#/components/examples/UnclaimedDraftCreateRequestDefaultExample' + form_fields_per_document: + $ref: '#/components/examples/UnclaimedDraftCreateRequestFormFieldsPerDocumentExample' + form_field_groups: + $ref: '#/components/examples/UnclaimedDraftCreateRequestFormFieldGroupsExample' + form_field_rules: + $ref: '#/components/examples/UnclaimedDraftCreateRequestFormFieldRulesExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/UnclaimedDraftCreateRequest' + responses: + 200: + description: 'successful operation' + headers: + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-Ratelimit-Reset: + $ref: '#/components/headers/X-Ratelimit-Reset' + content: + application/json: + schema: + $ref: '#/components/schemas/UnclaimedDraftCreateResponse' + examples: + default_example: + $ref: '#/components/examples/UnclaimedDraftCreateResponseExample' + 4XX: + description: failed_operation + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + 400_example: + $ref: '#/components/examples/Error400ResponseExample' + 401_example: + $ref: '#/components/examples/Error401ResponseExample' + 402_example: + $ref: '#/components/examples/Error402ResponseExample' + 403_example: + $ref: '#/components/examples/Error403ResponseExample' + 4XX_example: + $ref: '#/components/examples/Error4XXResponseExample' + security: + - + api_key: [] + - + oauth2: + - signature_request_access + x-codeSamples: + - + lang: PHP + label: PHP + source: + $ref: examples/UnclaimedDraftCreate.php + - + lang: 'C#' + label: 'C#' + source: + $ref: examples/UnclaimedDraftCreate.cs + - + lang: JavaScript + label: JavaScript + source: + $ref: examples/UnclaimedDraftCreate.js + - + lang: TypeScript + label: TypeScript + source: + $ref: examples/UnclaimedDraftCreate.ts + - + lang: Java + label: Java + source: + $ref: examples/UnclaimedDraftCreate.java + - + lang: Ruby + label: Ruby + source: + $ref: examples/UnclaimedDraftCreate.rb + - + lang: Python + label: Python + source: + $ref: examples/UnclaimedDraftCreate.py + - + lang: cURL + label: cURL + source: + $ref: examples/UnclaimedDraftCreate.sh + x-meta: + seo: + title: 'Create Unclaimed Draft | REST API | Dropbox Sign for Developers' + description: 'The Dropbox Sign API allows you to build eSign integrations. To find out how to create a new Signature Request Draft that can be claimed using the claim URL, click here.' + /unclaimed_draft/create_embedded: + post: + tags: + - 'Unclaimed Draft' + summary: 'Create Embedded Unclaimed Draft' + description: |- + Creates a new Draft that can be claimed and used in an embedded iFrame. The first authenticated user to access the URL will claim the Draft and will be shown the "Request signature" page with the Draft loaded. Subsequent access to the claim URL will result in a `404`. For this embedded endpoint the `requester_email_address` parameter is required. + + **NOTE**: Embedded unclaimed drafts can only be accessed in embedded iFrames whereas normal drafts can be used and accessed on Dropbox Sign. + operationId: unclaimedDraftCreateEmbedded + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UnclaimedDraftCreateEmbeddedRequest' + examples: + default_example: + $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedRequestDefaultExample' + form_fields_per_document: + $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedRequestFormFieldsPerDocumentExample' + form_field_groups: + $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedRequestFormFieldGroupsExample' + form_field_rules: + $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedRequestFormFieldRulesExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/UnclaimedDraftCreateEmbeddedRequest' + responses: + 200: + description: 'successful operation' + headers: + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-Ratelimit-Reset: + $ref: '#/components/headers/X-Ratelimit-Reset' + content: + application/json: + schema: + $ref: '#/components/schemas/UnclaimedDraftCreateResponse' + examples: + default_example: + $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedResponseExample' + 4XX: + description: failed_operation + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + 400_example: + $ref: '#/components/examples/Error400ResponseExample' + 401_example: + $ref: '#/components/examples/Error401ResponseExample' + 402_example: + $ref: '#/components/examples/Error402ResponseExample' + 403_example: + $ref: '#/components/examples/Error403ResponseExample' + 404_example: + $ref: '#/components/examples/Error404ResponseExample' + 409_example: + $ref: '#/components/examples/Error409ResponseExample' + 4XX_example: + $ref: '#/components/examples/Error4XXResponseExample' + security: + - + api_key: [] + - + oauth2: + - request_signature + - signature_request_access + x-codeSamples: + - + lang: PHP + label: PHP + source: + $ref: examples/UnclaimedDraftCreateEmbedded.php + - + lang: 'C#' + label: 'C#' + source: + $ref: examples/UnclaimedDraftCreateEmbedded.cs + - + lang: JavaScript + label: JavaScript + source: + $ref: examples/UnclaimedDraftCreateEmbedded.js + - + lang: TypeScript + label: TypeScript + source: + $ref: examples/UnclaimedDraftCreateEmbedded.ts + - + lang: Java + label: Java + source: + $ref: examples/UnclaimedDraftCreateEmbedded.java + - + lang: Ruby + label: Ruby + source: + $ref: examples/UnclaimedDraftCreateEmbedded.rb + - + lang: Python + label: Python + source: + $ref: examples/UnclaimedDraftCreateEmbedded.py + - + lang: cURL + label: cURL + source: + $ref: examples/UnclaimedDraftCreateEmbedded.sh + x-meta: + seo: + title: 'Create Embedded Unclaimed Draft | Dropbox Sign for Developers' + description: 'The Dropbox Sign API allows you to build custom integrations. To find out how to create and embed a the creation of a Signature Request in an iFrame, click here.' + /unclaimed_draft/create_embedded_with_template: + post: + tags: + - 'Unclaimed Draft' + summary: 'Create Embedded Unclaimed Draft with Template' + description: |- + Creates a new Draft with a previously saved template(s) that can be claimed and used in an embedded iFrame. The first authenticated user to access the URL will claim the Draft and will be shown the "Request signature" page with the Draft loaded. Subsequent access to the claim URL will result in a `404`. For this embedded endpoint the `requester_email_address` parameter is required. + + **NOTE**: Embedded unclaimed drafts can only be accessed in embedded iFrames whereas normal drafts can be used and accessed on Dropbox Sign. + operationId: unclaimedDraftCreateEmbeddedWithTemplate + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UnclaimedDraftCreateEmbeddedWithTemplateRequest' + examples: + default_example: + $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedWithTemplateRequestDefaultExample' + multipart/form-data: + schema: + $ref: '#/components/schemas/UnclaimedDraftCreateEmbeddedWithTemplateRequest' + responses: + 200: + description: 'successful operation' + headers: + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-Ratelimit-Reset: + $ref: '#/components/headers/X-Ratelimit-Reset' + content: + application/json: + schema: + $ref: '#/components/schemas/UnclaimedDraftCreateResponse' + examples: + default_example: + $ref: '#/components/examples/UnclaimedDraftCreateEmbeddedWithTemplateResponseExample' + 4XX: + description: failed_operation + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + 400_example: + $ref: '#/components/examples/Error400ResponseExample' + 401_example: + $ref: '#/components/examples/Error401ResponseExample' + 402_example: + $ref: '#/components/examples/Error402ResponseExample' + 403_example: + $ref: '#/components/examples/Error403ResponseExample' + 404_example: + $ref: '#/components/examples/Error404ResponseExample' + 409_example: + $ref: '#/components/examples/Error409ResponseExample' + 429_example: + $ref: '#/components/examples/Error429ResponseExample' + 4XX_example: + $ref: '#/components/examples/Error4XXResponseExample' + security: + - + api_key: [] + - + oauth2: + - signature_request_access + x-codeSamples: + - + lang: PHP + label: PHP + source: + $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.php + - + lang: 'C#' + label: 'C#' + source: + $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.cs + - + lang: JavaScript + label: JavaScript + source: + $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.js + - + lang: TypeScript + label: TypeScript + source: + $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.ts + - + lang: Java + label: Java + source: + $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.java + - + lang: Ruby + label: Ruby + source: + $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.rb + - + lang: Python + label: Python + source: + $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.py + - + lang: cURL + label: cURL + source: + $ref: examples/UnclaimedDraftCreateEmbeddedWithTemplate.sh + x-meta: + seo: + title: 'Embed Unclaimed Draft with Template | Dropbox Sign for Developers' + description: 'The Dropbox Sign API easily allows you to build custom integrations. To find out how to create a new Draft with a previously saved template, click here.' + '/unclaimed_draft/edit_and_resend/{signature_request_id}': + post: + tags: + - 'Unclaimed Draft' + summary: 'Edit and Resend Unclaimed Draft' + description: |- + Creates a new signature request from an embedded request that can be edited prior to being sent to the recipients. Parameter `test_mode` can be edited prior to request. Signers can be edited in embedded editor. Requester's email address will remain unchanged if `requester_email_address` parameter is not set. + + **NOTE**: Embedded unclaimed drafts can only be accessed in embedded iFrames whereas normal drafts can be used and accessed on Dropbox Sign. + operationId: unclaimedDraftEditAndResend + parameters: + - + name: signature_request_id + in: path + description: 'The ID of the signature request to edit and resend.' + required: true + schema: + type: string + example: fa5c8a0b0f492d768749333ad6fcc214c111e967 + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UnclaimedDraftEditAndResendRequest' + examples: + default_example: + $ref: '#/components/examples/UnclaimedDraftEditAndResendRequestDefaultExample' + responses: + 200: + description: 'successful operation' + headers: + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-Ratelimit-Reset: + $ref: '#/components/headers/X-Ratelimit-Reset' + content: + application/json: + schema: + $ref: '#/components/schemas/UnclaimedDraftCreateResponse' + examples: + default_example: + $ref: '#/components/examples/UnclaimedDraftEditAndResendExample' + 4XX: + description: failed_operation + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + 400_example: + $ref: '#/components/examples/Error400ResponseExample' + 401_example: + $ref: '#/components/examples/Error401ResponseExample' + 402_example: + $ref: '#/components/examples/Error402ResponseExample' + 403_example: + $ref: '#/components/examples/Error403ResponseExample' + 404_example: + $ref: '#/components/examples/Error404ResponseExample' + 409_example: + $ref: '#/components/examples/Error409ResponseExample' + 410_example: + $ref: '#/components/examples/Error410ResponseExample' + 4XX_example: + $ref: '#/components/examples/Error4XXResponseExample' + security: + - + api_key: [] + - + oauth2: + - request_signature + - signature_request_access + x-codeSamples: + - + lang: PHP + label: PHP + source: + $ref: examples/UnclaimedDraftEditAndResend.php + - + lang: 'C#' + label: 'C#' + source: + $ref: examples/UnclaimedDraftEditAndResend.cs + - + lang: JavaScript + label: JavaScript + source: + $ref: examples/UnclaimedDraftEditAndResend.js + - + lang: TypeScript + label: TypeScript + source: + $ref: examples/UnclaimedDraftEditAndResend.ts + - + lang: Java + label: Java + source: + $ref: examples/UnclaimedDraftEditAndResend.java + - + lang: Ruby + label: Ruby + source: + $ref: examples/UnclaimedDraftEditAndResend.rb + - + lang: Python + label: Python + source: + $ref: examples/UnclaimedDraftEditAndResend.py + - + lang: cURL + label: cURL + source: + $ref: examples/UnclaimedDraftEditAndResend.sh + x-meta: + seo: + title: 'Edit and Resend Unclaimed Draft | Dropbox Sign for Developers' + description: 'The Dropbox Sign API easily allows you to build custom integrations. To find out how to create a new signature request from an embedded request, click here.' +components: + schemas: + AccountCreateRequest: + required: + - email_address + properties: + client_id: + description: |- + Used when creating a new account with OAuth authorization. + + See [OAuth 2.0 Authorization](https://app.hellosign.com/api/oauthWalkthrough#OAuthAuthorization) + type: string + client_secret: + description: |- + Used when creating a new account with OAuth authorization. + + See [OAuth 2.0 Authorization](https://app.hellosign.com/api/oauthWalkthrough#OAuthAuthorization) + type: string + email_address: + description: 'The email address which will be associated with the new Account.' + type: string + format: email + locale: + description: 'The locale used in this Account. Check out the list of [supported locales](/api/reference/constants/#supported-locales) to learn more about the possible values.' + type: string + type: object + AccountUpdateRequest: + properties: + account_id: + description: 'The ID of the Account' + type: string + nullable: true + callback_url: + description: 'The URL that Dropbox Sign should POST events to.' + type: string + locale: + description: 'The locale used in this Account. Check out the list of [supported locales](/api/reference/constants/#supported-locales) to learn more about the possible values.' + type: string + type: object + AccountVerifyRequest: + required: + - email_address + properties: + email_address: + description: 'Email address to run the verification for.' + type: string + format: email + type: object + ApiAppCreateRequest: + required: + - name + - domains + properties: + callback_url: + description: 'The URL at which the ApiApp should receive event callbacks.' + type: string + custom_logo_file: + description: 'An image file to use as a custom logo in embedded contexts. (Only applies to some API plans)' + type: string + format: binary + domains: + description: 'The domain names the ApiApp will be associated with.' + type: array + items: + type: string + maxItems: 2 + minItems: 1 + name: + description: 'The name you want to assign to the ApiApp.' + type: string + oauth: + $ref: '#/components/schemas/SubOAuth' + options: + $ref: '#/components/schemas/SubOptions' + white_labeling_options: + $ref: '#/components/schemas/SubWhiteLabelingOptions' + type: object + ApiAppUpdateRequest: + properties: + callback_url: + description: 'The URL at which the API App should receive event callbacks.' + type: string + custom_logo_file: + description: 'An image file to use as a custom logo in embedded contexts. (Only applies to some API plans)' + type: string + format: binary + domains: + description: 'The domain names the ApiApp will be associated with.' + type: array + items: + type: string + maxItems: 2 + name: + description: 'The name you want to assign to the ApiApp.' + type: string + oauth: + $ref: '#/components/schemas/SubOAuth' + options: + $ref: '#/components/schemas/SubOptions' + white_labeling_options: + $ref: '#/components/schemas/SubWhiteLabelingOptions' + type: object + EmbeddedEditUrlRequest: + properties: allow_edit_ccs: description: 'This allows the requester to enable/disable to add or change CC roles when editing the template.' type: boolean @@ -6470,9 +6966,98 @@ components: description: 'The (inclusive) start date for the report data in `MM/DD/YYYY` format.' type: string type: object - SignatureRequestBulkCreateEmbeddedWithTemplateRequest: + SignatureRequestBulkCreateEmbeddedWithTemplateRequest: + required: + - client_id + - template_ids + properties: + template_ids: + description: 'Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used.' + type: array + items: + type: string + signer_file: + description: |- + `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns: + + - `name`: the name of the signer filling the role of RoleName + - `email_address`: email address of the signer filling the role of RoleName + - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) + - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) + + By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). + + **Note**: Not available in test mode and requires a Standard plan or higher. + - `*_field`: any column with a _field" suffix will be treated as a custom field (optional) + + You may only specify field values here, any other options should be set in the custom_fields request parameter. + + Example CSV: + + ``` + name, email_address, pin, company_field + George, george@example.com, d79a3td, ABC Corp + Mary, mary@example.com, gd9as5b, 123 LLC + ``` + type: string + format: binary + signer_list: + description: '`signer_list` is an array defining values and options for signer fields. Required unless a `signer_file` is used, you may not use both.' + type: array + items: + $ref: '#/components/schemas/SubBulkSignerList' + allow_decline: + description: 'Allows signers to decline to sign a document if `true`. Defaults to `false`.' + type: boolean + default: false + ccs: + description: 'Add CC email recipients. Required when a CC role exists for the Template.' + type: array + items: + $ref: '#/components/schemas/SubCC' + client_id: + description: 'Client id of the app you''re using to create this embedded signature request. Used for security purposes.' + type: string + custom_fields: + description: |- + When used together with merge fields, `custom_fields` allows users to add pre-filled data to their signature requests. + + Pre-filled data can be used with "send-once" signature requests by adding merge fields with `form_fields_per_document` or [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) while passing values back with `custom_fields` together in one API call. + + For using pre-filled on repeatable signature requests, merge fields are added to templates in the Dropbox Sign UI or by calling [/template/create_embedded_draft](/api/reference/operation/templateCreateEmbeddedDraft) and then passing `custom_fields` on subsequent signature requests referencing that template. + type: array + items: + $ref: '#/components/schemas/SubCustomField' + message: + description: 'The custom message in the email that will be sent to the signers.' + type: string + maxLength: 5000 + metadata: + description: |- + Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. + + Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long. + type: object + maxItems: 10 + additionalProperties: {} + signing_redirect_url: + description: 'The URL you want signers redirected to after they successfully sign.' + type: string + subject: + description: 'The subject in the email that will be sent to the signers.' + type: string + maxLength: 255 + test_mode: + description: 'Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.' + type: boolean + default: false + title: + description: 'The title you want to assign to the SignatureRequest.' + type: string + maxLength: 255 + type: object + SignatureRequestBulkSendWithTemplateRequest: required: - - client_id - template_ids properties: template_ids: @@ -6489,6 +7074,8 @@ components: - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) + By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). + **Note**: Not available in test mode and requires a Standard plan or higher. - `*_field`: any column with a _field" suffix will be treated as a custom field (optional) @@ -6518,7 +7105,7 @@ components: items: $ref: '#/components/schemas/SubCC' client_id: - description: 'Client id of the app you''re using to create this embedded signature request. Used for security purposes.' + description: 'The client id of the API App you want to associate with this request. Used to apply the branding and callback url defined for the app.' type: string custom_fields: description: |- @@ -6558,52 +7145,299 @@ components: type: string maxLength: 255 type: object - SignatureRequestBulkSendWithTemplateRequest: + SignatureRequestCreateEmbeddedRequest: + required: + - client_id + properties: + files: + description: |- + Use `files[]` to indicate the uploaded file(s) to send for signature. + + This endpoint requires either **files** or **file_urls[]**, but not both. + type: array + items: + type: string + format: binary + file_urls: + description: |- + Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. + + This endpoint requires either **files** or **file_urls[]**, but not both. + type: array + items: + type: string + signers: + description: |- + Add Signers to your Signature Request. + + This endpoint requires either **signers** or **grouped_signers**, but not both. + type: array + items: + $ref: '#/components/schemas/SubSignatureRequestSigner' + grouped_signers: + description: |- + Add Grouped Signers to your Signature Request. + + This endpoint requires either **signers** or **grouped_signers**, but not both. + type: array + items: + $ref: '#/components/schemas/SubSignatureRequestGroupedSigners' + allow_decline: + description: 'Allows signers to decline to sign a document if `true`. Defaults to `false`.' + type: boolean + default: false + allow_reassign: + description: |- + Allows signers to reassign their signature requests to other signers if set to `true`. Defaults to `false`. + + **Note**: Only available for Premium plan. + type: boolean + default: false + attachments: + description: 'A list describing the attachments' + type: array + items: + $ref: '#/components/schemas/SubAttachment' + cc_email_addresses: + description: 'The email addresses that should be CCed.' + type: array + items: + type: string + format: email + client_id: + description: 'Client id of the app you''re using to create this embedded signature request. Used for security purposes.' + type: string + custom_fields: + description: |- + When used together with merge fields, `custom_fields` allows users to add pre-filled data to their signature requests. + + Pre-filled data can be used with "send-once" signature requests by adding merge fields with `form_fields_per_document` or [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) while passing values back with `custom_fields` together in one API call. + + For using pre-filled on repeatable signature requests, merge fields are added to templates in the Dropbox Sign UI or by calling [/template/create_embedded_draft](/api/reference/operation/templateCreateEmbeddedDraft) and then passing `custom_fields` on subsequent signature requests referencing that template. + type: array + items: + $ref: '#/components/schemas/SubCustomField' + field_options: + $ref: '#/components/schemas/SubFieldOptions' + form_field_groups: + description: 'Group information for fields defined in `form_fields_per_document`. String-indexed JSON array with `group_label` and `requirement` keys. `form_fields_per_document` must contain fields referencing a group defined in `form_field_groups`.' + type: array + items: + $ref: '#/components/schemas/SubFormFieldGroup' + form_field_rules: + description: 'Conditional Logic rules for fields defined in `form_fields_per_document`.' + type: array + items: + $ref: '#/components/schemas/SubFormFieldRule' + form_fields_per_document: + description: |- + The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).) + + **NOTE**: Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types. + + * Text Field use `SubFormFieldsPerDocumentText` + * Dropdown Field use `SubFormFieldsPerDocumentDropdown` + * Hyperlink Field use `SubFormFieldsPerDocumentHyperlink` + * Checkbox Field use `SubFormFieldsPerDocumentCheckbox` + * Radio Field use `SubFormFieldsPerDocumentRadio` + * Signature Field use `SubFormFieldsPerDocumentSignature` + * Date Signed Field use `SubFormFieldsPerDocumentDateSigned` + * Initials Field use `SubFormFieldsPerDocumentInitials` + * Text Merge Field use `SubFormFieldsPerDocumentTextMerge` + * Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge` + type: array + items: + $ref: '#/components/schemas/SubFormFieldsPerDocumentBase' + hide_text_tags: + description: |- + Enables automatic Text Tag removal when set to true. + + **NOTE**: Removing text tags this way can cause unwanted clipping. We recommend leaving this setting on `false` and instead hiding your text tags using white text or a similar approach. See the [Text Tags Walkthrough](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) for more information. + type: boolean + default: false + message: + description: 'The custom message in the email that will be sent to the signers.' + type: string + maxLength: 5000 + metadata: + description: |- + Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. + + Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long. + type: object + maxItems: 10 + additionalProperties: {} + signing_options: + $ref: '#/components/schemas/SubSigningOptions' + subject: + description: 'The subject in the email that will be sent to the signers.' + type: string + maxLength: 255 + test_mode: + description: 'Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.' + type: boolean + default: false + title: + description: 'The title you want to assign to the SignatureRequest.' + type: string + maxLength: 255 + use_text_tags: + description: 'Send with a value of `true` if you wish to enable [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) parsing in your document. Defaults to disabled, or `false`.' + type: boolean + default: false + populate_auto_fill_fields: + description: |- + Controls whether [auto fill fields](https://faq.hellosign.com/hc/en-us/articles/360051467511-Auto-Fill-Fields) can automatically populate a signer's information during signing. + + ⚠️ **Note** ⚠️: Keep your signer's information safe by ensuring that the _signer on your signature request is the intended party_ before using this feature. + type: boolean + default: false + expires_at: + description: 'When the signature request will expire. Unsigned signatures will be moved to the expired status, and no longer signable. See [Signature Request Expiration Date](https://developers.hellosign.com/docs/signature-request/expiration/) for details.' + type: integer + nullable: true + type: object + SignatureRequestCreateEmbeddedWithTemplateRequest: required: + - client_id - template_ids + - signers properties: template_ids: description: 'Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used.' type: array items: type: string - signer_file: + allow_decline: + description: 'Allows signers to decline to sign a document if `true`. Defaults to `false`.' + type: boolean + default: false + ccs: + description: 'Add CC email recipients. Required when a CC role exists for the Template.' + type: array + items: + $ref: '#/components/schemas/SubCC' + client_id: + description: 'Client id of the app you''re using to create this embedded signature request. Used for security purposes.' + type: string + custom_fields: + description: 'An array defining values and options for custom fields. Required when a custom field exists in the Template.' + type: array + items: + $ref: '#/components/schemas/SubCustomField' + files: + description: |- + Use `files[]` to indicate the uploaded file(s) to send for signature. + + This endpoint requires either **files** or **file_urls[]**, but not both. + type: array + items: + type: string + format: binary + file_urls: + description: |- + Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. + + This endpoint requires either **files** or **file_urls[]**, but not both. + type: array + items: + type: string + message: + description: 'The custom message in the email that will be sent to the signers.' + type: string + maxLength: 5000 + metadata: + description: |- + Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. + + Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long. + type: object + maxItems: 10 + additionalProperties: {} + signers: + description: 'Add Signers to your Templated-based Signature Request.' + type: array + items: + $ref: '#/components/schemas/SubSignatureRequestTemplateSigner' + signing_options: + $ref: '#/components/schemas/SubSigningOptions' + subject: + description: 'The subject in the email that will be sent to the signers.' + type: string + maxLength: 255 + test_mode: + description: 'Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.' + type: boolean + default: false + title: + description: 'The title you want to assign to the SignatureRequest.' + type: string + maxLength: 255 + populate_auto_fill_fields: + description: |- + Controls whether [auto fill fields](https://faq.hellosign.com/hc/en-us/articles/360051467511-Auto-Fill-Fields) can automatically populate a signer's information during signing. + + ⚠️ **Note** ⚠️: Keep your signer's information safe by ensuring that the _signer on your signature request is the intended party_ before using this feature. + type: boolean + default: false + type: object + SignatureRequestEditRequest: + properties: + files: + description: |- + Use `files[]` to indicate the uploaded file(s) to send for signature. + + This endpoint requires either **files** or **file_urls[]**, but not both. + type: array + items: + type: string + format: binary + file_urls: description: |- - `signer_file` is a CSV file defining values and options for signer fields. Required unless a `signer_list` is used, you may not use both. The CSV can have the following columns: - - - `name`: the name of the signer filling the role of RoleName - - `email_address`: email address of the signer filling the role of RoleName - - `pin`: the 4- to 12-character access code that will secure this signer's signature page (optional) - - `sms_phone_number`: An E.164 formatted phone number that will receive a code via SMS to access this signer's signature page. (optional) - - **Note**: Not available in test mode and requires a Standard plan or higher. - - `*_field`: any column with a _field" suffix will be treated as a custom field (optional) + Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. - You may only specify field values here, any other options should be set in the custom_fields request parameter. + This endpoint requires either **files** or **file_urls[]**, but not both. + type: array + items: + type: string + signers: + description: |- + Add Signers to your Signature Request. - Example CSV: + This endpoint requires either **signers** or **grouped_signers**, but not both. + type: array + items: + $ref: '#/components/schemas/SubSignatureRequestSigner' + grouped_signers: + description: |- + Add Grouped Signers to your Signature Request. - ``` - name, email_address, pin, company_field - George, george@example.com, d79a3td, ABC Corp - Mary, mary@example.com, gd9as5b, 123 LLC - ``` - type: string - format: binary - signer_list: - description: '`signer_list` is an array defining values and options for signer fields. Required unless a `signer_file` is used, you may not use both.' + This endpoint requires either **signers** or **grouped_signers**, but not both. type: array items: - $ref: '#/components/schemas/SubBulkSignerList' + $ref: '#/components/schemas/SubSignatureRequestGroupedSigners' allow_decline: description: 'Allows signers to decline to sign a document if `true`. Defaults to `false`.' type: boolean default: false - ccs: - description: 'Add CC email recipients. Required when a CC role exists for the Template.' + allow_reassign: + description: |- + Allows signers to reassign their signature requests to other signers if set to `true`. Defaults to `false`. + + **Note**: Only available for Premium plan and higher. + type: boolean + default: false + attachments: + description: 'A list describing the attachments' type: array items: - $ref: '#/components/schemas/SubCC' + $ref: '#/components/schemas/SubAttachment' + cc_email_addresses: + description: 'The email addresses that should be CCed.' + type: array + items: + type: string + format: email client_id: description: 'The client id of the API App you want to associate with this request. Used to apply the branding and callback url defined for the app.' type: string @@ -6617,6 +7451,63 @@ components: type: array items: $ref: '#/components/schemas/SubCustomField' + field_options: + $ref: '#/components/schemas/SubFieldOptions' + form_field_groups: + description: 'Group information for fields defined in `form_fields_per_document`. String-indexed JSON array with `group_label` and `requirement` keys. `form_fields_per_document` must contain fields referencing a group defined in `form_field_groups`.' + type: array + items: + $ref: '#/components/schemas/SubFormFieldGroup' + form_field_rules: + description: 'Conditional Logic rules for fields defined in `form_fields_per_document`.' + type: array + items: + $ref: '#/components/schemas/SubFormFieldRule' + form_fields_per_document: + description: |- + The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).) + + **NOTE**: Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types. + + * Text Field use `SubFormFieldsPerDocumentText` + * Dropdown Field use `SubFormFieldsPerDocumentDropdown` + * Hyperlink Field use `SubFormFieldsPerDocumentHyperlink` + * Checkbox Field use `SubFormFieldsPerDocumentCheckbox` + * Radio Field use `SubFormFieldsPerDocumentRadio` + * Signature Field use `SubFormFieldsPerDocumentSignature` + * Date Signed Field use `SubFormFieldsPerDocumentDateSigned` + * Initials Field use `SubFormFieldsPerDocumentInitials` + * Text Merge Field use `SubFormFieldsPerDocumentTextMerge` + * Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge` + type: array + items: + $ref: '#/components/schemas/SubFormFieldsPerDocumentBase' + hide_text_tags: + description: |- + Enables automatic Text Tag removal when set to true. + + **NOTE**: Removing text tags this way can cause unwanted clipping. We recommend leaving this setting on `false` and instead hiding your text tags using white text or a similar approach. See the [Text Tags Walkthrough](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) for more information. + type: boolean + default: false + is_qualified_signature: + description: |- + Send with a value of `true` if you wish to enable + [Qualified Electronic Signatures](https://www.hellosign.com/features/qualified-electronic-signatures) (QES), + which requires a face-to-face call to verify the signer's identity.
+ **Note**: QES is only available on the Premium API plan as an add-on purchase. + Cannot be used in `test_mode`. Only works on requests with one signer. + type: boolean + default: false + deprecated: true + x-hideOn: doc + is_eid: + description: |- + Send with a value of `true` if you wish to enable + [electronic identification (eID)](https://www.hellosign.com/features/electronic-id), + which requires the signer to verify their identity with an eID provider to sign a document.
+ **Note**: eID is only available on the Premium API plan. Cannot be used in `test_mode`. Only works on requests with one signer. + type: boolean + default: false message: description: 'The custom message in the email that will be sent to the signers.' type: string @@ -6629,6 +7520,8 @@ components: type: object maxItems: 10 additionalProperties: {} + signing_options: + $ref: '#/components/schemas/SubSigningOptions' signing_redirect_url: description: 'The URL you want signers redirected to after they successfully sign.' type: string @@ -6644,8 +7537,16 @@ components: description: 'The title you want to assign to the SignatureRequest.' type: string maxLength: 255 + use_text_tags: + description: 'Send with a value of `true` if you wish to enable [Text Tags](https://app.hellosign.com/api/textTagsWalkthrough#TextTagIntro) parsing in your document. Defaults to disabled, or `false`.' + type: boolean + default: false + expires_at: + description: 'When the signature request will expire. Unsigned signatures will be moved to the expired status, and no longer signable. See [Signature Request Expiration Date](https://developers.hellosign.com/docs/signature-request/expiration/) for details.' + type: integer + nullable: true type: object - SignatureRequestCreateEmbeddedRequest: + SignatureRequestEditEmbeddedRequest: required: - client_id properties: @@ -6797,7 +7698,7 @@ components: type: integer nullable: true type: object - SignatureRequestCreateEmbeddedWithTemplateRequest: + SignatureRequestEditEmbeddedWithTemplateRequest: required: - client_id - template_ids @@ -6881,6 +7782,105 @@ components: type: boolean default: false type: object + SignatureRequestEditWithTemplateRequest: + description: '' + required: + - signers + - template_ids + properties: + template_ids: + description: 'Use `template_ids` to create a SignatureRequest from one or more templates, in the order in which the template will be used.' + type: array + items: + type: string + allow_decline: + description: 'Allows signers to decline to sign a document if `true`. Defaults to `false`.' + type: boolean + default: false + ccs: + description: 'Add CC email recipients. Required when a CC role exists for the Template.' + type: array + items: + $ref: '#/components/schemas/SubCC' + client_id: + description: 'Client id of the app to associate with the signature request. Used to apply the branding and callback url defined for the app.' + type: string + custom_fields: + description: 'An array defining values and options for custom fields. Required when a custom field exists in the Template.' + type: array + items: + $ref: '#/components/schemas/SubCustomField' + files: + description: |- + Use `files[]` to indicate the uploaded file(s) to send for signature. + + This endpoint requires either **files** or **file_urls[]**, but not both. + type: array + items: + type: string + format: binary + file_urls: + description: |- + Use `file_urls[]` to have Dropbox Sign download the file(s) to send for signature. + + This endpoint requires either **files** or **file_urls[]**, but not both. + type: array + items: + type: string + is_qualified_signature: + description: |- + Send with a value of `true` if you wish to enable + [Qualified Electronic Signatures](https://www.hellosign.com/features/qualified-electronic-signatures) (QES), + which requires a face-to-face call to verify the signer's identity.
+ **Note**: QES is only available on the Premium API plan as an add-on purchase. + Cannot be used in `test_mode`. Only works on requests with one signer. + type: boolean + default: false + deprecated: true + x-hideOn: doc + is_eid: + description: |- + Send with a value of `true` if you wish to enable + [electronic identification (eID)](https://www.hellosign.com/features/electronic-id), + which requires the signer to verify their identity with an eID provider to sign a document.
+ **Note**: eID is only available on the Premium API plan. Cannot be used in `test_mode`. Only works on requests with one signer. + type: boolean + default: false + message: + description: 'The custom message in the email that will be sent to the signers.' + type: string + maxLength: 5000 + metadata: + description: |- + Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request. + + Each request can include up to 10 metadata keys (or 50 nested metadata keys), with key names up to 40 characters long and values up to 1000 characters long. + type: object + maxItems: 10 + additionalProperties: {} + signers: + description: 'Add Signers to your Templated-based Signature Request.' + type: array + items: + $ref: '#/components/schemas/SubSignatureRequestTemplateSigner' + signing_options: + $ref: '#/components/schemas/SubSigningOptions' + signing_redirect_url: + description: 'The URL you want signers redirected to after they successfully sign.' + type: string + subject: + description: 'The subject in the email that will be sent to the signers.' + type: string + maxLength: 255 + test_mode: + description: 'Whether this is a test, the signature request will not be legally binding if set to `true`. Defaults to `false`.' + type: boolean + default: false + title: + description: 'The title you want to assign to the SignatureRequest.' + type: string + maxLength: 255 + type: object SignatureRequestRemindRequest: required: - email_address @@ -7531,6 +8531,7 @@ components: **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. type: integer + default: 12 type: object - $ref: '#/components/schemas/SubFormFieldsPerDocumentBase' @@ -7583,6 +8584,7 @@ components: **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. type: integer + default: 12 type: object - $ref: '#/components/schemas/SubFormFieldsPerDocumentBase' @@ -7633,6 +8635,7 @@ components: **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. type: integer + default: 12 type: object - $ref: '#/components/schemas/SubFormFieldsPerDocumentBase' @@ -7768,6 +8771,7 @@ components: **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. type: integer + default: 12 type: object - $ref: '#/components/schemas/SubFormFieldsPerDocumentBase' @@ -7810,6 +8814,7 @@ components: **NOTE**: Font size may be reduced during processing in order to fit the contents within the dimensions of the field. type: integer + default: 12 type: object - $ref: '#/components/schemas/SubFormFieldsPerDocumentBase' @@ -8024,6 +9029,8 @@ components: description: |- An E.164 formatted phone number. + By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). + **Note**: Not available in test mode and requires a Standard plan or higher. type: string sms_phone_number_type: @@ -8063,6 +9070,8 @@ components: description: |- An E.164 formatted phone number. + By using the feature, you agree you are responsible for obtaining a signer's consent to receive text messages from Dropbox Sign related to this signature request and confirm you have obtained such consent from all signers prior to enabling SMS delivery for this signature request. [Learn more](https://faq.hellosign.com/hc/en-us/articles/15815316468877-Dropbox-Sign-SMS-tools-add-on). + **Note**: Not available in test mode and requires a Standard plan or higher. type: string sms_phone_number_type: @@ -9680,6 +10689,10 @@ components: description: 'The URL you want the signer redirected to after they successfully sign.' type: string nullable: true + final_copy_uri: + description: 'The path where the completed document can be downloaded' + type: string + nullable: true template_ids: description: 'Templates IDs used in this SignatureRequest (if any).' type: array @@ -9713,6 +10726,10 @@ components: type: array items: $ref: '#/components/schemas/SignatureRequestResponseSignatures' + bulk_send_job_id: + description: 'The ID of the Bulk Send job which sent the signature request, if applicable.' + type: string + nullable: true type: object x-internal: true SignatureRequestResponseAttachment: @@ -11208,7 +12225,6 @@ components: - event_time - event_type - event_hash - - event_metadata properties: event_time: description: 'Time the event was created (using Unix time).' @@ -11239,6 +12255,7 @@ components: - template_created - template_error - callback_test + - signature_request_signer_removed event_hash: description: 'Generated hash used to verify source of event data.' type: string @@ -11334,6 +12351,30 @@ components: summary: 'Default Example' value: $ref: examples/json/SignatureRequestCreateEmbeddedWithTemplateRequestDefaultExample.json + SignatureRequestEditRequestDefaultExample: + summary: 'Default Example' + value: + $ref: examples/json/SignatureRequestEditRequestDefaultExample.json + SignatureRequestEditRequestGroupedSignersExample: + summary: 'Grouped Signers Example' + value: + $ref: examples/json/SignatureRequestEditRequestGroupedSignersExample.json + SignatureRequestEditEmbeddedRequestDefaultExample: + summary: 'Default Example' + value: + $ref: examples/json/SignatureRequestEditEmbeddedRequestDefaultExample.json + SignatureRequestEditEmbeddedRequestGroupedSignersExample: + summary: 'Grouped Signers Example' + value: + $ref: examples/json/SignatureRequestEditEmbeddedRequestGroupedSignersExample.json + SignatureRequestEditEmbeddedWithTemplateRequestDefaultExample: + summary: 'Default Example' + value: + $ref: examples/json/SignatureRequestEditEmbeddedWithTemplateRequestDefaultExample.json + SignatureRequestEditWithTemplateRequestDefaultExample: + summary: 'Default Example' + value: + $ref: examples/json/SignatureRequestEditWithTemplateRequestDefaultExample.json SignatureRequestRemindRequestDefaultExample: summary: 'Default Example' value: @@ -11582,10 +12623,18 @@ components: summary: 'Create Embedded Signature Request' value: $ref: examples/json/SignatureRequestCreateEmbeddedResponseExample.json + SignatureRequestEditEmbeddedResponseExample: + summary: 'Edit Embedded Signature Request' + value: + $ref: examples/json/SignatureRequestEditEmbeddedResponseExample.json SignatureRequestCreateEmbeddedWithTemplateResponseExample: summary: 'Create Embedded Signature Request With Template' value: $ref: examples/json/SignatureRequestCreateEmbeddedWithTemplateResponseExample.json + SignatureRequestEditEmbeddedWithTemplateResponseExample: + summary: 'Edit Embedded Signature Request With Template' + value: + $ref: examples/json/SignatureRequestEditEmbeddedWithTemplateResponseExample.json SignatureRequestFilesResponseExample: summary: 'Signature Requests Files' value: @@ -11602,10 +12651,18 @@ components: summary: 'Send Signature Request' value: $ref: examples/json/SignatureRequestSendResponseExample.json + SignatureRequestEditResponseExample: + summary: 'Edit Signature Request' + value: + $ref: examples/json/SignatureRequestEditResponseExample.json SignatureRequestSendWithTemplateResponseExample: summary: 'Send Signature Request With Template' value: $ref: examples/json/SignatureRequestSendWithTemplateResponseExample.json + SignatureRequestEditWithTemplateResponseExample: + summary: 'Edit Signature Request With Template' + value: + $ref: examples/json/SignatureRequestEditWithTemplateResponseExample.json SignatureRequestUpdateResponseExample: summary: 'Signature Request Update' value: diff --git a/setup.py b/setup.py index 4db2b52..32ffa00 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ from pathlib import Path NAME = "dropbox-sign" -VERSION = "1.3.0" +VERSION = "1.4.0" # To install the library, run the following # # python setup.py install diff --git a/templates/event_callback_helper.mustache b/templates/event_callback_helper.mustache index b996774..e8a87d7 100644 --- a/templates/event_callback_helper.mustache +++ b/templates/event_callback_helper.mustache @@ -34,7 +34,7 @@ class EventCallbackHelper: """ metadata: EventCallbackRequestEventMetadata = event_callback.event.event_metadata - if not metadata.reported_for_app_id: + if not metadata or not metadata.reported_for_app_id: return cls.EVENT_TYPE_ACCOUNT_CALLBACK return cls.EVENT_TYPE_APP_CALLBACK diff --git a/test_fixtures/EventCallbackHelper_AccountCallbacks.json b/test_fixtures/EventCallbackHelper_AccountCallbacks.json new file mode 100644 index 0000000..bbdf418 --- /dev/null +++ b/test_fixtures/EventCallbackHelper_AccountCallbacks.json @@ -0,0 +1,82 @@ +{ + "base": { + "account_guid": "63522885f9261e2b04eea043933ee7313eb674fd", + "event": { + "event_time": "1348177752", + "event_type": "unknown_error", + "event_hash": "c574f5d3090c2936360b4e36cf6835cf3e2206b84fdc6347e6b28ca721ae1371", + "event_metadata": { + "related_signature_id": "ad4d8a769b555fa5ef38691465d426682bf2c992", + "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd" + } + } + }, + "base_no_metadata": { + "account_guid": "63522885f9261e2b04eea043933ee7313eb674fd", + "event": { + "event_time": "1348177752", + "event_type": "unknown_error", + "event_hash": "c574f5d3090c2936360b4e36cf6835cf3e2206b84fdc6347e6b28ca721ae1371" + } + }, + "account": { + "account_guid": "63522885f9261e2b04eea043933ee7313eb674fd", + "event": { + "event_time": "1348177752", + "event_type": "account_confirmed", + "event_hash": "6dc5b7aad93cf54915e0089d6c31d61b3833f66f51459171c69f8fa211308848", + "event_metadata": { + "related_signature_id": "ad4d8a769b555fa5ef38691465d426682bf2c992", + "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd" + } + } + }, + "account_no_metadata": { + "account_guid": "63522885f9261e2b04eea043933ee7313eb674fd", + "event": { + "event_time": "1348177752", + "event_type": "account_confirmed", + "event_hash": "6dc5b7aad93cf54915e0089d6c31d61b3833f66f51459171c69f8fa211308848" + } + }, + "signature_request": { + "account_guid": "63522885f9261e2b04eea043933ee7313eb674fd", + "event": { + "event_time": "1348177752", + "event_type": "signature_request_sent", + "event_hash": "08d45a6b7677492b78be030cef18cfeaece8fe67e163cc8e526ee638ad483756", + "event_metadata": { + "related_signature_id": "ad4d8a769b555fa5ef38691465d426682bf2c992", + "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd" + } + } + }, + "signature_request_no_metadata": { + "account_guid": "63522885f9261e2b04eea043933ee7313eb674fd", + "event": { + "event_time": "1348177752", + "event_type": "signature_request_sent", + "event_hash": "08d45a6b7677492b78be030cef18cfeaece8fe67e163cc8e526ee638ad483756" + } + }, + "template": { + "account_guid": "63522885f9261e2b04eea043933ee7313eb674fd", + "event": { + "event_time": "1348177752", + "event_type": "template_created", + "event_hash": "4a9b22fa68d5addb8b6313eea9d42ecb393903a4240b71503ef78e9dac6c100d", + "event_metadata": { + "related_signature_id": "ad4d8a769b555fa5ef38691465d426682bf2c992", + "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd" + } + } + }, + "template_no_metadata": { + "account_guid": "63522885f9261e2b04eea043933ee7313eb674fd", + "event": { + "event_time": "1348177752", + "event_type": "template_created", + "event_hash": "4a9b22fa68d5addb8b6313eea9d42ecb393903a4240b71503ef78e9dac6c100d" + } + } +} diff --git a/test_fixtures/EventCallbackHelper.json b/test_fixtures/EventCallbackHelper_AppCallbacks.json similarity index 83% rename from test_fixtures/EventCallbackHelper.json rename to test_fixtures/EventCallbackHelper_AppCallbacks.json index bfd2346..bf6e9ad 100644 --- a/test_fixtures/EventCallbackHelper.json +++ b/test_fixtures/EventCallbackHelper_AppCallbacks.json @@ -7,7 +7,8 @@ "event_hash": "c574f5d3090c2936360b4e36cf6835cf3e2206b84fdc6347e6b28ca721ae1371", "event_metadata": { "related_signature_id": "ad4d8a769b555fa5ef38691465d426682bf2c992", - "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd" + "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd", + "reported_for_app_id": "98891a1b59f312d04cd88e4e0c498d75e0ce0ce0" } } }, @@ -19,7 +20,8 @@ "event_hash": "6dc5b7aad93cf54915e0089d6c31d61b3833f66f51459171c69f8fa211308848", "event_metadata": { "related_signature_id": "ad4d8a769b555fa5ef38691465d426682bf2c992", - "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd" + "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd", + "reported_for_app_id": "98891a1b59f312d04cd88e4e0c498d75e0ce0ce0" } } }, @@ -31,7 +33,8 @@ "event_hash": "08d45a6b7677492b78be030cef18cfeaece8fe67e163cc8e526ee638ad483756", "event_metadata": { "related_signature_id": "ad4d8a769b555fa5ef38691465d426682bf2c992", - "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd" + "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd", + "reported_for_app_id": "98891a1b59f312d04cd88e4e0c498d75e0ce0ce0" } } }, @@ -43,7 +46,8 @@ "event_hash": "4a9b22fa68d5addb8b6313eea9d42ecb393903a4240b71503ef78e9dac6c100d", "event_metadata": { "related_signature_id": "ad4d8a769b555fa5ef38691465d426682bf2c992", - "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd" + "reported_for_account_id": "63522885f9261e2b04eea043933ee7313eb674fd", + "reported_for_app_id": "98891a1b59f312d04cd88e4e0c498d75e0ce0ce0" } } } diff --git a/test_fixtures/SignatureRequestSendRequest.json b/test_fixtures/SignatureRequestSendRequest.json index b80dfb2..6a33979 100644 --- a/test_fixtures/SignatureRequestSendRequest.json +++ b/test_fixtures/SignatureRequestSendRequest.json @@ -122,7 +122,8 @@ "height": 30, "required": true, "signer": "1", - "page": 1 + "page": 1, + "font_size": 12 }, { "document_index": 0, @@ -140,7 +141,8 @@ "height": 30, "required": true, "signer": "1", - "page": 1 + "page": 1, + "font_size": 12 }, { "document_index": 0, @@ -153,7 +155,8 @@ "height": 30, "required": true, "signer": "1", - "page": 1 + "page": 1, + "font_size": 12 }, { "document_index": 0, @@ -352,7 +355,8 @@ "height": 30, "required": true, "signer": "1", - "page": 1 + "page": 1, + "font_size": 12 }, { "document_index": 0, @@ -370,7 +374,8 @@ "height": 30, "required": true, "signer": "1", - "page": 1 + "page": 1, + "font_size": 12 }, { "document_index": 0, @@ -383,7 +388,8 @@ "height": 30, "required": true, "signer": "1", - "page": 1 + "page": 1, + "font_size": 12 }, { "document_index": 0, diff --git a/test_fixtures/SubFormFieldsPerDocument.json b/test_fixtures/SubFormFieldsPerDocument.json index 11ef509..afcbcc2 100644 --- a/test_fixtures/SubFormFieldsPerDocument.json +++ b/test_fixtures/SubFormFieldsPerDocument.json @@ -32,7 +32,8 @@ "height": 16, "x": 112, "y": 328, - "options": ["foo"] + "options": ["foo"], + "font_size": 12 }, "SubFormFieldsPerDocumentHyperlink": { "type" : "hyperlink", @@ -45,7 +46,8 @@ "x": 112, "y": 328, "content": "Dropbox Sign", - "content_url": "https://dropboxsign.com" + "content_url": "https://dropboxsign.com", + "font_size": 12 }, "SubFormFieldsPerDocumentInitials": { "type" : "initials", @@ -91,7 +93,8 @@ "width": 100, "height": 16, "x": 112, - "y": 328 + "y": 328, + "font_size": 12 }, "SubFormFieldsPerDocumentTextMerge": { "type" : "text-merge", @@ -102,6 +105,7 @@ "width": 100, "height": 16, "x": 112, - "y": 328 + "y": 328, + "font_size": 12 } } diff --git a/tests/test_event_callback_helper.py b/tests/test_event_callback_helper.py index ee5c156..8ff764d 100644 --- a/tests/test_event_callback_helper.py +++ b/tests/test_event_callback_helper.py @@ -8,16 +8,32 @@ class TestEventCallbackHelper(unittest.TestCase): def test_is_valid(self): - fixture_data = get_fixture_data('EventCallbackHelper') - api_key = '324e3b0840f065eb51f3fd63231d0d33daa35d4ed10d27718839e81737065782' api_key_rev = api_key[::-1] - for key, value in fixture_data.items(): + account_data = get_fixture_data('EventCallbackHelper_AccountCallbacks') + + for key, value in account_data.items(): + obj = EventCallbackRequest.init(value) + + self.assertTrue(EventCallbackHelper.is_valid(api_key, obj)) + self.assertFalse(EventCallbackHelper.is_valid(api_key_rev, obj)) + self.assertEqual( + EventCallbackHelper.EVENT_TYPE_ACCOUNT_CALLBACK, + EventCallbackHelper.get_callback_type(obj) + ) + + app_data = get_fixture_data('EventCallbackHelper_AppCallbacks') + + for key, value in app_data.items(): obj = EventCallbackRequest.init(value) self.assertTrue(EventCallbackHelper.is_valid(api_key, obj)) self.assertFalse(EventCallbackHelper.is_valid(api_key_rev, obj)) + self.assertEqual( + EventCallbackHelper.EVENT_TYPE_APP_CALLBACK, + EventCallbackHelper.get_callback_type(obj) + ) if __name__ == '__main__':