Access Policies
Enable gateway and construct airs::gateway::AccessPoliciesClient from an
explicitly configured core Client. Models are in
airs::gateway::access_policies::models and are also re-exported by
access_policies. This additive API is introduced in scm-sdk 0.2.1.
The client implements all five operations added by Portkey OpenAPI commit
a27feb9:
create/list/get/update/delete under /policies/access. All twelve list filters
are exposed, with explicit numbered pages. Zero page size/page number and false
enabled are preserved; missing filters remain absent. No list_all helper or
snapshot consistency is implied.
Supply a compatible control-plane endpoint and a key authorized for policy
administration using Authentication::runtime_key. That existing credential
mechanism sends x-portkey-api-key; its name does not make this an inference
endpoint. There is no default origin, implicit SCM OAuth adapter, tenant-header
copy or inference-routing inheritance. The caller's destination policy applies.
AIGatewayClient's SCM OAuth resource facade does not expose this key client.
Create requires subjects and targets; update replaces them and requires the
version returned by get. Omitted update fields preserve server state, while
Patch::Null clears nullable description. Provider models omission lets the
server apply ALL. Create effect/enabled defaults are also server-owned. No new
response defaults are introduced: both RequestOptions response modes preserve
missing keys, explicit nulls and unknown response data identically.
An allow policy requires a specific subject. Omitted create effect means deny only for both user ANY and agent ANY; update effect omission keeps its stored value and never triggers a hidden GET. Unknown returned effects, subject kinds and target variants are data, never an implicit allow. The SDK does not evaluate policies or decide whether a caller is authorized.
All writes are non-replayable, including when request options specify retries. 409 conflicts return unchanged for caller reconciliation. Deadlines, cancellation, request/response limits, redacted ordinary formatting, and uncertain write outcomes use the shared client guarantees.
Support and evidence
This family is experimental and live-unverified. The retained tenant registration contains SCM OAuth credentials only, not a separately selected compatible Portkey control-plane endpoint/key. No policy authorization mutations were performed. Upstream conformance does not establish deployment in PANW SCM. The five-method ledger is separate from frozen TypeScript parity and the Red Team vendor denominator.
The offline example executes all five methods with a synthetic transport. Request/response fixtures are evaluated independently against the pinned OpenAPI, with explicit reasons for semantic constraints and tolerant response vocabulary. Wire tests cover all operations, credential isolation, destination rejection, conflicts, bounds and cancellation.