Source code for britecore_sdk.api.api_calls.v2.claims

"""BriteCore v2 Claims API endpoint wrappers.

This module provides the SDK wrapper for retrieving claim details from the
BriteCore v2 claims API.
"""

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
from britecore_sdk.api.api_calls.v2._common import post as common_post

API_CLIENT: BritecoreAPIClient = api_client


def _post(
    path: str,
    payload: dict[str, Any] | None = None,
    **kwargs: Unpack[RequestParameters],
) -> Any:
    return common_post(path, payload, client=API_CLIENT, **kwargs)


[docs] def get_claim( claim_id: str | None = None, claim_number: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Retrieve claim details by claim identifier. POST /api/v2/claims/get_claim """ verification_list: list[dict[str, str | None]] = [ {"claim_id": claim_id}, {"claim_number": claim_number}, ] priority_list: list[str] = ["claim_id", "claim_number"] request_json: dict[str, str | None] = API_CLIENT.multiple_parameter_verification( verification_list, priority_list, ) return _post( "/api/v2/claims/get_claim", request_json, **kwargs, )
[docs] def export_claim_payments( claim_ids: list[str] | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Export claim payments for one or more claim identifiers.""" return _post( "/api/v2/claims/export_claim_payments", build_payload(claim_ids=claim_ids), **kwargs, )
[docs] def get_all_catastrophes(**kwargs: Unpack[RequestParameters]) -> Any: """Retrieve all catastrophe records available to the claims domain.""" return _post("/api/v2/claims/get_all_catastrophes", **kwargs)
[docs] def get_all_perils(**kwargs: Unpack[RequestParameters]) -> Any: """Retrieve all peril records available to the claims domain.""" return _post("/api/v2/claims/get_all_perils", **kwargs)
[docs] def get_claim_contacts( claim_id: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Retrieve contacts associated with a claim.""" return _post( "/api/v2/claims/get_claim_contacts", build_payload(claim_id=claim_id), **kwargs, )
[docs] def get_claim_payments( claim_id: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Retrieve payment records associated with a claim.""" return _post( "/api/v2/claims/get_claim_payments", build_payload(claim_id=claim_id), **kwargs, )
[docs] def update_claim( claim_id: str | None = None, claim: dict[str, Any] | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Update claim fields for the provided claim identifier.""" return _post( "/api/v2/claims/update_claim", build_payload(claim_id=claim_id, claim=claim), **kwargs, )
__all__ = [ "export_claim_payments", "get_all_catastrophes", "get_all_perils", "get_claim", "get_claim_contacts", "get_claim_payments", "update_claim", ] # --- Autogenerated spec wrappers ---
[docs] def auto_assign_claim( claim_id: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Auto Assign Claim. POST /api/v2/claims/auto_assign_claim """ request_json: dict[str, Any] = { "claim_id": claim_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/claims/auto_assign_claim", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/auto_assign_claim" )
[docs] def bifurcate_claim( claim_id: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Bifurcate Claim. POST /api/v2/claims/bifurcate_claim """ request_json: dict[str, Any] = { "claim_id": claim_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/claims/bifurcate_claim", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/bifurcate_claim" )
[docs] def bulk_assign( **kwargs: Unpack[RequestParameters], ) -> Any: """Bulk Assign. POST /api/v2/claims/bulk_assign """ 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/claims/bulk_assign", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/bulk_assign" )
[docs] def bulk_reassign( **kwargs: Unpack[RequestParameters], ) -> Any: """Bulk Reassign. POST /api/v2/claims/bulk_reassign """ 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/claims/bulk_reassign", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/bulk_reassign" )
[docs] def bulk_unassign( **kwargs: Unpack[RequestParameters], ) -> Any: """Bulk Unassign. POST /api/v2/claims/bulk_unassign """ 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/claims/bulk_unassign", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/bulk_unassign" )
[docs] def create_claim_date( claim_id: str | None = None, claim_date_type: str | None = None, claim_date: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Create Claim Date. POST /api/v2/claims/create_claim_date """ request_json: dict[str, Any] = { "claim_id": claim_id, "claim_date_type": claim_date_type, "claim_date": claim_date, } 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/claims/create_claim_date", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/create_claim_date" )
[docs] def export_batch_claims( claim_ids: list[str] | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Export Batch Claims. POST /api/v2/claims/export_batch_claims """ request_json: dict[str, Any] = { "claim_ids": claim_ids, } 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/claims/export_batch_claims", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/export_batch_claims" )
[docs] def get_all_associated_claims_parties( claim_id: Any | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Get All Associated Claims Parties. POST /api/v2/claims/get_all_associated_claims_parties """ request_json: dict[str, Any] = {"claim_id": claim_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/claims/get_all_associated_claims_parties", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/get_all_associated_claims_parties" )
[docs] def get_all_claim_transactions( claim_id: str | None = None, page: int | None = None, page_size: int | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Get All Claim Transactions. POST /api/v2/claims/get_all_claim_transactions """ request_json: dict[str, Any] = { "claim_id": claim_id, "page": page, "page_size": page_size, } 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/claims/get_all_claim_transactions", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/get_all_claim_transactions" )
[docs] def get_claim_change_logs( transaction: str | None = None, standard_error: str | None = None, to_date_time: str | None = None, Raises: str | None = None, from_date_time: str | None = None, field: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Get Claim Change Logs. POST /api/v2/claims/get_claim_change_logs """ request_json: dict[str, Any] = { "transaction": transaction, "standard_error": standard_error, "to_date_time": to_date_time, "Raises": Raises, "from_date_time": from_date_time, "------": field, } 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/claims/get_claim_change_logs", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/get_claim_change_logs" )
[docs] def get_claim_date_types( claim_id: Any | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Get Claim Date Types. POST /api/v2/claims/get_claim_date_types """ request_json: dict[str, Any] = { "claim_id": claim_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/claims/get_claim_date_types", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/get_claim_date_types" )
[docs] def get_claim_dates( claim_id: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Get Claim Dates. POST /api/v2/claims/get_claim_dates """ request_json: dict[str, Any] = { "claim_id": claim_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/claims/get_claim_dates", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/get_claim_dates" )
[docs] def get_claims_tabs_visibility( claim_id: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Get Claims Tabs Visibility. POST /api/v2/claims/get_claims_tabs_visibility """ request_json: dict[str, Any] = { "claim_id": claim_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/claims/get_claims_tabs_visibility", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/get_claims_tabs_visibility" )
[docs] def get_contacts_claims( active: bool | None = None, contact_external_refs: list[str] | None = None, contact_ids: list[str] | None = None, page: int | None = None, page_size: int | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Get Contacts Claims. POST /api/v2/claims/get_contacts_claims """ request_json: dict[str, Any] = { "active": active, "contact_external_refs": contact_external_refs, "contact_ids": contact_ids, "page": page, "page_size": page_size, } 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/claims/get_contacts_claims", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/get_contacts_claims" )
[docs] def get_contacts_claims_count( active: bool | None = None, contact_external_refs: list[str] | None = None, contact_ids: list[str] | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Get Contacts Claims Count. POST /api/v2/claims/get_contacts_claims_count """ request_json: dict[str, Any] = { "active": active, "contact_external_refs": contact_external_refs, "contact_ids": contact_ids, } 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/claims/get_contacts_claims_count", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/get_contacts_claims_count" )
[docs] def new_claim( claim_number: str | None = None, claim_number_origin: str | None = None, policy_number: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """New Claim. POST /api/v2/claims/new_claim """ request_json: dict[str, Any] = { "claim_number": claim_number, "claim_number_origin": claim_number_origin, "policy_number": policy_number, } 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/claims/new_claim", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/new_claim" )
[docs] def remove_claim( hard_delete: bool | None = None, claim_id: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Remove Claim. POST /api/v2/claims/remove_claim """ request_json: dict[str, Any] = { "hard_delete": hard_delete, "claim_id": claim_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/claims/remove_claim", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/remove_claim" )
[docs] def retrieve_claim_change_logs( claim_ids: list[str] | None = None, transactions: list[str] | None = None, filter_by: str | None = None, allow_timestamp: bool | None = None, from_date: str | None = None, to_date: str | None = None, policy_type_ids: list[str] | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Retrieve Claim Change Logs. POST /api/v2/claims/retrieve_claim_change_logs """ request_json: dict[str, Any] = { "claim_ids": claim_ids, "transactions": transactions, "filter_by": filter_by, "allow_timestamp": allow_timestamp, "from_date": from_date, "to_date": to_date, "policy_type_ids": policy_type_ids, } 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/claims/retrieve_claim_change_logs", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/retrieve_claim_change_logs" )
[docs] def retrieve_claim_payments( transaction_date_from: str | None = None, voided: bool | None = None, exported: bool | None = None, historical: bool | None = None, policy_type_ids: list[str] | None = None, transaction_date_to: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Retrieve Claim Payments. POST /api/v2/claims/retrieve_claim_payments """ request_json: dict[str, Any] = { "transaction_date_from": transaction_date_from, "voided": voided, "exported": exported, "historical": historical, "policy_type_ids": policy_type_ids, "transaction_date_to": transaction_date_to, } 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/claims/retrieve_claim_payments", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/retrieve_claim_payments" )
[docs] def set_claim_loss_address( not_found: str | None = None, Raises: str | None = None, address: dict[str, Any] | None = None, field: str | None = None, claim_id: str | None = None, property_address_id: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Set Claim Loss Address. POST /api/v2/claims/set_claim_loss_address """ request_json: dict[str, Any] = { "not found": not_found, "Raises": Raises, "address": address, "------": field, "claim_id": claim_id, "property_address_id": property_address_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/claims/set_claim_loss_address", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/set_claim_loss_address" )
[docs] def update_claim_date( claim_date_id: str | None = None, claim_id: str | None = None, claim_date_type: str | None = None, claim_date: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Update Claim Date. POST /api/v2/claims/update_claim_date """ request_json: dict[str, Any] = { "claim_date_id": claim_date_id, "claim_id": claim_id, "claim_date_type": claim_date_type, "claim_date": claim_date, } 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/claims/update_claim_date", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/claims/update_claim_date" )
__all__.extend( [ "auto_assign_claim", "bifurcate_claim", "bulk_assign", "bulk_reassign", "bulk_unassign", "create_claim_date", "export_batch_claims", "get_all_associated_claims_parties", "get_all_claim_transactions", "get_claim_change_logs", "get_claim_date_types", "get_claim_dates", "get_claims_tabs_visibility", "get_contacts_claims", "get_contacts_claims_count", "new_claim", "remove_claim", "retrieve_claim_change_logs", "retrieve_claim_payments", "set_claim_loss_address", "update_claim_date", ] )