karmendra8386 opened a new pull request, #14544: URL: https://github.com/apache/gravitino/pull/14544
### What changes were proposed in this pull request? Add the policy API types and DTOs to the Python client, mirroring the Java client's policy API (`org.apache.gravitino.policy`) and following the existing tag feature layout in the Python client. This includes the `Policy`, `PolicyOperations`, `SupportsPolicies` and `PolicyChange` types under `gravitino/api/policy/`, the policy content types (custom, Iceberg maintenance, row filter, column mask and access control) with their validation, `PolicyDTO`, the create/update/set request DTOs and the policy response DTOs, and the policy exception types used by the policy error handler. This is part 1 of the work for #7897, as discussed on the issue: API and DTOs first, with the client operations and their tests to follow in a separate PR. ### Why are the changes needed? The server and the Java client already support policies, but the Python client has no policy types at all, so Python users cannot work with policies. This PR adds the API/DTO layer so the client operations can be built on it in the follow-up PR. For #7897 — this is a partial PR for the issue, so it should not close the issue yet. ### Does this PR introduce _any_ user-facing change? It adds new public policy API types and DTOs to the Python client. No existing APIs are changed, and no client operations are wired up yet — that is the follow-up PR. ### How was this patch tested? Added unit tests for the policy API, `PolicyDTO`, and the policy request/response DTOs. Ran the full client-python unit suite on this branch: ``` 1352 passed, 990 subtests passed ``` Ruff check and format check on the changed files are clean, and `git diff --check` passes. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
