Skip to content

AI Defense Activity GraphQL API types

Every named type reachable from a query or mutation in this schema, grouped by kind.

Jump to: Objects · Enums · Input objects · Scalars

Objects

Actor

Entity (typically a user) that performed an activity.

Fields

Field Type Description
name String! Display name of the actor.
type ActorType! Kind of actor.
id String! Public actor id: the stable actor identifier (e.g. a user SID) when resolved, otherwise an opaque temporary id derived from the actor's name and type.

AiModel

The concrete LLM model used in this activity. Null when undeterminable.

Fields

Field Type Description
id String! Stable model identifier from the provider API (e.g. 'gpt-4o-2024-08-06'). Empty when not reported.
name String! Human-readable model name (e.g. 'GPT-4o', 'Claude Sonnet'). Empty when not reported.
version String! Model version identifier. Empty when not reported.

Application

AI application accessed during an activity (e.g. ChatGPT, Claude, Cursor). Includes the application's stable identity and the catalog attributes available for the activity.

Fields

Field Type Description
id String! Stable application identifier (slug).
name String! Application display name.
categories [String!]! Primary application categories (functional use cases — e.g. 'general_assistant', 'code_assistant').
trainingPolicies [String!]! Training-data policies (e.g. 'opt_out_available', 'no_training', 'enterprise_no_training').
compliance [String!]! Compliance certifications (e.g. 'soc2_type2', 'gdpr_compliant').

ApplicationProvider

Company that owns/ships the AI application (e.g. OpenAI for ChatGPT, Anthropic for Claude, Cursor Inc. for Cursor). Sourced from the AI Defense provider catalog. Distinct from ModelProvider, which describes the LLM-serving org for an individual activity.

Fields

Field Type Description
id String! Stable provider identifier (slug).
name String! Provider display name (e.g. 'OpenAI', 'Anthropic').

Device

Endpoint device on which an activity was observed.

Fields

Field Type Description
id String! Unique device identifier.
type DeviceType! Device kind.
platform DevicePlatform! Device operating-system platform.
name String! Device display name. Empty when not resolved.

ModelProvider

Company providing the LLM used for inference in this specific activity. Distinct from ApplicationProvider: for first-party apps (ChatGPT) they coincide; for model-agnostic apps (Cursor) the activity's modelProvider may differ from the application's provider — or be null when the provider can't be determined.

Fields

Field Type Description
name String! Model provider name (e.g. 'OpenAI', 'Anthropic').

PageInfo

Cursor-based pagination metadata following the Relay Connections spec.

Fields

Field Type Description
hasNextPage Boolean! True if more results exist after the current page.
hasPreviousPage Boolean! True if results exist before the current page.
startCursor String Cursor of the first item in the current page, if any.
endCursor String Cursor of the last item in the current page, if any.

SecureAIAppInventoryEntry

One AI application in the tenant inventory.

Fields

Field Type Description
id ID! Stable AI app identifier for the grouped app.
name String! Human-readable AI app name (e.g. 'ChatGPT', 'Claude').
provider String! AI service provider/vendor (e.g. 'OpenAI', 'Anthropic').
risk RiskLevel! Risk classification for the app.
trainingPolicy String Whether this provider uses customer input data to train or improve models.
trainsOnUserData Boolean True when trainingPolicies indicates training by default (trains_on_input or opt_out_available); false for known no-training policies; null when unknown or ambiguous.
complianceCertificates [String!]! Compliance certifications the AI app holds.
categories [String!]! Functional categories describing the AI application.
trainingPolicies [String!]! Training policies for this provider.
usage Int64! Total number of activities/events for this app in the time window.
uniqueUsers Int64! Distinct users that interacted with this app in the time window.
lastSeen Time Most recent activity timestamp for this app in the time window. Null when the app has no observed activity in the window (catalog-only entry).
unsanctionedCount Int64! Number of this app's activities in the time window that are unsanctioned.

