"""BriteCore v2 Signatures API endpoint wrappers.
This module provides wrappers for DocuSign authentication, configuration,
signature retrieval, envelope recreation, and envelope status updates.
"""
from typing import Any, Unpack
from britecore_sdk.api.api_calls import (
BritecoreAPIClient,
RequestParameters,
api_client,
)
from britecore_sdk.api.api_calls.v2._common import build_payload, post
API_CLIENT: BritecoreAPIClient = api_client
[docs]
def docusign_auth(
action: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Perform a DocuSign authentication action.
POST /api/v2/signatures/docusign_auth
"""
return post(
"/api/v2/signatures/docusign_auth",
build_payload(action=action),
**kwargs,
)
[docs]
def docusign_config(
data: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Retrieve or update DocuSign configuration.
POST /api/v2/signatures/docusign_config
"""
return post(
"/api/v2/signatures/docusign_config",
build_payload(data=data),
**kwargs,
)
[docs]
def get_signatures(
revision_id: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Retrieve signature records for a revision.
POST /api/v2/signatures/get_signatures
"""
return post(
"/api/v2/signatures/get_signatures",
build_payload(revision_id=revision_id),
**kwargs,
)
[docs]
def recreate_envelope(
revision_id: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Recreate a DocuSign envelope for a revision.
POST /api/v2/signatures/recreate_envelope
"""
return post(
"/api/v2/signatures/recreate_envelope",
build_payload(revision_id=revision_id),
**kwargs,
)
[docs]
def update_signatures(
envelope_id: str | None = None,
signers: str | None = None,
status: str | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Update signature records for an envelope.
POST /api/v2/signatures/update_signatures
"""
return post(
"/api/v2/signatures/update_signatures",
build_payload(envelope_id=envelope_id, signers=signers, status=status),
**kwargs,
)
[docs]
def void_envelope(
envelope_id: Any | None = None,
revision_id: Any | None = None,
void_reason: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Void a DocuSign envelope.
POST /api/v2/signatures/void_envelope
"""
payload: dict[str, Any] = {}
if envelope_id is not None:
payload["envelopeId"] = envelope_id
if revision_id is not None:
payload["revisionId"] = revision_id
if void_reason is not None:
payload["voidReason"] = void_reason
return post("/api/v2/signatures/void_envelope", payload, **kwargs)
__all__ = [
"docusign_auth",
"docusign_config",
"get_signatures",
"recreate_envelope",
"update_signatures",
"void_envelope",
]
# --- Autogenerated spec wrappers ---
[docs]
def flush_cache(
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Flush Cache.
POST /api/v2/signatures/flush_cache
"""
request_json: dict[str, Any] = {}
filtered_json = {k: v for k, v in request_json.items() if v is not None}
request_result = API_CLIENT.do_request(
path="/api/v2/signatures/flush_cache",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/signatures/flush_cache"
)
[docs]
def get_envelope(
revision_id: Any | None = None,
envelope_id: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Get Envelope.
POST /api/v2/signatures/get_envelope
"""
request_json: dict[str, Any] = {
"revision_id": revision_id,
"envelope_id": envelope_id,
}
filtered_json = {k: v for k, v in request_json.items() if v is not None}
request_result = API_CLIENT.do_request(
path="/api/v2/signatures/get_envelope",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/signatures/get_envelope"
)
__all__.extend(
[
"flush_cache",
"get_envelope",
]
)