Describe the bug
In Python SDK 2.1.42, AccessRequestsApi.list_access_request_status_v1()
deserializes /access-request-status/v1 responses into RequestedItemStatus.
Its nested ApprovalStatusDto does not model several fields returned by the API.
Pydantic silently discards these fields, so serializing the SDK object with
model_dump_json(by_alias=True) does not reproduce the API response.
Missing fields observed in approvalDetails include:
currentOwners
approverComments
approvalId
startDate
timeoutConfig
approvalCriteria
forwardHistory
reviewedBy
reviewedByIdentities
currentOwners is particularly important for serial and parallel workflow
approvals because singular currentOwner can be null while currentOwners
contains the actual approver chain.
To Reproduce
import json
from sailpoint import ApiClient, Configuration
from sailpoint.access_requests.api import AccessRequestsApi
configuration = Configuration()
with ApiClient(configuration) as api_client:
api = AccessRequestsApi(api_client)
response = api.list_access_request_status_v1_with_http_info(
filters='accessRequestId eq "<access-request-id>"'
)
raw_item = json.loads(response.raw_data.decode("utf-8"))[0]
model_item = response.data[0].model_dump(by_alias=True)
raw_approval = raw_item["approvalDetails"][0]
model_approval = model_item["approvalDetails"][0]
print(sorted(set(raw_approval) - set(model_approval)))
Describe the bug
In Python SDK 2.1.42,
AccessRequestsApi.list_access_request_status_v1()deserializes
/access-request-status/v1responses intoRequestedItemStatus.Its nested
ApprovalStatusDtodoes not model several fields returned by the API.Pydantic silently discards these fields, so serializing the SDK object with
model_dump_json(by_alias=True)does not reproduce the API response.Missing fields observed in
approvalDetailsinclude:currentOwnersapproverCommentsapprovalIdstartDatetimeoutConfigapprovalCriteriaforwardHistoryreviewedByreviewedByIdentitiescurrentOwnersis particularly important for serial and parallel workflowapprovals because singular
currentOwnercan be null whilecurrentOwnerscontains the actual approver chain.
To Reproduce