using System;
using System.Collections.Generic;
using System.Text;
using WireMock.Models;
using WireMock.Types;
// ReSharper disable once CheckNamespace
namespace WireMock.Util;
///
/// IBodyData
///
public interface IBodyData
{
///
/// The body (as byte array).
///
byte[]? BodyAsBytes { get; set; }
///
/// Gets or sets the body as a file.
///
string? BodyAsFile { get; set; }
///
/// Is the body as file cached?
///
bool? BodyAsFileIsCached { get; set; }
///
/// The body (as JSON object).
/// Also used for ProtoBuf.
///
object? BodyAsJson { get; set; }
///
/// Gets or sets a value indicating whether child objects to be indented according to the Newtonsoft.Json.JsonTextWriter.Indentation and Newtonsoft.Json.JsonTextWriter.IndentChar settings.
///
bool? BodyAsJsonIndented { get; set; }
///
/// The body as string, this is defined when BodyAsString or BodyAsJson are not null.
///
string? BodyAsString { get; set; }
///
/// The body as Form UrlEncoded dictionary.
///
IDictionary? BodyAsFormUrlEncoded { get; set; }
///
/// The detected body type (detection based on body content).
///
BodyType? DetectedBodyType { get; set; }
///
/// The detected body type (detection based on Content-Type).
///
BodyType? DetectedBodyTypeFromContentType { get; set; }
///
/// The detected compression.
///
string? DetectedCompression { get; set; }
///
/// The body encoding.
///
Encoding? Encoding { get; set; }
///
/// Defines if this BodyData is the result of a dynamically created response-string. (
///
public string? IsFuncUsed { get; set; }
#region ProtoBuf
///
/// Gets or sets the proto definition.
///
public Func? ProtoDefinition { get; set; }
///
/// Gets or sets the full type of the protobuf (request/response) message object. Format is "{package-name}.{type-name}".
///
public string? ProtoBufMessageType { get; set; }
#endregion
}