users and
groups, and each entry is a user or a
group. Owners don’t have endpoints of their own. You read and set
them on the resource they belong to.
The Owners object
Resources with owners
Attributes
Each
id is the same ID that Get User or
Get Group takes. Owners are users and groups directly, so a
group’s members aren’t listed. Use List Group Members
to read them.
Expanding fields with expand
A resource’s read endpoints leave owners out of the response unless you ask for it with
expand. Without expand, the key is missing, not null.
- Each path expands only its own list.
owners.usersandowners.groupsincludeowners, so you don’t need to sendownerswith them.- Expanding only adds fields. A
{id}reference becomes the full object, and nothing is renamed or moved. - Expanded users are the same object that List Users returns,
without
custom_attributes. Expanded groups are the same object that List Groups returns. - Any other path under
owners, such asowners.users.custom_attributes, returns400.
expand applies to every item on the page.
With expand=owners.users:
expand=owners.users,owners.groups:
Setting owners
Sendowners with {id} references in both lists. The same shape works for users and groups:
owners always replaces the full owner set:
A write that sends
owners returns the resource with owners as {id} references, so you can
confirm the change without a second read. A write that leaves owners out returns the resource
without it.
Each resource decides what happens when you leave owners out, and which methods accept it. Its
page, linked from Resources with owners, covers that.
Who can do what
Reading owners. Even an{id} reference shows which users and groups exist. So every owners
path, including plain expand=owners, needs the same permissions as
List Users and
List Groups, on top of permission to read the resource. Of
the built-in roles, Admin, Read Only Admin, App Admin, and
AppStore Read Only Admin have both.
A caller missing either permission gets 403 for the whole request. This differs from most
expand fields, which a response leaves out when you can’t read them, as
Requesting fields with expand describes.
Setting owners. Changing owners needs its own permission, separate from editing the rest of the
resource. Being an owner doesn’t give it. It comes from your role in the organization, such as
Admin. A caller without it gets 403, before Lumos looks up any owner ID, so the response doesn’t
reveal which IDs exist.