// 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; }
}