objectActions
query
Returns actions available for execution across a heterogeneous set of objects (assets, vulnerability detections, and future bound types such as patches or installed software). This is the canonical query for action discovery and is intended to replace the asset-only `actions` query, which will be deprecated in a future revision once all callers have migrated. New callers should use `objectActions` exclusively. **Behaviour** Each `ActionsInput` entry specifies exactly one variant (enforced by `@oneOf`). The resolver returns the merged list of actions that are executable on every supplied target, after applying: * Common checks: user permissions, bulk-operation support across all targets, and resource-level availability. * Object-type-specific condition checks (e.g. remediation type availability for vulnerability detections, live-agent presence for asset-scoped actions). Targets of different variants may be mixed freely in a single call. **Migration from `actions`** ```graphql # Before actions(resourceIds: [$id1, $id2]) # After objectActions(targets: [ { asset: { assetId: $id1 } }, { asset: { assetId: $id2 } } ]) ``` **Extensibility** New object kinds are added by introducing new `ActionsInput` variants — no enum to maintain and no breaking changes for existing callers. [Action]
Arguments
targets
[ActionsInput!]!
required
One entry per object to evaluate. Mix variants freely.
usageContexts
[ActionUsageContextInput!]
Filter actions by their availability in specific contexts.
Example Operation
# N-able GraphQL Operation

query ObjectActions($targets: [ActionsInput!]!, $usageContexts: [ActionUsageContextInput!]) {
  objectActions(targets: $targets, usageContexts: $usageContexts) {
    name
    category
    subcategory
    isAvailable
    unavailabilityReasons
    isBulkAllowed
    key
    description
  }
}