// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using System.ComponentModel.DataAnnotations;
namespace {{YOUR_NAMESPACE}}.Configuration;
///
/// Bot related authentication configuration.
///
public class BotAuthenticationOptions
{
///
/// The client (application) ID of an App Registration in the tenant.
///
[Required(ErrorMessage = "Client id is required")]
[RegularExpression(@"^[0-9A-Fa-f\-]{36}$")]
public string ClientId { get; set; }
///
/// The client (application) Secret of an App Registration in the tenant.
///
[Required(ErrorMessage = "Client secret is required")]
public string ClientSecret { get; set; }
///
/// Authority URL that is used in OAuth On-behalf-of flow.
///
[Required(ErrorMessage = "OAuth authority is required")]
[RegularExpression(@"^http(s)?://[-a-zA-Z0-9@:%._\+~#=/]{1,100}$")]
public string OAuthAuthority { get; set; }
///
/// Application ID URI.
///
[Required(ErrorMessage = "Application id uri is required")]
public string ApplicationIdUri { get; set; }
///
/// Login authentication start page endpoint.
///
[Required(ErrorMessage = "Login authentication start page endpoint is required")]
public string InitiateLoginEndpoint { get; set; }
}