SecureAIAppInventoryPage

Offset/limit paginated list of inventory entries returned by Query.appInventory``.

Fields

Field Type Description
entries [SecureAIAppInventoryEntry!]! Entries on the current page.
totalCount Int64! Total number of entries matching the current filter across all pages.
offset Int64! Zero-based offset applied to this page after filtering and sorting.
limit Int64! Maximum number of entries requested for this page, after server-side capping.
hasNextPage Boolean! True if more results exist after the current offset/limit window.
hasPreviousPage Boolean! True if results exist before the current offset.

SecureAIAppInventorySummary

Aggregate counts for AI applications in the inventory window.

Fields

Field Type Description
totalApps Int64! Total number of AI applications observed in the window.
criticalRisk Int64! Apps whose Secure AI catalog risk band is CRITICAL.
highRisk Int64! Apps whose Secure AI catalog risk band is HIGH.
mediumRisk Int64! Apps whose Secure AI catalog risk band is MEDIUM.
lowRisk Int64! Apps whose Secure AI catalog risk band is LOW.
infoRisk Int64! Apps whose Secure AI catalog risk band is INFO.
unknownRisk Int64! Apps explicitly classified UNKNOWN. Always zero on a successful response.
errorRisk Int64! Apps whose Secure AI catalog risk could not be resolved.
trainsOnData Int64 Number of AI applications known to train on user data, including apps that train by default with an opt-out available.
unsanctionedCount Int64! Number of apps with at least one unsanctioned (NOT_COVERED and allowed) activity in the window.

SecureAIInventorySummary

Combined inventory summary for apps and users.

Fields

Field Type Description
apps SecureAIAppInventorySummary! Application inventory aggregate counts.
users SecureAIUserInventorySummary! User inventory aggregate counts.

SecureAIOrganizationDetails

Organization-details selections captured during onboarding.

Fields

Field Type Description
role String The user's role in the organization.
numberOfUsers String User-count range bucket (e.g. 1-50, 51-200).
aiFamiliarity String Self-reported familiarity with AI tools (none/basic/intermediate/advanced).
industry String The organization's industry/sector.

SecureAIProductIntegration

Product-integration selections captured during onboarding — fields grow additively.

Fields

Field Type Description
acknowledgedCheckKeys [String!]! Keys of the product-integration readiness checks the user has acknowledged.
selectedProductKeys [ProductKey!] Products the user picked on the Sensor Selector onboarding step (see ProductKey). Null until the step has been captured; an empty list means the user visited the step without selecting anything.

SecureAITenantOnboarding

The onboarding portion of a tenant's settings: status plus captured selections.

Fields

Field Type Description
status SecureAITenantOnboardingStatus! Onboarding status. COMPLETED means onboarding is finished.
selections SecureAITenantOnboardingSelections Selections captured across the onboarding flow. Null until anything is captured.

SecureAITenantOnboardingSelections

All onboarding selections a tenant has captured. Each field is a step's typed selection and is null until that step captures input.

Fields

Field Type Description
organizationDetails SecureAIOrganizationDetails Organization-details selections. Null until captured.
productIntegration SecureAIProductIntegration Product-integration selections. Null until captured.
passedStepKeys [String!]! Keys of onboarding steps the user has advanced past via Continue. Grows monotonically during the flow; entries are pruned when a step's key drops from the composed flow (e.g. deselecting a sensor removes its setup step). Empty for tenants who haven't advanced any step yet.

SecureAITenantSettings

Persisted AI Defense settings for the calling tenant. Onboarding today; extended with new fields as more tenant settings land.

Fields

