# Chainguard Events

URL: https://deploy-preview-4110--ornate-narwhal-088216.netlify.app/platform/administration/cloudevents/events-reference.md
Last Modified: September 30, 2026
Tags: Platform, Reference, Product

Chainguard Events

Chainguard generates and emits CloudEvents based on actions that occur within a Chainguard account, such as registering a Kubernetes cluster or creating an IAM invitation. Chainguard also emits events when workloads or policies are changed in a cluster.
Check out this GitHub repository for some sample applications that demonstrate how to use events to create Slack notifications, open GitHub issues, and mirror images.
To subscribe to Chainguard events for your account, use the chainctl command like this:
chainctl events subscriptions create –parent $YOUR_ORGANIZATION_OR_FOLDER https://&lt;Your webhook URL&gt;Once you are subscribed to Chainguard events, you will start receiving HTTP POST requests. Each request has a common set of CloudEvent header fields, denoted by the Ce- prefix. The event body is encoded using JSON and will have two top-level keys, actor and body.
The actor field is the identity of the actor in your Chainguard account that triggered the event, such as a team member or a Kubernetes cluster. The body field contains the specific data about the event, for example the response status for an invite creation request, or a cluster delete request.
UIDP Identifiers Each Chainguard event includes a Ce-Subject header that contains a UIDP (UID Path) identifier. Identifiers follow POSIX directory semantics and components are separated by / delimiters. A UIDP is comprised of:
A globally unique identifier (UID), consisting of 20 bytes, that are URL safe hex encoded. For example, account identities like 0475f6baca584a8964a6bce6b74dbe78dd8805b6.
One, or multiple / separated, scoped unique identifiers (SUID). An SUID is 8 bytes that are unique within a scope (like a group), and are URL safe hex encoded. The following is an example SUID: b74ce966caf448d1. SUIDs are used to identify every entity in Chainguard, from groups, policies, Kubernetes cluster IDs, event subscriptions, to IAM invitations, roles and role-bindings.
Since Chainguard groups can contain child groups, events in a child group will propagate to the parent and thus the UIDP will contain multiple group SUIDs, along with the entity SUID itself. For example, assuming the following components:
An account UID of 0475f6baca584a8964a6bce6b74dbe78dd8805b6 A group SUID of b74ce966caf448d1 A child of group b74ce966caf448d1 with its own SUID of dda9aab2d2d90f9e The complete UIDP in the event&rsquo;s Ce-Subject header would be:
0475f6baca584a8964a6bce6b74dbe78dd8805b6/b74ce966caf448d1/dda9aab2d2d90f9e/1a4b29ca6df80013 Authorization Header Every Chainguard event has a JWT formatted OIDC ID token in its Authorization header. For authorization purposes, there are two important fields to validate:
Use the iss field to ensure that the issuer is Chainguard, specifically https://issuer.enforce.dev. Use the sub field to check that the event matches your configured Chainguard identity. For example, assuming a UIDP ID of 0475f6baca584a8964a6bce6b74dbe78dd8805b6, the value will resemble the following: webhook:0475f6baca584a8964a6bce6b74dbe78dd8805b6. If the subscription is in a sub-group, then the value will have the corresponding group SUID appended to the path. Validating these fields before processing the JWT token using a verification library can save resources, as well as alert about suspicious traffic, or misconfigured Chainguard group settings.
CloudEvents Sources Chainguard CloudEvents are delivered from a stable set of egress IP addresses. These are also published as A records on egress.enforce.dev, so you can allowlist that name instead of hard-coding the individual addresses:
34.132.193.40 35.237.242.37 35.230.121.20 34.85.183.217 These addresses apply to sinks reached over the public internet. A sink hosted on Google Cloud, such as a Cloud Run .run.app URL, may instead be reached over Google&rsquo;s internal network. In that case the delivery does not originate from any of these addresses, and no source-IP allowlist will match it. Verify those deliveries using the OIDC token in the Authorization header, as described above, rather than by source IP.
Events Reference The following list of services and methods show example HTTP headers and bodies for public facing Chainguard events.
Service: Registry - Pull Method: Pulled Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: cgr.dev Ce-Specversion: 1.0 Ce-Subject: The identifier of the repository being pulled from Ce-Time: 2026-09-29T17:51:13.393270789Z Ce-Type: dev.chainguard.registry.pull.v1 Content-Length: 777 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;digest&#34;: &#34;The digest of the image being pulled&#34;, &#34;error&#34;: { &#34;code&#34;: &#34;The OCI distribution-spec error code&#34;, &#34;message&#34;: &#34;The error message&#34;, &#34;status&#34;: 0 }, &#34;location&#34;: &#34;Location holds the detected approximate location of the client who pulled. For example, \&#34;ColumbusOHUS\&#34; or \&#34;Minato City13JP&#34;, &#34;method&#34;: &#34;The method used to pull the image. One of: HEAD or GET&#34;, &#34;remote_address&#34;: &#34;&#34;, &#34;repo_id&#34;: &#34;The identifier of the repository being pulled from&#34;, &#34;repository&#34;: &#34;The identifier of the repository being pulled from&#34;, &#34;tag&#34;: &#34;The tag of the image being pulled&#34;, &#34;type&#34;: &#34;Type determines whether the object being pulled is a manifest or blob&#34;, &#34;user_agent&#34;: &#34;The user-agent of the client who pulled&#34;, &#34;when&#34;: &#34;2026-09-29T17:51:13.391889&#34; } } Service: Registry - Push Method: Pushed Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: cgr.dev Ce-Specversion: 1.0 Ce-Subject: The identifier of the repository being pushed to Ce-Time: 2026-09-29T17:51:13.392555904Z Ce-Type: dev.chainguard.registry.push.v1 Content-Length: 707 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;digest&#34;: &#34;The digest of the image being pushed&#34;, &#34;error&#34;: { &#34;code&#34;: &#34;The OCI distribution-spec error code&#34;, &#34;message&#34;: &#34;The error message&#34;, &#34;status&#34;: 0 }, &#34;location&#34;: &#34;Location holds the detected approximate location of the client who pushed. For example, \&#34;ColumbusOHUS\&#34; or \&#34;Minato City13JP&#34;, &#34;remote_address&#34;: &#34;&#34;, &#34;repo_id&#34;: &#34;The identifier of the repository being pushed to&#34;, &#34;repository&#34;: &#34;The identifier of the repository being pushed to&#34;, &#34;tag&#34;: &#34;The tag of the image being pushed&#34;, &#34;type&#34;: &#34;Type determines whether the object being pushed is a manifest or blob&#34;, &#34;user_agent&#34;: &#34;The user-agent of the client who pushed&#34;, &#34;when&#34;: &#34;2026-09-29T17:51:13.391856&#34; } } Service: auth - Auth Method: Register Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/auth/v1/register Ce-Specversion: 1.0 Ce-Subject: Chainguard UIDP Ce-Time: 2026-09-29T17:51:13.406287418Z Ce-Type: dev.chainguard.api.auth.registered.v1 Content-Length: 154 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;group&#34;: &#34;the group this identity has joined by invitation&#34;, &#34;identity&#34;: &#34;Chainguard UIDP&#34; } } Service: events - Subscriptions Method: Create Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/events/v1/subscriptions Ce-Specversion: 1.0 Ce-Subject: UIDP identifier of the subscription Ce-Time: 2026-09-29T17:51:13.406540835Z Ce-Type: dev.chainguard.api.events.subscription.created.v1 Content-Length: 152 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP identifier of the subscription&#34;, &#34;sink&#34;: &#34;Webhook endpoint (http/https URL)&#34; } } Method: Delete Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/events/v1/subscriptions Ce-Specversion: 1.0 Ce-Subject: UIDP identifier of the subscription to delete Ce-Time: 2026-09-29T17:51:13.40672464Z Ce-Type: dev.chainguard.api.events.subscription.deleted.v1 Content-Length: 119 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP identifier of the subscription to delete&#34; } } Service: iam - ExternalGroupRoleMappings Method: Create Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/externalGroupRoleMappings Ce-Specversion: 1.0 Ce-Subject: UIDP of the mapping Ce-Time: 2026-09-29T17:51:13.410139901Z Ce-Type: dev.chainguard.api.iam.external_group_role_mappings.created.v1 Content-Length: 290 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;external_group_id&#34;: &#34;The IdP group identifier&#34;, &#34;id&#34;: &#34;UIDP of the mapping&#34;, &#34;identity_provider_uidp&#34;: &#34;UIDP of the identity provider&#34;, &#34;role_uidp&#34;: &#34;UIDP of the Chainguard role&#34;, &#34;scope&#34;: &#34;UIDP of the group where the role applies&#34; } } Method: Delete Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/externalGroupRoleMappings Ce-Specversion: 1.0 Ce-Subject: UIDP of the mapping Ce-Time: 2026-09-29T17:51:13.41026799Z Ce-Type: dev.chainguard.api.iam.external_group_role_mappings.deleted.v1 Content-Length: 93 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the mapping&#34; } } Method: BatchDelete Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/externalGroupRoleMappings:batchDelete Ce-Specversion: 1.0 Ce-Subject: UIDP of the identity provider Ce-Time: 2026-09-29T17:51:13.410385983Z Ce-Type: dev.chainguard.api.iam.external_group_role_mappings.deleted.batch.v1 Content-Length: 346 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;items&#34;: [ { &#34;external_group_id&#34;: &#34;The IdP group identifier&#34;, &#34;id&#34;: &#34;UIDP of the mapping&#34;, &#34;identity_provider_uidp&#34;: &#34;UIDP of the identity provider&#34;, &#34;role_uidp&#34;: &#34;UIDP of the Chainguard role&#34;, &#34;scope&#34;: &#34;UIDP of the group where the role applies&#34; } ], &#34;parent_id&#34;: &#34;UIDP of the identity provider&#34; } } Service: iam - GroupAccountAssociations Method: Create Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/account_associations Ce-Specversion: 1.0 Ce-Subject: UIDP with which this account information is associated Ce-Time: 2026-09-29T17:51:13.406952306Z Ce-Type: dev.chainguard.api.iam.account_associations.created.v1 Content-Length: 385 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;amazon&#34;: { &#34;account&#34;: &#34;Amazon account ID (if applicable)&#34; }, &#34;description&#34;: &#34;description of this association&#34;, &#34;google&#34;: { &#34;project_id&#34;: &#34;Google Cloud Project ID (if applicable)&#34;, &#34;project_number&#34;: &#34;Google Cloud Project Number (if applicable)&#34; }, &#34;group&#34;: &#34;UIDP with which this account information is associated&#34;, &#34;name&#34;: &#34;group name&#34; } } Method: Update Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/account_associations Ce-Specversion: 1.0 Ce-Subject: UIDP with which this account information is associated Ce-Time: 2026-09-29T17:51:13.407207763Z Ce-Type: dev.chainguard.api.iam.account_associations.updated.v1 Content-Length: 336 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;amazon&#34;: { &#34;account&#34;: &#34;amazon account if applicable&#34; }, &#34;description&#34;: &#34;group description&#34;, &#34;google&#34;: { &#34;project_id&#34;: &#34;project id if applicable&#34;, &#34;project_number&#34;: &#34;project number if applicable&#34; }, &#34;group&#34;: &#34;UIDP with which this account information is associated&#34;, &#34;name&#34;: &#34;group name&#34; } } Method: Delete Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/account_associations Ce-Specversion: 1.0 Ce-Subject: UIDP of the group whose associations will be deleted Ce-Time: 2026-09-29T17:51:13.407370338Z Ce-Type: dev.chainguard.api.iam.account_associations.deleted.v1 Content-Length: 129 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;group&#34;: &#34;UIDP of the group whose associations will be deleted&#34; } } Service: iam - GroupInvites Method: Create Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/group_invites Ce-Specversion: 1.0 Ce-Subject: group UIDP under which this invite resides Ce-Time: 2026-09-29T17:51:13.410560805Z Ce-Type: dev.chainguard.api.iam.group_invite.created.v1 Content-Length: 145 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;expiration&#34;: { &#34;seconds&#34;: 100 }, &#34;id&#34;: &#34;group UIDP under which this invite resides&#34; } } Method: Delete Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/group_invites Ce-Specversion: 1.0 Ce-Subject: UIDP of the record Ce-Time: 2026-09-29T17:51:13.410698044Z Ce-Type: dev.chainguard.api.iam.group_invite.deleted.v1 Content-Length: 92 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the record&#34; } } Service: iam - Groups Method: Create Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/groups Ce-Specversion: 1.0 Ce-Subject: group UIDP under which this group resides Ce-Time: 2026-09-29T17:51:13.397631643Z Ce-Type: dev.chainguard.api.iam.group.created.v1 Content-Length: 169 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;description&#34;: &#34;group description&#34;, &#34;id&#34;: &#34;group UIDP under which this group resides&#34;, &#34;name&#34;: &#34;group name&#34; } } Method: Update Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/groups Ce-Specversion: 1.0 Ce-Subject: group UIDP under which this group resides Ce-Time: 2026-09-29T17:51:13.397879316Z Ce-Type: dev.chainguard.api.iam.group.updated.v1 Content-Length: 169 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;description&#34;: &#34;group description&#34;, &#34;id&#34;: &#34;group UIDP under which this group resides&#34;, &#34;name&#34;: &#34;group name&#34; } } Method: Delete Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/groups Ce-Specversion: 1.0 Ce-Subject: UIDP of the record Ce-Time: 2026-09-29T17:51:13.398063265Z Ce-Type: dev.chainguard.api.iam.group.deleted.v1 Content-Length: 92 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the record&#34; } } Service: iam - Identities Method: Create Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/identities Ce-Specversion: 1.0 Ce-Subject: UIDP of identity Ce-Time: 2026-09-29T17:51:13.398836643Z Ce-Type: dev.chainguard.api.iam.identity.created.v1 Content-Length: 329 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;identity&#34;: { &#34;Relationship&#34;: null, &#34;description&#34;: &#34;The human readable description of identity&#34;, &#34;id&#34;: &#34;The unique identifier of this specific identity&#34;, &#34;name&#34;: &#34;The human readable name of identity&#34; }, &#34;parent_id&#34;: &#34;The Group UIDP path under which the new Identity resides&#34; } } Method: Update Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/identities Ce-Specversion: 1.0 Ce-Subject: The unique identifier of this specific identity Ce-Time: 2026-09-29T17:51:13.399101244Z Ce-Type: dev.chainguard.api.iam.identity.updated.v1 Content-Length: 245 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;Relationship&#34;: null, &#34;description&#34;: &#34;The human readable description of identity&#34;, &#34;id&#34;: &#34;The unique identifier of this specific identity&#34;, &#34;name&#34;: &#34;The human readable name of identity&#34; } } Method: Delete Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/identities Ce-Specversion: 1.0 Ce-Subject: UIDP of the record Ce-Time: 2026-09-29T17:51:13.399340757Z Ce-Type: dev.chainguard.api.iam.identity.deleted.v1 Content-Length: 92 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the record&#34; } } Service: iam - IdentityProviders Method: Create Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of identity provider Ce-Time: 2026-09-29T17:51:13.395690214Z Ce-Type: dev.chainguard.api.iam.identity_providers.created.v1 Content-Length: 378 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;identity_provider&#34;: { &#34;Configuration&#34;: null, &#34;description&#34;: &#34;The human readable description of identity provider&#34;, &#34;id&#34;: &#34;The UIDP of the IAM group to nest this identity provider under&#34;, &#34;name&#34;: &#34;The human readable name of identity provider&#34; }, &#34;parent_id&#34;: &#34;The UIDP of the IAM group to nest this identity provider under&#34; } } Method: Update Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/identityProviders Ce-Specversion: 1.0 Ce-Subject: The UIDP of the IAM group to nest this identity provider under Ce-Time: 2026-09-29T17:51:13.395990316Z Ce-Type: dev.chainguard.api.iam.identity_providers.updated.v1 Content-Length: 279 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;Configuration&#34;: null, &#34;description&#34;: &#34;The human readable description of identity provider&#34;, &#34;id&#34;: &#34;The UIDP of the IAM group to nest this identity provider under&#34;, &#34;name&#34;: &#34;The human readable name of identity provider&#34; } } Method: Delete Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of the IdP Ce-Time: 2026-09-29T17:51:13.396224286Z Ce-Type: dev.chainguard.api.iam.identity_providers.deleted.v1 Content-Length: 89 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the IdP&#34; } } Method: GenerateScimToken Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of the identity provider Ce-Time: 2026-09-29T17:51:13.396460112Z Ce-Type: dev.chainguard.api.iam.identity_providers.scim_token.generated.v1 Content-Length: 250 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;endpoint_url&#34;: &#34;SCIM endpoint URL for the identity provider&#34;, &#34;etag&#34;: &#34;Opaque version of the SCIM configuration&#34;, &#34;expire_time&#34;: {}, &#34;identity_provider_uid&#34;: &#34;UIDP of the identity provider&#34; } } Method: RegenerateScimToken Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of the identity provider Ce-Time: 2026-09-29T17:51:13.396759326Z Ce-Type: dev.chainguard.api.iam.identity_providers.scim_token.regenerated.v1 Content-Length: 319 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;endpoint_url&#34;: &#34;SCIM endpoint URL for the identity provider&#34;, &#34;etag&#34;: &#34;Opaque version of the SCIM configuration&#34;, &#34;expire_time&#34;: {}, &#34;identity_provider_uid&#34;: &#34;UIDP of the identity provider&#34;, &#34;previous_token_expire_time&#34;: {}, &#34;requested_overlap&#34;: { &#34;seconds&#34;: 3600 } } } Method: RevokeScimToken Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of the identity provider Ce-Time: 2026-09-29T17:51:13.397070948Z Ce-Type: dev.chainguard.api.iam.identity_providers.scim_token.revoked.v1 Content-Length: 189 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;etag&#34;: &#34;Opaque version of the SCIM configuration&#34;, &#34;identity_provider_uid&#34;: &#34;UIDP of the identity provider&#34;, &#34;revoke_time&#34;: {} } } Method: SetScimEnabled Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of the identity provider Ce-Time: 2026-09-29T17:51:13.397325197Z Ce-Type: dev.chainguard.api.iam.identity_providers.scim_enabled.updated.v1 Content-Length: 187 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;enabled&#34;: true, &#34;etag&#34;: &#34;Opaque version of the SCIM configuration&#34;, &#34;identity_provider_uid&#34;: &#34;UIDP of the identity provider&#34; } } Service: iam - RoleBindings Method: Create Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/rolebindings Ce-Specversion: 1.0 Ce-Subject: UIDP of the Role to bind Ce-Time: 2026-09-29T17:51:13.413805492Z Ce-Type: dev.chainguard.api.iam.rolebindings.created.v1 Content-Length: 261 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;parent&#34;: &#34;The Group UIDP path under which the new RoleBinding resides&#34;, &#34;role_binding&#34;: { &#34;id&#34;: &#34;UID of this role binding&#34;, &#34;identity&#34;: &#34;UID of the Identity to bind&#34;, &#34;role&#34;: &#34;UIDP of the Role to bind&#34; } } } Method: CreateBatch Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/rolebindings/batch Ce-Specversion: 1.0 Ce-Subject: UID of this role binding, under a parent group UIDP Ce-Time: 2026-09-29T17:51:13.414022183Z Ce-Type: dev.chainguard.api.iam.rolebindings.created.batch.v1 Content-Length: 220 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;role_bindings&#34;: [ { &#34;id&#34;: &#34;UID of this role binding, under a parent group UIDP&#34;, &#34;identity&#34;: &#34;UID of the Identity to bind&#34;, &#34;role&#34;: &#34;UIDP of the Role to bind&#34; } ] } } Method: Update Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/rolebindings Ce-Specversion: 1.0 Ce-Subject: UID of this role binding Ce-Time: 2026-09-29T17:51:13.414180118Z Ce-Type: dev.chainguard.api.iam.rolebindings.updated.v1 Content-Length: 173 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UID of this role binding&#34;, &#34;identity&#34;: &#34;UID of the Identity to bind&#34;, &#34;role&#34;: &#34;UIDP of the Role to bind&#34; } } Method: Delete Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/rolebindings Ce-Specversion: 1.0 Ce-Subject: UID of the record Ce-Time: 2026-09-29T17:51:13.414339221Z Ce-Type: dev.chainguard.api.iam.rolebindings.deleted.v1 Content-Length: 91 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UID of the record&#34; } } Service: iam - Roles Method: Create Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/roles Ce-Specversion: 1.0 Ce-Subject: UIDP of the role under the group Ce-Time: 2026-09-29T17:51:13.39841226Z Ce-Type: dev.chainguard.api.iam.roles.created.v1 Content-Length: 159 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;description&#34;: &#34;role description&#34;, &#34;name&#34;: &#34;role name&#34;, &#34;uid&#34;: &#34;UIDP of the role under the group&#34; } } Method: Update Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/roles Ce-Specversion: 1.0 Ce-Subject: UIDP of the role under the group Ce-Time: 2026-09-29T17:51:13.398574259Z Ce-Type: dev.chainguard.api.iam.roles.updated.v1 Content-Length: 159 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;description&#34;: &#34;role description&#34;, &#34;name&#34;: &#34;role name&#34;, &#34;uid&#34;: &#34;UIDP of the role under the group&#34; } } Method: Delete Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/roles Ce-Specversion: 1.0 Ce-Subject: UIDP of the role to delete Ce-Time: 2026-09-29T17:51:13.398686044Z Ce-Type: dev.chainguard.api.iam.roles.deleted.v1 Content-Length: 101 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;uid&#34;: &#34;UIDP of the role to delete&#34; } } Service: iam - Terms Method: AcceptTerms Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v1/terms Ce-Specversion: 1.0 Ce-Subject: Chainguard UIDP of the organization Ce-Time: 2026-09-29T17:51:13.41454924Z Ce-Type: dev.chainguard.api.iam.terms.accepted.v1 Content-Length: 159 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;document_ids&#34;: [ &#34;guardener-tos.v1&#34;, &#34;sfdpa.v1&#34; ], &#34;group&#34;: &#34;Chainguard UIDP of the organization&#34; } } Service: registry - Charts Method: AddChart Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v1/repos Ce-Specversion: 1.0 Ce-Subject: UIDP of the destination organization Ce-Time: 2026-09-29T17:51:13.409606773Z Ce-Type: dev.chainguard.api.platform.registry.chart.added.v1 Content-Length: 208 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;repos&#34;: [ { &#34;created&#34;: true, &#34;id&#34;: &#34;The UIDP of the created repo&#34;, &#34;name&#34;: &#34;The path of the created repo relative to the destination organization&#34; } ] } } Service: registry - Registry Method: CreateRepo Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v1/repos Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific repository Ce-Time: 2026-09-29T17:51:13.41489018Z Ce-Type: dev.chainguard.api.platform.registry.repo.created.v1 Content-Length: 243 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;The identifier of this specific repository&#34;, &#34;name&#34;: &#34;The name is the human-readable name of the repository&#34;, &#34;sync_config&#34;: { &#34;expiration&#34;: {}, &#34;source&#34;: &#34;Repo ID to sync from&#34; } } } Method: UpdateRepo Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v1/repos Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific repository Ce-Time: 2026-09-29T17:51:13.415121534Z Ce-Type: dev.chainguard.api.platform.registry.repo.updated.v1 Content-Length: 243 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;The identifier of this specific repository&#34;, &#34;name&#34;: &#34;The name is the human-readable name of the repository&#34;, &#34;sync_config&#34;: { &#34;expiration&#34;: {}, &#34;source&#34;: &#34;Repo ID to sync from&#34; } } } Method: DeleteRepo Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v1/repos Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific repository Ce-Time: 2026-09-29T17:51:13.415260286Z Ce-Type: dev.chainguard.api.platform.registry.repo.deleted.v1 Content-Length: 116 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;The identifier of this specific repository&#34; } } Method: CreateTag Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v1/tags Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific tag Ce-Time: 2026-09-29T17:51:13.415423188Z Ce-Type: dev.chainguard.api.platform.registry.tag.created.v1 Content-Length: 197 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;digest&#34;: &#34;The digest of the manifest with this tag&#34;, &#34;id&#34;: &#34;The identifier of this specific tag&#34;, &#34;name&#34;: &#34;The unique name of the tag&#34; } } Method: UpdateTag Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v1/tags Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific tag Ce-Time: 2026-09-29T17:51:13.415591058Z Ce-Type: dev.chainguard.api.platform.registry.tag.updated.v1 Content-Length: 197 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;digest&#34;: &#34;The digest of the manifest with this tag&#34;, &#34;id&#34;: &#34;The identifier of this specific tag&#34;, &#34;name&#34;: &#34;The unique name of the tag&#34; } } Method: DeleteTag Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v1/tags Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific tag Ce-Time: 2026-09-29T17:51:13.415732426Z Ce-Type: dev.chainguard.api.platform.registry.tag.deleted.v1 Content-Length: 109 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;The identifier of this specific tag&#34; } } Service: v1 - Bindings Method: CreateBinding Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/policies/v1/bindings Ce-Specversion: 1.0 Ce-Subject: UIDP of the binding Ce-Time: 2026-09-29T17:51:13.401932004Z Ce-Type: dev.chainguard.api.policies.bindings.created.v1 Content-Length: 245 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;created_at&#34;: {}, &#34;id&#34;: &#34;UIDP of the binding&#34;, &#34;mode&#34;: 1, &#34;policy&#34;: &#34;UIDP of the policy bound to the parent&#34;, &#34;resource_types&#34;: [ &#34;Resource type(s) the binding applies to&#34; ], &#34;updated_at&#34;: {} } } Method: UpdateBinding Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/policies/v1/bindings Ce-Specversion: 1.0 Ce-Subject: UIDP of the binding Ce-Time: 2026-09-29T17:51:13.402181653Z Ce-Type: dev.chainguard.api.policies.bindings.updated.v1 Content-Length: 245 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;created_at&#34;: {}, &#34;id&#34;: &#34;UIDP of the binding&#34;, &#34;mode&#34;: 1, &#34;policy&#34;: &#34;UIDP of the policy bound to the parent&#34;, &#34;resource_types&#34;: [ &#34;Resource type(s) the binding applies to&#34; ], &#34;updated_at&#34;: {} } } Method: DeleteBinding Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/policies/v1/bindings Ce-Specversion: 1.0 Ce-Subject: UIDP of the binding Ce-Time: 2026-09-29T17:51:13.402386761Z Ce-Type: dev.chainguard.api.policies.bindings.deleted.v1 Content-Length: 93 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the binding&#34; } } Service: v1 - Overrides Method: CreateOverride Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/policies/v1/overrides Ce-Specversion: 1.0 Ce-Subject: UIDP of the override Ce-Time: 2026-09-29T17:51:13.402572046Z Ce-Type: dev.chainguard.api.policies.overrides.created.v1 Content-Length: 303 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;created_at&#34;: {}, &#34;created_by&#34;: &#34;Identity of the actor that created the override&#34;, &#34;digest&#34;: &#34;Digest of the image being waived&#34;, &#34;id&#34;: &#34;UIDP of the override&#34;, &#34;policy_id&#34;: &#34;UIDP of the policy being waived&#34;, &#34;reason&#34;: &#34;Justification for the waiver&#34; } } Method: DeleteOverride Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/policies/v1/overrides Ce-Specversion: 1.0 Ce-Subject: UIDP of the override Ce-Time: 2026-09-29T17:51:13.402778914Z Ce-Type: dev.chainguard.api.policies.overrides.deleted.v1 Content-Length: 94 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the override&#34; } } Service: v1 - Policies Method: CreatePolicy Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/policies/v1/policies Ce-Specversion: 1.0 Ce-Subject: UIDP of the policy Ce-Time: 2026-09-29T17:51:13.401186704Z Ce-Type: dev.chainguard.api.policies.policies.created.v1 Content-Length: 337 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;created_at&#34;: {}, &#34;description&#34;: &#34;Description of the policy&#34;, &#34;expression&#34;: &#34;Rego expression that defines the policy&#34;, &#34;id&#34;: &#34;UIDP of the policy&#34;, &#34;name&#34;: &#34;Name of the policy&#34;, &#34;policy_type&#34;: 2, &#34;supported_resource_type&#34;: &#34;Versioned resource type the policy supports&#34;, &#34;updated_at&#34;: {} } } Method: UpdatePolicy Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/policies/v1/policies Ce-Specversion: 1.0 Ce-Subject: UIDP of the policy Ce-Time: 2026-09-29T17:51:13.401464416Z Ce-Type: dev.chainguard.api.policies.policies.updated.v1 Content-Length: 337 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;created_at&#34;: {}, &#34;description&#34;: &#34;Description of the policy&#34;, &#34;expression&#34;: &#34;Rego expression that defines the policy&#34;, &#34;id&#34;: &#34;UIDP of the policy&#34;, &#34;name&#34;: &#34;Name of the policy&#34;, &#34;policy_type&#34;: 2, &#34;supported_resource_type&#34;: &#34;Versioned resource type the policy supports&#34;, &#34;updated_at&#34;: {} } } Method: DeletePolicy Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/policies/v1/policies Ce-Specversion: 1.0 Ce-Subject: UIDP of the policy Ce-Time: 2026-09-29T17:51:13.40170205Z Ce-Type: dev.chainguard.api.policies.policies.deleted.v1 Content-Length: 92 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the policy&#34; } } Service: v2beta1 - AccountAssociationsService Method: CreateAccountAssociation Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/accountAssociations Ce-Specversion: 1.0 Ce-Subject: UIDP with which this account information is associated Ce-Time: 2026-09-29T17:51:13.407668464Z Ce-Type: dev.chainguard.api.iam.account_associations.created.v1 Content-Length: 385 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;amazon&#34;: { &#34;account&#34;: &#34;Amazon account ID (if applicable)&#34; }, &#34;description&#34;: &#34;description of this association&#34;, &#34;google&#34;: { &#34;project_id&#34;: &#34;Google Cloud Project ID (if applicable)&#34;, &#34;project_number&#34;: &#34;Google Cloud Project Number (if applicable)&#34; }, &#34;group&#34;: &#34;UIDP with which this account information is associated&#34;, &#34;name&#34;: &#34;group name&#34; } } Method: DeleteAccountAssociation Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/accountAssociations Ce-Specversion: 1.0 Ce-Subject: UIDP of the group whose associations will be deleted Ce-Time: 2026-09-29T17:51:13.407835278Z Ce-Type: dev.chainguard.api.iam.account_associations.deleted.v1 Content-Length: 129 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;group&#34;: &#34;UIDP of the group whose associations will be deleted&#34; } } Method: UpdateAccountAssociation Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/accountAssociations Ce-Specversion: 1.0 Ce-Subject: UIDP with which this account information is associated Ce-Time: 2026-09-29T17:51:13.408121541Z Ce-Type: dev.chainguard.api.iam.account_associations.updated.v1 Content-Length: 336 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;amazon&#34;: { &#34;account&#34;: &#34;amazon account if applicable&#34; }, &#34;description&#34;: &#34;group description&#34;, &#34;google&#34;: { &#34;project_id&#34;: &#34;project id if applicable&#34;, &#34;project_number&#34;: &#34;project number if applicable&#34; }, &#34;group&#34;: &#34;UIDP with which this account information is associated&#34;, &#34;name&#34;: &#34;group name&#34; } } Service: v2beta1 - ExternalGroupRoleMappingsService Method: CreateExternalGroupRoleMapping Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/externalGroupRoleMappings Ce-Specversion: 1.0 Ce-Subject: UIDP of the mapping Ce-Time: 2026-09-29T17:51:13.404253018Z Ce-Type: dev.chainguard.api.iam.external_group_role_mappings.created.v1 Content-Length: 290 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;external_group_id&#34;: &#34;The IdP group identifier&#34;, &#34;id&#34;: &#34;UIDP of the mapping&#34;, &#34;identity_provider_uidp&#34;: &#34;UIDP of the identity provider&#34;, &#34;role_uidp&#34;: &#34;UIDP of the Chainguard role&#34;, &#34;scope&#34;: &#34;UIDP of the group where the role applies&#34; } } Method: DeleteExternalGroupRoleMapping Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/externalGroupRoleMappings Ce-Specversion: 1.0 Ce-Subject: UIDP of the mapping Ce-Time: 2026-09-29T17:51:13.405759369Z Ce-Type: dev.chainguard.api.iam.external_group_role_mappings.deleted.v1 Content-Length: 93 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the mapping&#34; } } Method: BatchDeleteExternalGroupRoleMappings Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/externalGroupRoleMappings:batchDelete Ce-Specversion: 1.0 Ce-Subject: UIDP of the identity provider Ce-Time: 2026-09-29T17:51:13.405963493Z Ce-Type: dev.chainguard.api.iam.external_group_role_mappings.deleted.batch.v1 Content-Length: 346 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;items&#34;: [ { &#34;external_group_id&#34;: &#34;The IdP group identifier&#34;, &#34;id&#34;: &#34;UIDP of the mapping&#34;, &#34;identity_provider_uidp&#34;: &#34;UIDP of the identity provider&#34;, &#34;role_uidp&#34;: &#34;UIDP of the Chainguard role&#34;, &#34;scope&#34;: &#34;UIDP of the group where the role applies&#34; } ], &#34;parent_id&#34;: &#34;UIDP of the identity provider&#34; } } Service: v2beta1 - GroupInvitesService Method: CreateGroupInvite Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/groupInvites Ce-Specversion: 1.0 Ce-Subject: group UIDP under which this invite resides Ce-Time: 2026-09-29T17:51:13.408612616Z Ce-Type: dev.chainguard.api.iam.group_invite.created.v1 Content-Length: 145 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;expiration&#34;: { &#34;seconds&#34;: 100 }, &#34;id&#34;: &#34;group UIDP under which this invite resides&#34; } } Method: DeleteGroupInvite Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/groupInvites Ce-Specversion: 1.0 Ce-Subject: UIDP of the record Ce-Time: 2026-09-29T17:51:13.408895999Z Ce-Type: dev.chainguard.api.iam.group_invite.deleted.v1 Content-Length: 92 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the record&#34; } } Service: v2beta1 - GroupsService Method: DeleteGroup Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/groups Ce-Specversion: 1.0 Ce-Subject: UIDP of the record Ce-Time: 2026-09-29T17:51:13.409200677Z Ce-Type: dev.chainguard.api.iam.group.deleted.v1 Content-Length: 92 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the record&#34; } } Method: CreateGroup Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/groups Ce-Specversion: 1.0 Ce-Subject: group UIDP under which this group resides Ce-Time: 2026-09-29T17:51:13.409334061Z Ce-Type: dev.chainguard.api.iam.group.created.v1 Content-Length: 169 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;description&#34;: &#34;group description&#34;, &#34;id&#34;: &#34;group UIDP under which this group resides&#34;, &#34;name&#34;: &#34;group name&#34; } } Method: UpdateGroup Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/groups Ce-Specversion: 1.0 Ce-Subject: group UIDP under which this group resides Ce-Time: 2026-09-29T17:51:13.409439567Z Ce-Type: dev.chainguard.api.iam.group.updated.v1 Content-Length: 169 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;description&#34;: &#34;group description&#34;, &#34;id&#34;: &#34;group UIDP under which this group resides&#34;, &#34;name&#34;: &#34;group name&#34; } } Service: v2beta1 - IdentitiesService Method: CreateIdentity Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identities Ce-Specversion: 1.0 Ce-Subject: UIDP of identity Ce-Time: 2026-09-29T17:51:13.411277794Z Ce-Type: dev.chainguard.api.iam.identity.created.v1 Content-Length: 329 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;identity&#34;: { &#34;Relationship&#34;: null, &#34;description&#34;: &#34;The human readable description of identity&#34;, &#34;id&#34;: &#34;The unique identifier of this specific identity&#34;, &#34;name&#34;: &#34;The human readable name of identity&#34; }, &#34;parent_id&#34;: &#34;The Group UIDP path under which the new Identity resides&#34; } } Method: DeleteIdentity Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identities Ce-Specversion: 1.0 Ce-Subject: UIDP of the record Ce-Time: 2026-09-29T17:51:13.411526795Z Ce-Type: dev.chainguard.api.iam.identity.deleted.v1 Content-Length: 92 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the record&#34; } } Method: UpdateIdentity Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identities Ce-Specversion: 1.0 Ce-Subject: The unique identifier of this specific identity Ce-Time: 2026-09-29T17:51:13.411714056Z Ce-Type: dev.chainguard.api.iam.identity.updated.v1 Content-Length: 245 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;Relationship&#34;: null, &#34;description&#34;: &#34;The human readable description of identity&#34;, &#34;id&#34;: &#34;The unique identifier of this specific identity&#34;, &#34;name&#34;: &#34;The human readable name of identity&#34; } } Method: UpdateIdentityMetadata Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identities:updateIdentityMetadata Ce-Specversion: 1.0 Ce-Subject: The caller&#39;s identity UID Ce-Time: 2026-09-29T17:51:13.411888846Z Ce-Type: dev.chainguard.api.iam.identity.metadata.updated.v1 Content-Length: 135 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;name&#34;: &#34;The caller&#39;s display name&#34;, &#34;uid&#34;: &#34;The caller&#39;s identity UID&#34; } } Service: v2beta1 - IdentityProvidersService Method: CreateIdentityProvider Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of identity provider Ce-Time: 2026-09-29T17:51:13.412202619Z Ce-Type: dev.chainguard.api.iam.identity_providers.created.v1 Content-Length: 378 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;identity_provider&#34;: { &#34;Configuration&#34;: null, &#34;description&#34;: &#34;The human readable description of identity provider&#34;, &#34;id&#34;: &#34;The UIDP of the IAM group to nest this identity provider under&#34;, &#34;name&#34;: &#34;The human readable name of identity provider&#34; }, &#34;parent_id&#34;: &#34;The UIDP of the IAM group to nest this identity provider under&#34; } } Method: UpdateIdentityProvider Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identityProviders Ce-Specversion: 1.0 Ce-Subject: The UIDP of the IAM group to nest this identity provider under Ce-Time: 2026-09-29T17:51:13.412428358Z Ce-Type: dev.chainguard.api.iam.identity_providers.updated.v1 Content-Length: 279 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;Configuration&#34;: null, &#34;description&#34;: &#34;The human readable description of identity provider&#34;, &#34;id&#34;: &#34;The UIDP of the IAM group to nest this identity provider under&#34;, &#34;name&#34;: &#34;The human readable name of identity provider&#34; } } Method: DeleteIdentityProvider Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of the IdP Ce-Time: 2026-09-29T17:51:13.412577405Z Ce-Type: dev.chainguard.api.iam.identity_providers.deleted.v1 Content-Length: 89 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UIDP of the IdP&#34; } } Method: GenerateScimToken Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of the identity provider Ce-Time: 2026-09-29T17:51:13.412730396Z Ce-Type: dev.chainguard.api.iam.identity_providers.scim_token.generated.v1 Content-Length: 250 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;endpoint_url&#34;: &#34;SCIM endpoint URL for the identity provider&#34;, &#34;etag&#34;: &#34;Opaque version of the SCIM configuration&#34;, &#34;expire_time&#34;: {}, &#34;identity_provider_uid&#34;: &#34;UIDP of the identity provider&#34; } } Method: RegenerateScimToken Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of the identity provider Ce-Time: 2026-09-29T17:51:13.412894626Z Ce-Type: dev.chainguard.api.iam.identity_providers.scim_token.regenerated.v1 Content-Length: 319 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;endpoint_url&#34;: &#34;SCIM endpoint URL for the identity provider&#34;, &#34;etag&#34;: &#34;Opaque version of the SCIM configuration&#34;, &#34;expire_time&#34;: {}, &#34;identity_provider_uid&#34;: &#34;UIDP of the identity provider&#34;, &#34;previous_token_expire_time&#34;: {}, &#34;requested_overlap&#34;: { &#34;seconds&#34;: 3600 } } } Method: RevokeScimToken Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of the identity provider Ce-Time: 2026-09-29T17:51:13.413085151Z Ce-Type: dev.chainguard.api.iam.identity_providers.scim_token.revoked.v1 Content-Length: 189 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;etag&#34;: &#34;Opaque version of the SCIM configuration&#34;, &#34;identity_provider_uid&#34;: &#34;UIDP of the identity provider&#34;, &#34;revoke_time&#34;: {} } } Method: SetScimEnabled Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/identityProviders Ce-Specversion: 1.0 Ce-Subject: UIDP of the identity provider Ce-Time: 2026-09-29T17:51:13.413193441Z Ce-Type: dev.chainguard.api.iam.identity_providers.scim_enabled.updated.v1 Content-Length: 187 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;enabled&#34;: true, &#34;etag&#34;: &#34;Opaque version of the SCIM configuration&#34;, &#34;identity_provider_uid&#34;: &#34;UIDP of the identity provider&#34; } } Service: v2beta1 - OverlayBindingsService Method: CreateOverlayBinding Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/overlayBindings Ce-Specversion: 1.0 Ce-Subject: The identifier of this overlay binding Ce-Time: 2026-09-29T17:51:13.403010772Z Ce-Type: dev.chainguard.api.platform.registry.overlay_binding.created.v1 Content-Length: 449 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;overlay&#34;: { &#34;config&#34;: { &#34;contents&#34;: { &#34;packages&#34;: [ &#34;The APK package names the attached overlay adds&#34; ] } }, &#34;name&#34;: &#34;The unique name of the attached overlay&#34;, &#34;uid&#34;: &#34;The identifier of the attached overlay&#34; }, &#34;repo&#34;: &#34;The identifier of the repo this binding applies to&#34;, &#34;tag_selector&#34;: { &#34;kind&#34;: 1, &#34;tags&#34;: [ &#34;The exact tag names this binding applies to&#34; ] }, &#34;uid&#34;: &#34;The identifier of this overlay binding&#34; } } Method: UpdateOverlayBinding Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/overlayBindings Ce-Specversion: 1.0 Ce-Subject: The identifier of this overlay binding Ce-Time: 2026-09-29T17:51:13.403309706Z Ce-Type: dev.chainguard.api.platform.registry.overlay_binding.updated.v1 Content-Length: 449 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;overlay&#34;: { &#34;config&#34;: { &#34;contents&#34;: { &#34;packages&#34;: [ &#34;The APK package names the attached overlay adds&#34; ] } }, &#34;name&#34;: &#34;The unique name of the attached overlay&#34;, &#34;uid&#34;: &#34;The identifier of the attached overlay&#34; }, &#34;repo&#34;: &#34;The identifier of the repo this binding applies to&#34;, &#34;tag_selector&#34;: { &#34;kind&#34;: 1, &#34;tags&#34;: [ &#34;The exact tag names this binding applies to&#34; ] }, &#34;uid&#34;: &#34;The identifier of this overlay binding&#34; } } Method: DeleteOverlayBinding Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/overlayBindings Ce-Specversion: 1.0 Ce-Subject: The identifier of the deleted overlay binding Ce-Time: 2026-09-29T17:51:13.403536709Z Ce-Type: dev.chainguard.api.platform.registry.overlay_binding.deleted.v1 Content-Length: 120 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;uid&#34;: &#34;The identifier of the deleted overlay binding&#34; } } Service: v2beta1 - OverlaysService Method: CreateOverlay Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/overlays Ce-Specversion: 1.0 Ce-Subject: The identifier of this overlay Ce-Time: 2026-09-29T17:51:13.413329257Z Ce-Type: dev.chainguard.api.platform.registry.overlay.created.v1 Content-Length: 224 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;config&#34;: { &#34;contents&#34;: { &#34;packages&#34;: [ &#34;The APK package names this overlay adds&#34; ] } }, &#34;name&#34;: &#34;The unique name of the overlay&#34;, &#34;uid&#34;: &#34;The identifier of this overlay&#34; } } Method: UpdateOverlay Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/overlays Ce-Specversion: 1.0 Ce-Subject: The identifier of this overlay Ce-Time: 2026-09-29T17:51:13.413453961Z Ce-Type: dev.chainguard.api.platform.registry.overlay.updated.v1 Content-Length: 224 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;config&#34;: { &#34;contents&#34;: { &#34;packages&#34;: [ &#34;The APK package names this overlay adds&#34; ] } }, &#34;name&#34;: &#34;The unique name of the overlay&#34;, &#34;uid&#34;: &#34;The identifier of this overlay&#34; } } Method: DeleteOverlay Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/overlays Ce-Specversion: 1.0 Ce-Subject: The identifier of the deleted overlay Ce-Time: 2026-09-29T17:51:13.413556123Z Ce-Type: dev.chainguard.api.platform.registry.overlay.deleted.v1 Content-Length: 112 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;uid&#34;: &#34;The identifier of the deleted overlay&#34; } } Service: v2beta1 - ReposService Method: CreateRepo Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/repos Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific repository Ce-Time: 2026-09-29T17:51:13.393757992Z Ce-Type: dev.chainguard.api.platform.registry.repo.created.v1 Content-Length: 243 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;The identifier of this specific repository&#34;, &#34;name&#34;: &#34;The name is the human-readable name of the repository&#34;, &#34;sync_config&#34;: { &#34;expiration&#34;: {}, &#34;source&#34;: &#34;Repo ID to sync from&#34; } } } Method: UpdateRepo Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/repos Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific repository Ce-Time: 2026-09-29T17:51:13.394149385Z Ce-Type: dev.chainguard.api.platform.registry.repo.updated.v1 Content-Length: 243 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;The identifier of this specific repository&#34;, &#34;name&#34;: &#34;The name is the human-readable name of the repository&#34;, &#34;sync_config&#34;: { &#34;expiration&#34;: {}, &#34;source&#34;: &#34;Repo ID to sync from&#34; } } } Method: DeleteRepo Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/repos Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific repository Ce-Time: 2026-09-29T17:51:13.394402906Z Ce-Type: dev.chainguard.api.platform.registry.repo.deleted.v1 Content-Length: 116 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;The identifier of this specific repository&#34; } } Method: UpdateRepoReadme Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/repos Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific repository Ce-Time: 2026-09-29T17:51:13.395287902Z Ce-Type: dev.chainguard.api.platform.registry.repo.updated.v1 Content-Length: 243 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;The identifier of this specific repository&#34;, &#34;name&#34;: &#34;The name is the human-readable name of the repository&#34;, &#34;sync_config&#34;: { &#34;expiration&#34;: {}, &#34;source&#34;: &#34;Repo ID to sync from&#34; } } } Service: v2beta1 - RoleBindingsService Method: CreateRoleBinding Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/roleBindings Ce-Specversion: 1.0 Ce-Subject: UIDP of the Role to bind Ce-Time: 2026-09-29T17:51:13.399576064Z Ce-Type: dev.chainguard.api.iam.rolebindings.created.v1 Content-Length: 261 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;parent&#34;: &#34;The Group UIDP path under which the new RoleBinding resides&#34;, &#34;role_binding&#34;: { &#34;id&#34;: &#34;UID of this role binding&#34;, &#34;identity&#34;: &#34;UID of the Identity to bind&#34;, &#34;role&#34;: &#34;UIDP of the Role to bind&#34; } } } Method: DeleteRoleBinding Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/roleBindings Ce-Specversion: 1.0 Ce-Subject: UID of the record Ce-Time: 2026-09-29T17:51:13.399776164Z Ce-Type: dev.chainguard.api.iam.rolebindings.deleted.v1 Content-Length: 91 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UID of the record&#34; } } Method: BatchCreateRoleBindings Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/roleBindings:batchCreate Ce-Specversion: 1.0 Ce-Subject: UID of this role binding, under a parent group UIDP Ce-Time: 2026-09-29T17:51:13.399990487Z Ce-Type: dev.chainguard.api.iam.rolebindings.created.batch.v1 Content-Length: 220 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;role_bindings&#34;: [ { &#34;id&#34;: &#34;UID of this role binding, under a parent group UIDP&#34;, &#34;identity&#34;: &#34;UID of the Identity to bind&#34;, &#34;role&#34;: &#34;UIDP of the Role to bind&#34; } ] } } Method: UpdateRoleBinding Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/roleBindings Ce-Specversion: 1.0 Ce-Subject: UID of this role binding Ce-Time: 2026-09-29T17:51:13.400251567Z Ce-Type: dev.chainguard.api.iam.rolebindings.updated.v1 Content-Length: 173 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;UID of this role binding&#34;, &#34;identity&#34;: &#34;UID of the Identity to bind&#34;, &#34;role&#34;: &#34;UIDP of the Role to bind&#34; } } Service: v2beta1 - RolesService Method: CreateRole Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/roles Ce-Specversion: 1.0 Ce-Subject: UIDP of the role under the group Ce-Time: 2026-09-29T17:51:13.400499705Z Ce-Type: dev.chainguard.api.iam.roles.created.v1 Content-Length: 159 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;description&#34;: &#34;role description&#34;, &#34;name&#34;: &#34;role name&#34;, &#34;uid&#34;: &#34;UIDP of the role under the group&#34; } } Method: UpdateRole Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/roles Ce-Specversion: 1.0 Ce-Subject: UIDP of the role under the group Ce-Time: 2026-09-29T17:51:13.400695733Z Ce-Type: dev.chainguard.api.iam.roles.updated.v1 Content-Length: 159 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;description&#34;: &#34;role description&#34;, &#34;name&#34;: &#34;role name&#34;, &#34;uid&#34;: &#34;UIDP of the role under the group&#34; } } Method: DeleteRole Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/roles Ce-Specversion: 1.0 Ce-Subject: UIDP of the role to delete Ce-Time: 2026-09-29T17:51:13.400887114Z Ce-Type: dev.chainguard.api.iam.roles.deleted.v1 Content-Length: 101 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;uid&#34;: &#34;UIDP of the role to delete&#34; } } Service: v2beta1 - TagsService Method: CreateTag Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/tags Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific tag Ce-Time: 2026-09-29T17:51:13.409824032Z Ce-Type: dev.chainguard.api.platform.registry.tag.created.v1 Content-Length: 197 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;digest&#34;: &#34;The digest of the manifest with this tag&#34;, &#34;id&#34;: &#34;The identifier of this specific tag&#34;, &#34;name&#34;: &#34;The unique name of the tag&#34; } } Method: DeleteTag Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/registry/v2beta1/tags Ce-Specversion: 1.0 Ce-Subject: The identifier of this specific tag Ce-Time: 2026-09-29T17:51:13.41000031Z Ce-Type: dev.chainguard.api.platform.registry.tag.deleted.v1 Content-Length: 109 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;id&#34;: &#34;The identifier of this specific tag&#34; } } Service: v2beta1 - TermsService Method: AcceptTerms Example HTTP Headers POST / HTTP/1.1 Host: console-api.enforce.dev Accept-Encoding: gzip Authorization: Bearer oidctoken Ce-Audience: customer Ce-Group: UID of parent group Ce-Id: cloudevent generated UUID Ce-Source: https://console-api.enforce.dev/iam/v2beta1/terms Ce-Specversion: 1.0 Ce-Subject: Chainguard UIDP of the organization Ce-Time: 2026-09-29T17:51:13.403766303Z Ce-Type: dev.chainguard.api.iam.terms.accepted.v1 Content-Length: 159 Content-Type: application/json User-Agent: Chainguard Enforce Example HTTP Body { &#34;actor&#34;: { &#34;subject&#34;: &#34;identity that triggered the event&#34; }, &#34;body&#34;: { &#34;document_ids&#34;: [ &#34;guardener-tos.v1&#34;, &#34;sfdpa.v1&#34; ], &#34;group&#34;: &#34;Chainguard UIDP of the organization&#34; } }
