//
#nullable disable
using System;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using OpenAI;
namespace OpenAI.Conversations
{
[Experimental("OPENAI001")]
public readonly partial struct IncludedConversationItemProperty : IEquatable
{
private readonly string _value;
private const string FileSearchCallResultsValue = "file_search_call.results";
private const string WebSearchCallResultsValue = "web_search_call.results";
private const string WebSearchCallActionSourcesValue = "web_search_call.action.sources";
private const string MessageInputImageUriValue = "message.input_image.image_url";
private const string ComputerCallOutputImageUriValue = "computer_call_output.output.image_url";
private const string CodeInterpreterCallOutputsValue = "code_interpreter_call.outputs";
private const string ReasoningEncryptedContentValue = "reasoning.encrypted_content";
private const string MessageOutputTextLogProbabilitiesValue = "message.output_text.logprobs";
public IncludedConversationItemProperty(string value)
{
Argument.AssertNotNull(value, nameof(value));
_value = value;
}
public static IncludedConversationItemProperty FileSearchCallResults { get; } = new IncludedConversationItemProperty(FileSearchCallResultsValue);
public static IncludedConversationItemProperty WebSearchCallResults { get; } = new IncludedConversationItemProperty(WebSearchCallResultsValue);
public static IncludedConversationItemProperty WebSearchCallActionSources { get; } = new IncludedConversationItemProperty(WebSearchCallActionSourcesValue);
public static IncludedConversationItemProperty MessageInputImageUri { get; } = new IncludedConversationItemProperty(MessageInputImageUriValue);
public static IncludedConversationItemProperty ComputerCallOutputImageUri { get; } = new IncludedConversationItemProperty(ComputerCallOutputImageUriValue);
public static IncludedConversationItemProperty CodeInterpreterCallOutputs { get; } = new IncludedConversationItemProperty(CodeInterpreterCallOutputsValue);
public static IncludedConversationItemProperty ReasoningEncryptedContent { get; } = new IncludedConversationItemProperty(ReasoningEncryptedContentValue);
public static IncludedConversationItemProperty MessageOutputTextLogProbabilities { get; } = new IncludedConversationItemProperty(MessageOutputTextLogProbabilitiesValue);
public static bool operator ==(IncludedConversationItemProperty left, IncludedConversationItemProperty right) => left.Equals(right);
public static bool operator !=(IncludedConversationItemProperty left, IncludedConversationItemProperty right) => !left.Equals(right);
public static implicit operator IncludedConversationItemProperty(string value) => new IncludedConversationItemProperty(value);
public static implicit operator IncludedConversationItemProperty?(string value) => value == null ? null : new IncludedConversationItemProperty(value);
[EditorBrowsable(EditorBrowsableState.Never)]
public override bool Equals(object obj) => obj is IncludedConversationItemProperty other && Equals(other);
public bool Equals(IncludedConversationItemProperty other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase);
[EditorBrowsable(EditorBrowsableState.Never)]
public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0;
public override string ToString() => _value;
}
}