Field Type Description
onboarding SecureAITenantOnboarding! Onboarding portion of the tenant's settings.
licenseState SecureAILicenseState License lifecycle state, independent of onboarding progress. Null until the license is synced for this tenant.
gracePeriodEndsAt Time When the current grace period ends. Null when not in a grace period.
licenseExpiryDate Time The underlying license's expiry date. Null if not tracked/known.
licenseType String License type when known/retained by the sync source (e.g. TRIAL). Null if not tracked.
licenseId String Identifier of the license record, when known/retained by the sync source. Null if not tracked.
refreshedAt Time When the license details were last fetched. Null until the first successful fetch.
renewalPending Boolean! True when a license renewal has been detected (a genuinely different license than before) that is not acknowledged yet. False both when there is no pending renewal and when the license has never been synced for this tenant.
createdBy String! Opaque subject ID of the creator (server-set from the JWT, never input).
createdByType SecureAIAuditActorType! Audit classification of the creator, derived from auth metadata when available.
updatedBy String Opaque subject ID of the last editor. Null until the first update.
updatedByType SecureAIAuditActorType Audit classification of the last editor. Null until the first update.
createdAt Time! When the settings record was first created.
updatedAt Time! When the settings record was last updated.

SecureAITimestamp

Time interval associated with an observed activity.

Fields

Field Type Description
startTime Time! Inclusive start of the activity interval.
endTime Time! Inclusive end of the activity interval.

SecureAIUserApp

A single AI application a specific user interacted with, returned by userApps. Lightweight reference (identity, provider, risk) — one entry for each app counted in a user inventory entry's appsUsed.

Fields

Field Type Description
id ID! Stable AI app identifier.
name String! Display name of the AI app.
provider String! AI service provider/vendor (e.g. 'OpenAI', 'Anthropic'). Empty when unknown.
risk RiskLevel! Risk classification for the app.
usage Int64! Number of this user's activities with this app in the time window.
policyViolations Int64! Number of this user's activities with this app where the security infrastructure took a non-allowed action.
notCoveredCount Int64! Number of this user's activities with this app in the time window that are unsanctioned (not covered by a policy and allowed).
firstUsed Time First observed activity timestamp for this user with this app in the time window.
lastUsed Time Most recent activity timestamp for this user with this app in the time window.

SecureAIUserAppsPage

Offset/limit paginated list of one user's apps returned by Query.userApps``.

Fields

Field Type Description
entries [SecureAIUserApp!]! Entries on the current page.
totalCount Int64! Total number of apps the user used across all pages.
offset Int64! Zero-based offset applied to this page after sorting.
limit Int64! Maximum number of entries requested for this page, after server-side capping.
hasNextPage Boolean! True if more results exist after the current offset/limit window.
hasPreviousPage Boolean! True if results exist before the current offset.

SecureAIUserInventoryEntry

One user in the tenant inventory, grouped by stable actor id or, when that is missing, by actor name and type. Activities with neither an actor id nor an actor name are excluded. Shape follows the Top Users aggregation but removes trend fields — inventory is "who is using AI", not "who is trending".

Fields

Field Type Description
id String! Public actor id: the stable actor identifier (e.g. a user SID) when resolved, otherwise an opaque temporary id derived from the actor's name and type. Matches ActivityFilter.actorIds, defines the inventory row's grouping identity, and can be used to drill down into the user's activity.
name String! Most-common non-empty actor name observed for this id, typically an email address.
risk RiskLevel! Worst-observed full-fidelity risk classification for the user over the time window.
appsUsed Int64! Number of distinct AI applications used by this user in the time window. Use the userApps query to page the actual app breakdown for one user.
usage Int64! Total number of this user's activities in the time window.
policyViolations Int64! Number of activities where the security infrastructure took a non-allowed action against the user.
topAppId ID Stable id of the AI app the user interacted with most often in the time window. Null when the user has no activity with a usable app identifier.
topApp String Name of the AI app the user interacted with most often in the time window. Null when the user has no activity carrying a usable app participant.
firstSeen Time First observed activity timestamp for this user in the time window.
lastSeen Time Most recent activity timestamp for this user in the time window.
unsanctionedCount Int64! Number of this user's activities in the time window that are unsanctioned.

