Files
csob/Credentials/CsobCredentials.cs
T
JiriUhlir 09db30a3ca first
2026-06-18 11:05:46 +02:00

32 lines
1.3 KiB
C#

using System.Security.Cryptography.X509Certificates;
namespace Csob.Credentials;
/// <summary>
/// Fully resolved set of per-request credentials and PSU context used to call the ČSOB PSD2 API.
/// Built from request headers by <see cref="RequestCredentialsProvider"/>; never logged.
/// </summary>
public sealed record CsobCredentials
{
/// <summary>OAuth2 Bearer access token (forwarded as <c>Authorization: Bearer</c>).</summary>
public required string AccessToken { get; init; }
/// <summary>ČSOB application API key (forwarded as <c>APIKEY</c>).</summary>
public required string ApiKey { get; init; }
/// <summary>TPP organisation name (forwarded as <c>TPP-Name</c>).</summary>
public required string TppName { get; init; }
/// <summary>
/// eIDAS client certificate (with private key) for mutual TLS. Optional at the type level so
/// metadata endpoints can resolve context, but required for any real upstream call.
/// </summary>
public X509Certificate2? Certificate { get; init; }
/// <summary>Whether the PSU is online for this request (<c>User-Involved</c>); defaults to false.</summary>
public bool UserInvolved { get; init; }
/// <summary>Optional PSU IP address (<c>User-IP-Address</c>).</summary>
public string? UserIpAddress { get; init; }
}