// Copyright (c) Microsoft. All rights reserved.
using System.Text.Json.Serialization;
namespace Microsoft.Agents.AI.Hosting.OpenAI.Responses.Models;
///
/// Represents an agent identifier.
///
internal sealed record AgentId
{
///
/// Initializes a new instance of the class.
///
/// The agent ID type.
/// The name of the agent.
/// The version of the agent.
public AgentId(AgentIdType type, string name, string version)
{
this.Type = type;
this.Name = name;
this.Version = version;
}
///
/// The agent ID type.
///
[JsonPropertyName("type")]
public AgentIdType Type { get; init; }
///
/// The name of the agent.
///
[JsonPropertyName("name")]
public string Name { get; init; }
///
/// The version of the agent.
///
[JsonPropertyName("version")]
public string Version { get; init; }
}
///
/// Represents an agent ID type.
///
internal sealed record AgentIdType
{
///
/// Initializes a new instance of the class.
///
/// The type value.
public AgentIdType(string value)
{
this.Value = value;
}
///
/// The type value.
///
[JsonPropertyName("type")]
public string Value { get; init; }
}
///
/// Represents an agent reference.
///
internal sealed record AgentReference
{
///
/// The type of the reference (e.g., "agent" or "agent_reference").
///
[JsonPropertyName("type")]
public string Type { get; init; } = "agent_reference";
///
/// The name of the agent.
///
[JsonPropertyName("name")]
public required string Name { get; init; }
///
/// The version of the agent.
///
[JsonPropertyName("version")]
public string? Version { get; init; }
}