SecureAIUserInventoryPage

Offset/limit paginated list of inventory entries returned by Query.userInventory``.

Fields

Field Type Description
entries [SecureAIUserInventoryEntry!]! Entries on the current page.
totalCount Int64! Total number of entries matching the current filter across all pages.
offset Int64! Zero-based offset applied to this page after filtering and sorting.
limit Int64! Maximum number of entries requested for this page, after server-side capping.
hasNextPage Boolean! True if more results exist after the current offset/limit window.
hasPreviousPage Boolean! True if results exist before the current offset.

SecureAIUserInventorySummary

Aggregate counts for actors represented in the user inventory window. An actor is eligible when both its stable ID and display name are present, regardless of actor type, and is grouped by stable ID. Each eligible actor is counted once under its worst-observed risk level, so the six per-level counts sum to totalUsers.

Fields

Field Type Description
totalUsers Int64! Total number of distinct eligible actor IDs observed in the window.
criticalRisk Int64! Users whose worst-observed risk level is CRITICAL.
highRisk Int64! Users whose worst-observed risk level is HIGH.
mediumRisk Int64! Users whose worst-observed risk level is MEDIUM.
lowRisk Int64! Users whose worst-observed risk level is LOW.
infoRisk Int64! Users whose worst-observed risk level is INFO.
unknownRisk Int64! Users whose worst-observed risk level is UNKNOWN (severity undetermined).
withViolations Int64! Number of observed users with at least one blocked, modified, or warned activity.
unsanctionedCount Int64! Number of users with at least one unsanctioned (NOT_COVERED and allowed) activity in the window.

SecureAiActivity

A single observed Secure AI activity event.

Fields

