<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "TrustInsights",
  "identifier" : "/documentation/TrustInsights/InsightEvaluator",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Trust Insights"
    ],
    "preciseIdentifier" : "s:13TrustInsights16InsightEvaluatorC"
  },
  "title" : "InsightEvaluator"
}
-->

# InsightEvaluator

A class that defines data and methods the framework uses to perform evaluations.

```
final class InsightEvaluator
```

## Topics

### Creating an evaluator

[`init()`](/documentation/TrustInsights/InsightEvaluator/init())

Creates a new insight evaluator object you use to request insights.

### Requesting and checking authorization status

[`func authorizationStatus<each I>(for: InsightEvaluator.InsightContext<repeat each I>) async throws -> InsightEvaluator.AuthorizationStatus`](/documentation/TrustInsights/InsightEvaluator/authorizationStatus(for:))

Returns an authorization status that indicates whether a person permitted the app to request evaluations for the given context.

[`func requestAuthorization<each I>(for: InsightEvaluator.InsightContext<repeat each I>) async throws -> InsightEvaluator.AuthorizationStatus`](/documentation/TrustInsights/InsightEvaluator/requestAuthorization(for:))

Requests authorization from a person to generate evaluations.

[`func requestEvaluation<each I>(context: InsightEvaluator.InsightContext<repeat each I>) async throws -> InsightEvaluation<repeat (each I).InsightType>`](/documentation/TrustInsights/InsightEvaluator/requestEvaluation(context:))

Requests the evaluation of insights.

[`enum AuthorizationStatus`](/documentation/TrustInsights/InsightEvaluator/AuthorizationStatus)

Values that indicate the status of the app’s authorization to request evaluations.

### Requesting an evaluation

[`struct InsightContext`](/documentation/TrustInsights/InsightEvaluator/InsightContext)

A structure that provides details about the evaluations to request and provides information the framework requires for the evaluation to take place.

[`struct InsightRequest`](/documentation/TrustInsights/InsightEvaluator/InsightRequest)

A structure you use to make a request for a specific insight.

[`protocol InsightRequestProtocol`](/documentation/TrustInsights/InsightEvaluator/InsightRequestProtocol)

A protocol that insight evaluation types conform to.

[`enum EvaluationError`](/documentation/TrustInsights/InsightEvaluator/EvaluationError)

Errors the framework can return if there are errors processing an evaluation request.

[`enum ModelVersion`](/documentation/TrustInsights/InsightEvaluator/ModelVersion)

Values that define the required model version of the insight.

[`enum OperationCategory`](/documentation/TrustInsights/InsightEvaluator/OperationCategory)

Values that represent the types of operation it’s possible to request evaluations for.

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)