// Copyright (c) Microsoft. All rights reserved. using Microsoft.Agents.AI.Purview.Models.Common; using Microsoft.Agents.AI.Purview.Models.Requests; namespace Microsoft.Agents.AI.Purview.Models.Jobs; /// /// Class representing a job that refreshes the protection scopes cache in the background. /// /// /// Used by the parallel protection scopes retrieval path to warm the cache without blocking the /// foreground ProcessContent call. /// internal sealed class ScopeRetrievalJob : BackgroundJobBase { /// /// Initializes a new instance of the class. /// /// The protection scopes request to send to Purview. /// The cache key used to store the response. /// The original process content request that triggered scope retrieval. public ScopeRetrievalJob(ProtectionScopesRequest request, ProtectionScopesCacheKey cacheKey, ProcessContentRequest processContentRequest) { this.Request = request; this.CacheKey = cacheKey; this.ProcessContentRequest = processContentRequest; } /// /// Gets the protection scopes request. /// public ProtectionScopesRequest Request { get; } /// /// Gets the cache key used to store the response. /// public ProtectionScopesCacheKey CacheKey { get; } /// /// Gets the original process content request that triggered scope retrieval. /// public ProcessContentRequest ProcessContentRequest { get; } }