Field Type Description
id ID! Unique activity identifier.
timestamp SecureAITimestamp! Time interval the activity covered.
actor Actor! Actor that performed the activity.
application Application! AI application accessed during the activity (always present, derived from the HOST participant).
applicationProvider ApplicationProvider Company that owns/ships the application. Null when the provider can't be determined for the activity.
modelProvider ModelProvider Company providing the LLM used in this activity. Null when undeterminable (e.g. Cursor).
model AiModel Concrete LLM model used in this activity. Null when undeterminable.
sensors [Sensor!]! Sensors that observed the activity.
action Action Enforcement action applied. Null if the source did not report one.
policyId String Stable identifier of the policy that produced the action. Null for older activities that do not record it. Use this for filtering. Use policy as the human-readable name.
policy String! Name of the policy that produced the action. Empty string when not populated.
device Device! Endpoint device on which the activity was observed.
risk RiskLevel! Risk classification for the activity (full-fidelity severity).
appRisk AppRisk! App-level risk signal (SAFE/CHECK_POLICY/DANGEROUS), derived from risk.
additionalData JSON! Per-activity enrichment signals: * sourceAddresses — originating IP(s) observed for the activity. Get-only: populated by the single-activity query (Query.activity(id)); the list query (Query.activities`) clears this field and returns an empty object to keep list responses small. Use the single-activity` query to fetch enrichment.
aggregationCount Int64! Number of correlated telemetry records assembled into this activity. Minimum 1.
isUnsanctioned Boolean! True when no policy covers the AI app for the tenant and the activity was allowed. False for covered apps, for uncovered activity that was warned, blocked, or modified, and for unclassified activity.

SecureAiActivityConnection

Relay-style paginated list of activities returned by Query.activities``.

Fields

Field Type Description
activities [SecureAiActivity!]! Activities on the current page.
pageInfo PageInfo! Cursor pagination metadata.
totalCount Int64! Total number of activities matching the current filter across all pages.

Sensor

Sensor that observed an activity.

Fields

Field Type Description
id String! Unique sensor identifier.
name String! Sensor display name.
type SensorType Normalized sensor category when classified; null when missing or unclassified in source data.
vendor String! Sensor vendor (e.g. 'Sophos'). Empty when not reported.

Enums

Action

Outcome of policy enforcement applied to an AI activity.

Values

Value Description
UNKNOWN Source did not report an enforcement action.
ALLOWED Activity was permitted by policy.
BLOCKED Activity was blocked by policy.
WARNED Activity was permitted but the user was shown a warning.
MODIFIED Activity was permitted with content modification.

ActorType

Type of actor that performed an activity.

Values

Value Description
UNKNOWN Actor type was not reported or could not be resolved.
SYSTEM OS or platform-level actor (e.g. kernel, service host).
SERVICE Service account or daemon.
USER Human user.
PROCESS Running process — Actor`.name` is the executable name,Actor.id is the process UUID.
NETWORK_ENTITY Non-user network entity — Actor`.name` is a hostname or IP;Actor.id is a stable host id or address:port.

AppRisk

3-state app-risk signal (SAFE / CHECK_POLICY / DANGEROUS) surfaced on `SecureAiActivity.appRisk. Derived from theactivity's runtimerisk`: HIGH/CRITICAL → DANGEROUS, MEDIUM/UNKNOWN → CHECK_POLICY, INFO/LOW → SAFE.

Values

Value Description
SAFE Risk is below the review threshold (INFO/LOW).
CHECK_POLICY Severity is borderline or undetermined (MEDIUM/UNKNOWN) — review policy.
DANGEROUS Elevated risk (HIGH/CRITICAL).

DevicePlatform

Operating-system platform on which an activity was observed.

Values

Value Description
WINDOWS
LINUX
MACOS
IOS
ANDROID
UNKNOWN

DeviceType

Endpoint device kind on which an activity was observed.

Values

Value Description
COMPUTER
SERVER
SECURITY_VM
UNKNOWN

ProductKey

Product the user selected on the onboarding Sensor Selector step — not SensorType, since Server has no telemetry counterpart. ENDPOINT/FIREWALL reuse SensorType's string values.

Values

Value Description
ENDPOINT
FIREWALL
SERVER

ReportRelativeTimeFramePeriodV2

Reuses the platform-wide ReportRelativeTimeFramePeriodV2 enum defined by report-service / reporting-api so that Apollo Federation merges cleanly.

Values

Value Description
SINCE_BEGINNING_OF_DAY Midnight UTC of the current day to now.
SINCE_BEGINNING_OF_WEEK_SUNDAY Most recent Sunday 00:00 UTC to now.
SINCE_BEGINNING_OF_WEEK_MONDAY Most recent Monday 00:00 UTC to now.
SINCE_BEGINNING_OF_MONTH First day of the current month 00:00 UTC to now.
SINCE_BEGINNING_OF_QUARTER First day of the current quarter 00:00 UTC to now.
SINCE_BEGINNING_OF_YEAR First day of the current year 00:00 UTC to now.
LAST_MONTH Entirety of the previous calendar month.
LAST_QUARTER Entirety of the previous calendar quarter.
LAST_YEAR Entirety of the previous calendar year.

RiskLevel

Risk classification shared across Secure AI activities, top apps, top users, the inventory views, and the AI Risk Assessment reports.

Values

Value Description
UNKNOWN Risk was not classified.
INFO Informational only.
LOW Low risk.
MEDIUM Medium risk.
HIGH High risk.
CRITICAL Critical risk.
ERROR The Secure AI catalog risk lookup could not resolve a usable risk for this app.

SecureAIAppInventorySortField

Field by which Query.appInventory`` can be sorted.

Values

Value Description
NAME Sort by app name.
RISK Sort by risk level.
USAGE Sort by activity volume in the window.
UNIQUE_USERS Sort by distinct user count in the window.
LAST_SEEN Sort by most recent observed activity timestamp.
UNSANCTIONED_COUNT Sort by unsanctioned activity count in the window.
TRAINS_ON_USER_DATA Sort by whether the app trains on user data.

SecureAIAuditActorType

Audit classification derived from authentication metadata.

Values

Value Description
UNKNOWN
INTERNAL
EXTERNAL

SecureAILicenseState

License lifecycle state for the tenant's Secure AI entitlement, independent of onboarding progress. Set by Sophos from the tenant's license. API calls cannot change it.

Values

Value Description
ACTIVE
GRACE_PERIOD
EXPIRED

SecureAISortField

Field by which Query.activities`` can be sorted.

Values

Value Description
TIMESTAMP Sort by activity timestamp.
ACTION Sort by enforcement action.
ACTOR_NAME Sort by actor name.
PROVIDER_NAME Sort by provider name.
DEVICE_NAME

SecureAISortOrder

Sort direction.

Values

Value Description
ASC Ascending order.
DESC Descending order.

SecureAITenantOnboardingStatus

Tenant onboarding status. COMPLETED means onboarding is finished.

Values

Value Description
NOT_STARTED
IN_PROGRESS
COMPLETED

SecureAIUserAppsSortField

Field to sort a userApps result by.

Values

Value Description
USAGE Sort by the number of the user's activities with the app (default).
NAME Sort by app display name.
RISK Sort by app worst-observed risk level.
POLICY_VIOLATIONS Sort by policy violation count in the window.
NOT_COVERED_COUNT Sort by unsanctioned (shadow AI) activity count in the window.
FIRST_USED Sort by first observed activity timestamp with the app.
LAST_USED Sort by most recent observed activity timestamp with the app.

SecureAIUserInventorySortField

Field by which Query.userInventory`` can be sorted.

Values

Value Description
NAME Sort by user name.
RISK Sort by risk level.
APPS_USED Sort by apps used.
USAGE Sort by activity volume in the window.
LAST_SEEN Sort by most recent observed activity timestamp.
UNSANCTIONED_COUNT Sort by unsanctioned activity count in the window.
POLICY_VIOLATIONS Sort by policy violation count in the window.

SensorType

Enforcement sensor category. Null on `Sensor.type` when the source value is missing or unclassified.

Values

Value Description
ENDPOINT Sophos Endpoint Web Control.
FIREWALL SFOS web filtering.
DNS DNS Protection (SWG).
BROWSER Protected Browser.

Input objects

SecureAIAppInventoryFilter

Filter predicates for Query.appInventory`. All fields are AND-combined. Mirrors the filter shape of [SecureAiActivityFilter`] but scoped to the per-app inventory dimensions.

