Create Access Policy
Create an access policy. Returns 201 with the created policy. Grant entitlements by Entitlement UUID under apps[].entitlements, or leave them out to grant access to the app itself. Send is_everyone_condition: true for a policy that applies to everyone, or an access_condition for one that doesn’t; sending both returns 400. The everyone condition a read returns in access_condition counts as is_everyone_condition: true, so a body built from a read can be sent back as is.
An access_condition may use only the attributes and operators the Lumos condition builder offers, with one operator per attribute, and a date-time value needs a time zone offset (2026-01-01T00:00:00Z). Any other condition returns 400 naming each problem.
A policy is created as a draft unless status is published. A draft can’t be enabled, so sending is_enabled: true without status: published returns 400. Creating a published policy whose condition matches another published policy also returns 400. A draft with the same condition is allowed. When your organization requires approval before publishing, status: published returns 400.
Listing an app twice, or an entitlement twice under one app, returns 400. An app or entitlement that doesn’t resolve returns 404 without saying which.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The name of the access policy.
Explanation for why this policy exists.
500The apps granted by this access policy.
1The status of the access policy, draft or published. Defaults to draft.
draft, published Whether the access policy is enabled. Defaults to false when supported.
The Lumos Condition object determining which identities qualify for this policy. Required unless is_everyone_condition is true. This is a recursive JSON structure that allows you to define complex rules for filtering and matching identities using operators like equals, in, and, or, and not. For more information, see the Lumos Conditions documentation.
Whether the access policy applies to everyone. Send true without access_condition, or false (the default) with one; sending both returns 400, unless access_condition is the everyone condition a read returns.
Response
Successful Response
The full representation of an access policy returned by the V1 API.
The name of the access policy.
Explanation for why this policy exists.
500The unique ID of the access policy.
The status of the access policy.
draft, published Whether the access policy is enabled.
The apps and entitlements granted by this access policy.
The Lumos Condition object determining which identities qualify for this policy. For more information, see the Lumos Conditions documentation.
True when the policy applies to everyone in your organization. In that case, access_condition holds the condition Lumos uses to match everyone.
The users and groups that own this access policy. Returned only with expand=owners, owners.users, or owners.groups.