"""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_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 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",
]
)