Fields

Field Type Description
search String Case-insensitive literal substring match against app id, name, or provider. Blank input applies no constraint.
riskLevels [RiskLevel!] Match apps with at least one of these risk levels.
categories [String!] Match apps with at least one of these application categories.
complianceCertificates [String!] Match apps with at least one of these compliance certifications.
trainingPolicies [String!] Match apps with at least one of these training policies.
trainsOnUserData Boolean When true, match apps whose trainingPolicies indicate training by default (trains_on_input or opt_out_available); when false, match apps with known no-training policies.
appId String Match apps by their exact id.
isUnsanctioned Boolean When true, match only apps with at least one unsanctioned (NOT_COVERED and allowed) activity; when false, match only sanctioned apps. Omit for no filter.
timeRange SecureAITimeRange Provide absolute times or a relative preset. Default cannot live on the relative field itself because it would auto-fill when only startTime/endTime is provided, triggering the mutual-exclusivity error. Default: {relative: SINCE_BEGINNING_OF_DAY}.

SecureAIAppInventorySortInput

Sort specification for Query.appInventory`` — field and direction.

Fields

Field Type Description
field SecureAIAppInventorySortField! Field to sort by.
order SecureAISortOrder! Sort direction. Defaults to descending. Default: DESC.

SecureAIInventorySummaryFilter

Filter predicates for Query.inventorySummary``.

Fields

Field Type Description
timeRange SecureAITimeRange Default: {relative: SINCE_BEGINNING_OF_DAY}.

