using System;
using System.Collections.Generic;
using HandlebarsDotNet;
using JetBrains.Annotations;
using Newtonsoft.Json;
using WireMock.Admin.Mappings;
using WireMock.Handlers;
using WireMock.Logging;
using WireMock.Matchers;
using WireMock.Types;
#if USE_ASPNETCORE
using Microsoft.Extensions.DependencyInjection;
#endif
namespace WireMock.Settings
{
///
/// WireMockServerSettings
///
public class WireMockServerSettings : IWireMockServerSettings
{
///
[PublicAPI]
public int? Port { get; set; }
///
[PublicAPI]
public bool? UseSSL { get; set; }
///
[PublicAPI]
public bool? StartAdminInterface { get; set; }
///
[PublicAPI]
public bool? ReadStaticMappings { get; set; }
///
[PublicAPI]
public bool? WatchStaticMappings { get; set; }
///
[PublicAPI]
public bool? WatchStaticMappingsInSubdirectories { get; set; }
///
[PublicAPI]
public IProxyAndRecordSettings ProxyAndRecordSettings { get; set; }
///
[PublicAPI]
public string[] Urls { get; set; }
///
[PublicAPI]
public int StartTimeout { get; set; } = 10000;
///
[PublicAPI]
public bool? AllowPartialMapping { get; set; }
///
[PublicAPI]
public string AdminUsername { get; set; }
///
[PublicAPI]
public string AdminPassword { get; set; }
///
[PublicAPI]
public string AdminAzureADTenant { get; set; }
///
[PublicAPI]
public string AdminAzureADAudience { get; set; }
///
[PublicAPI]
public int? RequestLogExpirationDuration { get; set; }
///
[PublicAPI]
public int? MaxRequestLogCount { get; set; }
///
[PublicAPI]
[JsonIgnore]
public Action