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