SecureAIOrganizationDetailsInput

Organization-details selections to persist.

Fields

Field Type Description
role String
numberOfUsers String
aiFamiliarity String
industry String

SecureAIProductIntegrationInput

Product-integration selections to persist.

Fields

Field Type Description
acknowledgedCheckKeys [String!]!
selectedProductKeys [ProductKey!] Products the user picked on the Sensor Selector onboarding step (see ProductKey). Omit or send null to leave unset; empty list means visited-but-no-selection.

SecureAITenantOnboardingInput

Onboarding section of a settings update: the new status and current selections.

Fields

Field Type Description
status SecureAITenantOnboardingStatus!
selections SecureAITenantOnboardingSelectionsInput
basePolicy SecureAIPolicyDefinition Base policy to create when completing onboarding for a tenant that has none: a PolicyCreateInput whose kind must be TENANT_BASE. Accepted only with status COMPLETED and never persisted with the settings. With this set, the base policy is created with createPolicy before completion is recorded. When omitted, completion is recorded without checking for a base policy. On failure the status is not changed and the error carries extensions.code: - BASE_POLICY_REQUIRED: reserved; not returned while omitted definitions skip the base policy check. - BASE_POLICY_REJECTED: createPolicy rejected the request; the message and extensions.upstreamErrors ([{message, code}]) carry its errors verbatim.

SecureAITenantOnboardingSelectionsInput

Full replacement set of onboarding selections. Omit a field to leave it empty.

Fields

Field Type Description
organizationDetails SecureAIOrganizationDetailsInput
productIntegration SecureAIProductIntegrationInput
passedStepKeys [String!] Full replacement set of passed step keys. Omit (or send null) to leave the persisted value unchanged; send an empty list to clear.

SecureAITimeRange

Time range filter for activities. When omitted, the API defaults to SINCE_BEGINNING_OF_DAY. Provide either absolute times (startTime/endTime) or a relative preset — not both. Using both returns a validation error.

Fields

Field Type Description
startTime Time Absolute start time. Cannot be combined with relative.
endTime Time Absolute end time. Cannot be combined with relative.
relative ReportRelativeTimeFramePeriodV2 Relative preset (e.g. SINCE_BEGINNING_OF_DAY). Cannot be combined with startTime/endTime.

SecureAIUpdateTenantSettingsInput

Settings to update for the calling tenant. Each section is optional so a caller can update just the parts it owns; an omitted section is left untouched. Today only onboarding exists.

Fields

Field Type Description
onboarding SecureAITenantOnboardingInput

SecureAIUserAppsFilter

Filter predicates for Query.userApps``. All fields are AND-combined.

Fields

Field Type Description
search String Case-insensitive literal substring match against app id, name, or provider. Blank input applies no constraint.
riskLevels [RiskLevel!] Match apps with at least one of these risk levels.
hasPolicyViolations Boolean When true, match only apps with at least one policy violation for this user; when false, match only apps with none. Omit for no filter.
hasNotCoveredCount Boolean When true, match only apps with at least one unsanctioned (NOT_COVERED and allowed) activity for this user; when false, match only apps with none. Omit for no filter.
timeRange SecureAITimeRange Provide absolute times or a relative preset. Default cannot live on the relative field itself because it would auto-fill when only startTime/endTime is provided, triggering the mutual-exclusivity error. Default: {relative: SINCE_BEGINNING_OF_DAY}.

SecureAIUserAppsSortInput

Sort specification for Query.userApps`` — field and direction.

Fields

Field Type Description
field SecureAIUserAppsSortField! Field to sort by.
order SecureAISortOrder! Sort direction. Defaults to descending. Default: DESC.

SecureAIUserInventoryFilter

Filter predicates for Query.userInventory``. All fields are AND-combined.

Fields

Field Type Description
search String Case-insensitive literal substring match against user id or name. Blank input applies no constraint.
riskLevels [RiskLevel!] Match users with at least one of these risk levels.
topAppIds [ID!] Match users whose derived top app id is one of these values.
usedAppIds [ID!] Match users who used at least one of these AI apps in the window, regardless of whether it is their top app. Use it to list the users of an app. Unlike topAppIds, this matches any app the user touched, and the matched-user count equals the app's unique-user total.
isUnsanctioned Boolean When true, match only users with at least one unsanctioned (NOT_COVERED and allowed) activity; when false, match only sanctioned users. Omit for no filter.
timeRange SecureAITimeRange Provide absolute times or a relative preset. Default cannot live on the relative field itself because it would auto-fill when only startTime/endTime is provided, triggering the mutual-exclusivity error. Default: {relative: SINCE_BEGINNING_OF_DAY}.

SecureAIUserInventorySortInput

Sort specification for Query.userInventory`` — field and direction.

Fields

Field Type Description
field SecureAIUserInventorySortField! Field to sort by.
order SecureAISortOrder! Sort direction. Defaults to descending. Default: DESC.

SecureAiActivityFilter

Filter predicates for Query.activities`. All fields are AND-combined; within an array, values are OR-combined (IN`-clause semantics). An empty/null array applies no constraint.

Fields

Field Type Description
search String Case-insensitive literal substring match across activity id, application id/name, application-provider id/name, model id/name/provider, actor id/name, device id/name, and policy name. The search fields are OR-combined; this predicate remains AND-combined with every other filter field. Blank input applies no constraint.
actorType ActorType Match against actor type.
modelProviderName String Match against the model provider name (e.g. 'OpenAI', 'Anthropic') — the LLM-serving org.
applicationCategories [String!] Match against application's category list. Matches activities whose application has any of these.
applicationCompliance [String!] Match against application's compliance posture.
applicationTrainingPolicies [String!] Match against application's training policies. Matches activities having any of the given policies.
sensorTypes [SensorType!] Keep only activities where at least one sensor has one of these types.
actions [Action!] Filter by enforcement actions. Matches when an activity's action is in this list.
risks [RiskLevel!] Filter by risk levels. Matches when an activity's risk is in this list.
actorIds [String!] Filter by public actor ids (`Actor.id`, stable or temporary fallback). Case-significant exact match.
applicationIds [ID!] Filter by application identifiers (Application.id — slug). Case-significant exact match.
deviceIds [String!] Filter by device identifiers (`Device.id`). Case-significant exact match.
deviceTypes [DeviceType!] Filter by observed device kinds (Device.type).
devicePlatforms [DevicePlatform!] Filter by observed device platforms (Device.platform).
policyIds [ID!] Filter by stable policy identifiers. Matches when an activity's matched policy id is in this list. Names can change and historical events may carry prior names — filter by id.
isUnsanctioned Boolean Match activities by their isUnsanctioned value. True matches allowed activities for AI apps not covered by a policy; false matches every other activity. Omit for no filter.
hasPolicy Boolean When true, match activities with a policy attribution; when false, match activities without a policy attribution. Omit for no filter.
timeRange SecureAITimeRange Provide absolute times or a relative preset. Default cannot live on the relative field itself because it would auto-fill when only startTime/endTime is provided, triggering the mutual-exclusivity error. Default: {relative: SINCE_BEGINNING_OF_DAY}.

SortInput

Sort specification — field and direction.

Fields

Field Type Description
field SecureAISortField! Field to sort by.
order SecureAISortOrder! Sort direction. Defaults to descending. Default: DESC.

Scalars

Int64

64-bit signed integer. Use instead of Int when values may exceed the GraphQL Int 32-bit range.

JSON

The JSON scalar type represents JSON values as specified by ECMA-404.

SecureAIPolicyDefinition

A PolicyCreateInput from the AI Defense Policy GraphQL API, as a JSON object. It is passed to createPolicy unchanged, which validates it.

Time

ISO 8601 timestamp.