diff --git a/.editorconfig b/.editorconfig
index 7f5816d5c..cc58091c6 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -167,13 +167,6 @@ dotnet_code_quality.CA2208.api_surface = public
dotnet_diagnostic.RS0030.severity = error
# https://github.com/dotnet/roslyn-analyzers/blob/main/src/PublicApiAnalyzers/Microsoft.CodeAnalysis.PublicApiAnalyzers.md
-dotnet_diagnostic.RS0051.severity = error
-dotnet_diagnostic.RS0052.severity = error
-dotnet_diagnostic.RS0053.severity = error
-dotnet_diagnostic.RS0054.severity = error
-dotnet_diagnostic.RS0055.severity = error
-dotnet_diagnostic.RS0057.severity = error
-dotnet_diagnostic.RS0058.severity = error
dotnet_diagnostic.RS0061.severity = error
# CA1000: Do not declare static members on generic types
diff --git a/src/Microsoft.Identity.Web.AgentIdentities/Microsoft.Identity.Web.AgentIdentities.csproj b/src/Microsoft.Identity.Web.AgentIdentities/Microsoft.Identity.Web.AgentIdentities.csproj
index 5479f27ff..6c910ed0e 100644
--- a/src/Microsoft.Identity.Web.AgentIdentities/Microsoft.Identity.Web.AgentIdentities.csproj
+++ b/src/Microsoft.Identity.Web.AgentIdentities/Microsoft.Identity.Web.AgentIdentities.csproj
@@ -19,8 +19,6 @@
-
-
diff --git a/src/Microsoft.Identity.Web.AgentIdentities/PublicAPI/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.AgentIdentities/PublicAPI/InternalAPI.Shipped.txt
deleted file mode 100644
index 7284e90de..000000000
--- a/src/Microsoft.Identity.Web.AgentIdentities/PublicAPI/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#nullable enable
-Microsoft.Identity.Web.AgentIdentities.AgentUserIdentityMsalAddIn
-Microsoft.Identity.Web.AgentIdentities.AgentUserIdentityMsalAddIn.AgentUserIdentityMsalAddIn() -> void
-static Microsoft.Identity.Web.AgentIdentities.AgentUserIdentityMsalAddIn.OnBeforeUserFicForAgentUserIdentityAsync(Microsoft.Identity.Client.AcquireTokenByUsernameAndPasswordConfidentialParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? options, System.Security.Claims.ClaimsPrincipal! user) -> System.Threading.Tasks.Task!
-static Microsoft.Identity.Web.AgentIdentityExtension.ForAgentIdentity(this Microsoft.Identity.Abstractions.AcquireTokenOptions! options, string! agentApplicationId) -> Microsoft.Identity.Abstractions.AcquireTokenOptions!
diff --git a/src/Microsoft.Identity.Web.Azure/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.Azure/InternalAPI.Shipped.txt
deleted file mode 100644
index 10f291a1e..000000000
--- a/src/Microsoft.Identity.Web.Azure/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-#nullable enable
-Microsoft.Identity.Web.MicrosoftIdentityTokenCredential.MicrosoftIdentityTokenCredential(Microsoft.Identity.Abstractions.ITokenAcquirerFactory! tokenAcquirerFactory, Microsoft.Identity.Web.ITokenAcquisitionHost! tokenAcquisitionHost) -> void
diff --git a/src/Microsoft.Identity.Web.Azure/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Azure/InternalAPI.Unshipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Azure/InternalAPI.Unshipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Azure/Microsoft.Identity.Web.Azure.csproj b/src/Microsoft.Identity.Web.Azure/Microsoft.Identity.Web.Azure.csproj
index 697258a9e..e8af7a2cb 100644
--- a/src/Microsoft.Identity.Web.Azure/Microsoft.Identity.Web.Azure.csproj
+++ b/src/Microsoft.Identity.Web.Azure/Microsoft.Identity.Web.Azure.csproj
@@ -1,4 +1,5 @@
+
Microsoft Identity Web.Azure
Microsoft Identity Web.Azure
@@ -8,13 +9,21 @@
README.md
+
True
\README.md
+
+
+
+
+
+
+
diff --git a/src/Microsoft.Identity.Web.Azure/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.Azure/PublicAPI/PublicAPI.Shipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Azure/PublicAPI.Shipped.txt
rename to src/Microsoft.Identity.Web.Azure/PublicAPI/PublicAPI.Shipped.txt
diff --git a/src/Microsoft.Identity.Web.Azure/PublicAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Azure/PublicAPI/PublicAPI.Unshipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Azure/PublicAPI.Unshipped.txt
rename to src/Microsoft.Identity.Web.Azure/PublicAPI/PublicAPI.Unshipped.txt
diff --git a/src/Microsoft.Identity.Web.Certificate/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.Certificate/InternalAPI.Shipped.txt
deleted file mode 100644
index f8d080bad..000000000
--- a/src/Microsoft.Identity.Web.Certificate/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-#nullable enable
-const Microsoft.Identity.Web.CertificateConstants.MediaTypePksc12 = "application/x-pkcs12" -> string!
-const Microsoft.Identity.Web.CertificateConstants.PersonalUserCertificateStorePath = "CurrentUser/My" -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.BothClientSecretAndCertificateProvided = "IDW10105: Both client secret and client certificate, cannot be included in the configuration of the web app when calling a web API. " -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.ClientCertificatesHaveExpiredOrCannotBeLoaded = "IDW10109: All client certificates passed to the configuration have expired or can't be loaded. " -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.ClientSecretAndCertificateNull = "IDW10104: Both client secret and client certificate cannot be null or whitespace, and only ONE must be included in the configuration of the web app when calling a web API. For instance, in the appsettings.json file. " -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.CustomProviderNameAlreadyExists = "IDW10111 The custom signed assertion provider '{0}' already exists, only the the first instance of ICustomSignedAssertionProvider with this name will be used." -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.CustomProviderNameNullOrEmpty = "IDW10112 The name of the custom signed assertion provider is null or empty." -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.CustomProviderNameNullOrEmpty = "IDW10112: You configured a custom signed assertion but did not specify a provider name in the CustomSignedAssertionProviderName property of the CredentialDescription. Please specify the name of the custom assertion provider." -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.CustomProviderNotFound = "IDW10113: The custom signed assertion provider with name '{0}' was not found. Was it registered in the service collection?" -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.CustomProviderNotFound = "IDW10113: You configured a custom signed assertion with provider name '{0}' but it was not found. Did you register it in the service collection? You need to add a reference to the credential package and call the appropriate registration method, e.g., services.AddOidcFic() or services.AddFmiSignedAssertion()." -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.CustomProviderSourceLoaderNullOrEmpty = "IDW10114 The dictionary of SourceLoaders for custom signed assertion providers is null or empty." -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.CustomProviderSourceLoaderNullOrEmpty = "IDW10114: You configured a custom signed assertion but no custom assertion providers have been registered. You need to add a reference to the credential package and call the appropriate registration method, e.g., services.AddOidcFic() or services.AddFmiSignedAssertion()." -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.FromStoreWithThumbprintIsObsolete = "IDW10803: Use FromStoreWithThumbprint instead, due to spelling error. " -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.IncorrectNumberOfUriSegments = "IDW10702: Number of URI segments is incorrect: {0}, URI: {1}. " -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.InvalidBase64UrlString = "IDW10601: Invalid Base64URL string. " -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.InvalidCertificateStorePath = "IDW10703: Certificate store path must be of the form 'StoreLocation/StoreName'. StoreLocation must be one of 'CurrentUser', 'LocalMachine'. StoreName must be empty or one of '{0}'. " -> string!
-const Microsoft.Identity.Web.CertificateErrorMessage.OnlyPkcs12IsSupported = "IDW10701: Only PKCS #12 content type is supported. Found Content-Type: {0}. " -> string!
-const Microsoft.Identity.Web.DefaultCredentialsLoader.nameMissing = "NameMissing" -> string!
-const Microsoft.Identity.Web.LoggerExtensions.nameMissing = "NameMissing" -> string!
-Microsoft.Identity.Web.Base64EncodedCertificateLoader
-Microsoft.Identity.Web.Base64EncodedCertificateLoader.Base64EncodedCertificateLoader() -> void
-Microsoft.Identity.Web.Base64EncodedCertificateLoader.CredentialSource.get -> Microsoft.Identity.Abstractions.CredentialSource
-Microsoft.Identity.Web.Base64EncodedCertificateLoader.LoadIfNeededAsync(Microsoft.Identity.Abstractions.CredentialDescription! credentialDescription, Microsoft.Identity.Abstractions.CredentialSourceLoaderParameters? credentialSourceLoaderParameters) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.CertificateConstants
-Microsoft.Identity.Web.CertificateDescription.Container.get -> string?
-Microsoft.Identity.Web.CertificateDescription.Container.set -> void
-Microsoft.Identity.Web.CertificateDescription.ReferenceOrValue.get -> string?
-Microsoft.Identity.Web.CertificateDescription.ReferenceOrValue.set -> void
-Microsoft.Identity.Web.CertificateErrorMessage
-Microsoft.Identity.Web.CertificateLoaderHelper
-Microsoft.Identity.Web.CertificateLoaderHelper.CertificateLoaderHelper() -> void
-Microsoft.Identity.Web.CustomSignedAssertionProviderNotFoundException
-Microsoft.Identity.Web.CustomSignedAssertionProviderNotFoundException.CustomSignedAssertionProviderNotFoundException(string! message) -> void
-Microsoft.Identity.Web.FromPathCertificateLoader
-Microsoft.Identity.Web.FromPathCertificateLoader.CredentialSource.get -> Microsoft.Identity.Abstractions.CredentialSource
-Microsoft.Identity.Web.FromPathCertificateLoader.FromPathCertificateLoader() -> void
-Microsoft.Identity.Web.FromPathCertificateLoader.LoadIfNeededAsync(Microsoft.Identity.Abstractions.CredentialDescription! credentialDescription, Microsoft.Identity.Abstractions.CredentialSourceLoaderParameters? _) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.KeyVaultCertificateLoader
-Microsoft.Identity.Web.KeyVaultCertificateLoader.CredentialSource.get -> Microsoft.Identity.Abstractions.CredentialSource
-Microsoft.Identity.Web.KeyVaultCertificateLoader.KeyVaultCertificateLoader() -> void
-Microsoft.Identity.Web.KeyVaultCertificateLoader.LoadIfNeededAsync(Microsoft.Identity.Abstractions.CredentialDescription! credentialDescription, Microsoft.Identity.Abstractions.CredentialSourceLoaderParameters? _) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.LoggerExtensions
-Microsoft.Identity.Web.SignedAssertionFilePathCredentialsLoader
-Microsoft.Identity.Web.SignedAssertionFilePathCredentialsLoader.CredentialSource.get -> Microsoft.Identity.Abstractions.CredentialSource
-Microsoft.Identity.Web.SignedAssertionFilePathCredentialsLoader.LoadIfNeededAsync(Microsoft.Identity.Abstractions.CredentialDescription! credentialDescription, Microsoft.Identity.Abstractions.CredentialSourceLoaderParameters? credentialSourceLoaderParameters) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.SignedAssertionFilePathCredentialsLoader.SignedAssertionFilePathCredentialsLoader(Microsoft.Extensions.Logging.ILogger? logger) -> void
-Microsoft.Identity.Web.SignedAssertionFromManagedIdentityCredentialLoader
-Microsoft.Identity.Web.SignedAssertionFromManagedIdentityCredentialLoader.CredentialSource.get -> Microsoft.Identity.Abstractions.CredentialSource
-Microsoft.Identity.Web.SignedAssertionFromManagedIdentityCredentialLoader.LoadIfNeededAsync(Microsoft.Identity.Abstractions.CredentialDescription! credentialDescription, Microsoft.Identity.Abstractions.CredentialSourceLoaderParameters? credentialSourceLoaderParameters) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.SignedAssertionFromManagedIdentityCredentialLoader.SignedAssertionFromManagedIdentityCredentialLoader(Microsoft.Extensions.Logging.ILogger! logger) -> void
-Microsoft.Identity.Web.StoreWithDistinguishedNameCertificateLoader
-Microsoft.Identity.Web.StoreWithDistinguishedNameCertificateLoader.CredentialSource.get -> Microsoft.Identity.Abstractions.CredentialSource
-Microsoft.Identity.Web.StoreWithDistinguishedNameCertificateLoader.LoadIfNeededAsync(Microsoft.Identity.Abstractions.CredentialDescription! credentialDescription, Microsoft.Identity.Abstractions.CredentialSourceLoaderParameters? _) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.StoreWithDistinguishedNameCertificateLoader.StoreWithDistinguishedNameCertificateLoader() -> void
-Microsoft.Identity.Web.StoreWithSubjectNameCertificateLoader
-Microsoft.Identity.Web.StoreWithSubjectNameCertificateLoader.CredentialSource.get -> Microsoft.Identity.Abstractions.CredentialSource
-Microsoft.Identity.Web.StoreWithSubjectNameCertificateLoader.LoadIfNeededAsync(Microsoft.Identity.Abstractions.CredentialDescription! credentialDescription, Microsoft.Identity.Abstractions.CredentialSourceLoaderParameters? _) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.StoreWithSubjectNameCertificateLoader.StoreWithSubjectNameCertificateLoader() -> void
-Microsoft.Identity.Web.StoreWithThumbprintCertificateLoader
-Microsoft.Identity.Web.StoreWithThumbprintCertificateLoader.CredentialSource.get -> Microsoft.Identity.Abstractions.CredentialSource
-Microsoft.Identity.Web.StoreWithThumbprintCertificateLoader.LoadIfNeededAsync(Microsoft.Identity.Abstractions.CredentialDescription! credentialDescription, Microsoft.Identity.Abstractions.CredentialSourceLoaderParameters? _) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.StoreWithThumbprintCertificateLoader.StoreWithThumbprintCertificateLoader() -> void
-static Microsoft.Identity.Web.Base64EncodedCertificateLoader.LoadFromBase64Encoded(string! certificateBase64, string! password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags x509KeyStorageFlags) -> System.Security.Cryptography.X509Certificates.X509Certificate2!
-static Microsoft.Identity.Web.Base64EncodedCertificateLoader.LoadFromBase64Encoded(string! certificateBase64, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags x509KeyStorageFlags) -> System.Security.Cryptography.X509Certificates.X509Certificate2!
-static Microsoft.Identity.Web.CertificateLoaderHelper.DetermineX509KeyStorageFlag() -> System.Security.Cryptography.X509Certificates.X509KeyStorageFlags
-static Microsoft.Identity.Web.CertificateLoaderHelper.DetermineX509KeyStorageFlag(Microsoft.Identity.Abstractions.CredentialDescription! credentialDescription) -> System.Security.Cryptography.X509Certificates.X509KeyStorageFlags
-static Microsoft.Identity.Web.CertificateLoaderHelper.FindCertificateByCriterium(System.Security.Cryptography.X509Certificates.X509Store! x509Store, System.Security.Cryptography.X509Certificates.X509FindType identifierCriterium, string! certificateIdentifier) -> System.Security.Cryptography.X509Certificates.X509Certificate2?
-static Microsoft.Identity.Web.CertificateLoaderHelper.ParseStoreLocationAndName(string! storeDescription, ref System.Security.Cryptography.X509Certificates.StoreLocation certificateStoreLocation, ref System.Security.Cryptography.X509Certificates.StoreName certificateStoreName) -> void
-static Microsoft.Identity.Web.CustomSignedAssertionProviderNotFoundException.ProviderNameNotFound(string! name) -> Microsoft.Identity.Web.CustomSignedAssertionProviderNotFoundException!
-static Microsoft.Identity.Web.CustomSignedAssertionProviderNotFoundException.ProviderNameNullOrEmpty() -> Microsoft.Identity.Web.CustomSignedAssertionProviderNotFoundException!
-static Microsoft.Identity.Web.CustomSignedAssertionProviderNotFoundException.SourceLoadersNullOrEmpty() -> Microsoft.Identity.Web.CustomSignedAssertionProviderNotFoundException!
-static Microsoft.Identity.Web.DefaultCredentialsLoader.CustomSignedAssertionProviderLoadingFailureMessage(string! providerName, string! sourceType, string! skip) -> string!
-static Microsoft.Identity.Web.KeyVaultCertificateLoader.LoadFromKeyVaultAsync(string! keyVaultUrl, string! certificateName, string? managedIdentityClientId, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags x509KeyStorageFlags) -> System.Threading.Tasks.Task!
-static Microsoft.Identity.Web.KeyVaultCertificateLoader.UserAssignedManagedIdentityClientId.get -> string?
-static Microsoft.Identity.Web.KeyVaultCertificateLoader.UserAssignedManagedIdentityClientId.set -> void
-static Microsoft.Identity.Web.LoggerExtensions.CredentialLoadingFailure(this Microsoft.Extensions.Logging.ILogger! logger, Microsoft.Identity.Abstractions.CredentialDescription! cd, System.Exception? ex) -> void
-static Microsoft.Identity.Web.LoggerExtensions.CustomProviderNameAlreadyExists(this Microsoft.Extensions.Logging.ILogger! logger, string! providerName) -> void
-static Microsoft.Identity.Web.LoggerExtensions.CustomProviderNameNullOrEmpty(this Microsoft.Extensions.Logging.ILogger! logger) -> void
-static Microsoft.Identity.Web.LoggerExtensions.CustomProviderNotFound(this Microsoft.Extensions.Logging.ILogger! logger, string! providerName) -> void
-static Microsoft.Identity.Web.LoggerExtensions.CustomProviderSourceLoaderNullOrEmpty(this Microsoft.Extensions.Logging.ILogger! logger) -> void
-static Microsoft.Identity.Web.LoggerExtensions.CustomSignedAssertionProviderLoadingFailure(this Microsoft.Extensions.Logging.ILogger! logger, Microsoft.Identity.Abstractions.CredentialDescription! cd, System.Exception! ex) -> void
-static Microsoft.Identity.Web.LoggerExtensions.CustomSignedAssertionProviderLoadingFailureMessage(string! providerName, string! sourceType, string! skip) -> string!
diff --git a/src/Microsoft.Identity.Web.Certificate/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Certificate/InternalAPI.Unshipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Certificate/InternalAPI.Unshipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Certificate/Microsoft.Identity.Web.Certificate.csproj b/src/Microsoft.Identity.Web.Certificate/Microsoft.Identity.Web.Certificate.csproj
index 7e06581fb..6e523448b 100644
--- a/src/Microsoft.Identity.Web.Certificate/Microsoft.Identity.Web.Certificate.csproj
+++ b/src/Microsoft.Identity.Web.Certificate/Microsoft.Identity.Web.Certificate.csproj
@@ -32,7 +32,7 @@
-
-
+
+
diff --git a/src/Microsoft.Identity.Web.Certificate/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.Certificate/PublicAPI/PublicAPI.Shipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Certificate/PublicAPI.Shipped.txt
rename to src/Microsoft.Identity.Web.Certificate/PublicAPI/PublicAPI.Shipped.txt
diff --git a/src/Microsoft.Identity.Web.Certificate/PublicAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Certificate/PublicAPI/PublicAPI.Unshipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Certificate/PublicAPI.Unshipped.txt
rename to src/Microsoft.Identity.Web.Certificate/PublicAPI/PublicAPI.Unshipped.txt
diff --git a/src/Microsoft.Identity.Web.Certificateless/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.Certificateless/InternalAPI.Shipped.txt
deleted file mode 100644
index a36f8b883..000000000
--- a/src/Microsoft.Identity.Web.Certificateless/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-#nullable enable
-const Microsoft.Identity.Web.Certificateless.CertificatelessConstants.DefaultTokenExchangeUrl = "api://AzureADTokenExchange" -> string!
-Microsoft.Identity.Web.Certificateless.CertificatelessConstants
-Microsoft.Identity.Web.Certificateless.CertificatelessConstants.CertificatelessConstants() -> void
-Microsoft.Identity.Web.ManagedIdentityClientAssertion.ManagedIdentityClientAssertion(string? managedIdentityClientId, string? tokenExchangeUrl, Microsoft.Extensions.Logging.ILogger? logger, Microsoft.Identity.Client.IMsalHttpClientFactory? testHttpClientFactory) -> void
-Microsoft.Identity.Web.TestOnly.ManagedIdentityClientAssertionTestHook
-static Microsoft.Identity.Web.TestOnly.ManagedIdentityClientAssertionTestHook.HttpClientFactoryForTests.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
-static Microsoft.Identity.Web.TestOnly.ManagedIdentityClientAssertionTestHook.HttpClientFactoryForTests.set -> void
diff --git a/src/Microsoft.Identity.Web.Certificateless/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Certificateless/InternalAPI.Unshipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Certificateless/InternalAPI.Unshipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Certificateless/Microsoft.Identity.Web.Certificateless.csproj b/src/Microsoft.Identity.Web.Certificateless/Microsoft.Identity.Web.Certificateless.csproj
index 6301c69a9..6ae20a75b 100644
--- a/src/Microsoft.Identity.Web.Certificateless/Microsoft.Identity.Web.Certificateless.csproj
+++ b/src/Microsoft.Identity.Web.Certificateless/Microsoft.Identity.Web.Certificateless.csproj
@@ -29,10 +29,8 @@
-
-
-
-
+
+
diff --git a/src/Microsoft.Identity.Web.Certificateless/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.Certificateless/PublicAPI/PublicAPI.Shipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Certificateless/PublicAPI.Shipped.txt
rename to src/Microsoft.Identity.Web.Certificateless/PublicAPI/PublicAPI.Shipped.txt
diff --git a/src/Microsoft.Identity.Web.Certificateless/PublicAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Certificateless/PublicAPI/PublicAPI.Unshipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Certificateless/PublicAPI.Unshipped.txt
rename to src/Microsoft.Identity.Web.Certificateless/PublicAPI/PublicAPI.Unshipped.txt
diff --git a/src/Microsoft.Identity.Web.Diagnostics/Microsoft.Identity.Web.Diagnostics.csproj b/src/Microsoft.Identity.Web.Diagnostics/Microsoft.Identity.Web.Diagnostics.csproj
index 7e955852d..11848f3df 100644
--- a/src/Microsoft.Identity.Web.Diagnostics/Microsoft.Identity.Web.Diagnostics.csproj
+++ b/src/Microsoft.Identity.Web.Diagnostics/Microsoft.Identity.Web.Diagnostics.csproj
@@ -15,10 +15,12 @@
-
-
-
-
+
+
+
+
+
+
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net10.0/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/InternalAPI.Shipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net10.0/InternalAPI.Shipped.txt
rename to src/Microsoft.Identity.Web.Diagnostics/PublicAPI/InternalAPI.Shipped.txt
diff --git a/src/Microsoft.Identity.Web.AgentIdentities/PublicAPI/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/InternalAPI.Unshipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.AgentIdentities/PublicAPI/InternalAPI.Unshipped.txt
rename to src/Microsoft.Identity.Web.Diagnostics/PublicAPI/InternalAPI.Unshipped.txt
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net10.0/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/PublicAPI.Shipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net10.0/PublicAPI.Shipped.txt
rename to src/Microsoft.Identity.Web.Diagnostics/PublicAPI/PublicAPI.Shipped.txt
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net10.0/PublicAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/PublicAPI.Unshipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net10.0/PublicAPI.Unshipped.txt
rename to src/Microsoft.Identity.Web.Diagnostics/PublicAPI/PublicAPI.Unshipped.txt
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net10.0/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net10.0/InternalAPI.Unshipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net10.0/InternalAPI.Unshipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/InternalAPI.Shipped.txt
deleted file mode 100644
index dad96ad1a..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-#nullable enable
-Microsoft.Identity.Web.Diagnostics.IdHelper
-Microsoft.Identity.Web.Diagnostics.OsHelper
-Microsoft.Identity.Web.Diagnostics.OsHelper.OsHelper() -> void
-Microsoft.Identity.Web.IdHelper
-Microsoft.Identity.Web.Throws
-static Microsoft.Identity.Web.Diagnostics.IdHelper.CreateTelemetryInfo() -> string!
-static Microsoft.Identity.Web.Diagnostics.IdHelper.GetIdWebVersion() -> string!
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsLinuxPlatform() -> bool
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsMacPlatform() -> bool
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsWindowsPlatform() -> bool
-static Microsoft.Identity.Web.IdHelper.CreateTelemetryInfo() -> string!
-static Microsoft.Identity.Web.IdHelper.GetIdWebVersion() -> string!
-static Microsoft.Identity.Web.Throws.ArgumentException(string! paramName, string? message, System.Exception? innerException) -> void
-static Microsoft.Identity.Web.Throws.ArgumentException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentNullException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentNullException(string! paramName) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName, object? actualValue, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName) -> void
-static Microsoft.Identity.Web.Throws.IfBufferTooSmall(int bufferSize, int requiredSize, string! paramName = "") -> void
-static Microsoft.Identity.Web.Throws.IfMemberNull(TParameter argument, TMember member, string! paramName = "", string! memberName = "") -> TMember
-static Microsoft.Identity.Web.Throws.IfNull(T argument, string! paramName = "") -> T
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(string? argument, string! paramName = "") -> string!
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(System.Collections.Generic.ICollection? argument, string! paramName = "") -> System.Collections.Generic.ICollection!
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(System.Collections.Generic.IReadOnlyCollection? argument, string! paramName = "") -> System.Collections.Generic.IReadOnlyCollection!
-static Microsoft.Identity.Web.Throws.IfNullOrMemberNull(TParameter argument, TMember member, string! paramName = "", string! memberName = "") -> TMember
-static Microsoft.Identity.Web.Throws.IfNullOrWhitespace(string? argument, string! paramName = "") -> string!
-static Microsoft.Identity.Web.Throws.IfOutOfRange(T argument, string! paramName = "") -> T
-static Microsoft.Identity.Web.Throws.InvalidOperationException(string! message, System.Exception? innerException) -> void
-static Microsoft.Identity.Web.Throws.InvalidOperationException(string! message) -> void
-System.Diagnostics.CodeAnalysis.AllowNullAttribute
-System.Diagnostics.CodeAnalysis.AllowNullAttribute.AllowNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.DisallowNullAttribute
-System.Diagnostics.CodeAnalysis.DisallowNullAttribute.DisallowNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute
-System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute.DoesNotReturnAttribute() -> void
-System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute
-System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.DoesNotReturnIfAttribute(bool parameterValue) -> void
-System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue.get -> bool
-System.Diagnostics.CodeAnalysis.MaybeNullAttribute
-System.Diagnostics.CodeAnalysis.MaybeNullAttribute.MaybeNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute
-System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.MaybeNullWhenAttribute(bool returnValue) -> void
-System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue.get -> bool
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.MemberNotNullAttribute(params string![]! members) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.MemberNotNullAttribute(string! member) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members.get -> string![]!
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.MemberNotNullWhenAttribute(bool returnValue, params string![]! members) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.MemberNotNullWhenAttribute(bool returnValue, string! member) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members.get -> string![]!
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue.get -> bool
-System.Diagnostics.CodeAnalysis.NotNullAttribute
-System.Diagnostics.CodeAnalysis.NotNullAttribute.NotNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute
-System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.NotNullIfNotNullAttribute(string! parameterName) -> void
-System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName.get -> string!
-System.Diagnostics.CodeAnalysis.NotNullWhenAttribute
-System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.NotNullWhenAttribute(bool returnValue) -> void
-System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue.get -> bool
-System.Runtime.CompilerServices.CallerArgumentExpressionAttribute
-System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.CallerArgumentExpressionAttribute(string! parameterName) -> void
-System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.ParameterName.get -> string!
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/InternalAPI.Unshipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/InternalAPI.Unshipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/PublicAPI.Shipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/PublicAPI.Shipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/InternalAPI.Shipped.txt
deleted file mode 100644
index dad96ad1a..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-#nullable enable
-Microsoft.Identity.Web.Diagnostics.IdHelper
-Microsoft.Identity.Web.Diagnostics.OsHelper
-Microsoft.Identity.Web.Diagnostics.OsHelper.OsHelper() -> void
-Microsoft.Identity.Web.IdHelper
-Microsoft.Identity.Web.Throws
-static Microsoft.Identity.Web.Diagnostics.IdHelper.CreateTelemetryInfo() -> string!
-static Microsoft.Identity.Web.Diagnostics.IdHelper.GetIdWebVersion() -> string!
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsLinuxPlatform() -> bool
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsMacPlatform() -> bool
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsWindowsPlatform() -> bool
-static Microsoft.Identity.Web.IdHelper.CreateTelemetryInfo() -> string!
-static Microsoft.Identity.Web.IdHelper.GetIdWebVersion() -> string!
-static Microsoft.Identity.Web.Throws.ArgumentException(string! paramName, string? message, System.Exception? innerException) -> void
-static Microsoft.Identity.Web.Throws.ArgumentException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentNullException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentNullException(string! paramName) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName, object? actualValue, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName) -> void
-static Microsoft.Identity.Web.Throws.IfBufferTooSmall(int bufferSize, int requiredSize, string! paramName = "") -> void
-static Microsoft.Identity.Web.Throws.IfMemberNull(TParameter argument, TMember member, string! paramName = "", string! memberName = "") -> TMember
-static Microsoft.Identity.Web.Throws.IfNull(T argument, string! paramName = "") -> T
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(string? argument, string! paramName = "") -> string!
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(System.Collections.Generic.ICollection? argument, string! paramName = "") -> System.Collections.Generic.ICollection!
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(System.Collections.Generic.IReadOnlyCollection? argument, string! paramName = "") -> System.Collections.Generic.IReadOnlyCollection!
-static Microsoft.Identity.Web.Throws.IfNullOrMemberNull(TParameter argument, TMember member, string! paramName = "", string! memberName = "") -> TMember
-static Microsoft.Identity.Web.Throws.IfNullOrWhitespace(string? argument, string! paramName = "") -> string!
-static Microsoft.Identity.Web.Throws.IfOutOfRange(T argument, string! paramName = "") -> T
-static Microsoft.Identity.Web.Throws.InvalidOperationException(string! message, System.Exception? innerException) -> void
-static Microsoft.Identity.Web.Throws.InvalidOperationException(string! message) -> void
-System.Diagnostics.CodeAnalysis.AllowNullAttribute
-System.Diagnostics.CodeAnalysis.AllowNullAttribute.AllowNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.DisallowNullAttribute
-System.Diagnostics.CodeAnalysis.DisallowNullAttribute.DisallowNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute
-System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute.DoesNotReturnAttribute() -> void
-System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute
-System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.DoesNotReturnIfAttribute(bool parameterValue) -> void
-System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue.get -> bool
-System.Diagnostics.CodeAnalysis.MaybeNullAttribute
-System.Diagnostics.CodeAnalysis.MaybeNullAttribute.MaybeNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute
-System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.MaybeNullWhenAttribute(bool returnValue) -> void
-System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue.get -> bool
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.MemberNotNullAttribute(params string![]! members) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.MemberNotNullAttribute(string! member) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members.get -> string![]!
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.MemberNotNullWhenAttribute(bool returnValue, params string![]! members) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.MemberNotNullWhenAttribute(bool returnValue, string! member) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members.get -> string![]!
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue.get -> bool
-System.Diagnostics.CodeAnalysis.NotNullAttribute
-System.Diagnostics.CodeAnalysis.NotNullAttribute.NotNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute
-System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.NotNullIfNotNullAttribute(string! parameterName) -> void
-System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName.get -> string!
-System.Diagnostics.CodeAnalysis.NotNullWhenAttribute
-System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.NotNullWhenAttribute(bool returnValue) -> void
-System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue.get -> bool
-System.Runtime.CompilerServices.CallerArgumentExpressionAttribute
-System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.CallerArgumentExpressionAttribute(string! parameterName) -> void
-System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.ParameterName.get -> string!
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/InternalAPI.Unshipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/InternalAPI.Unshipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/PublicAPI.Shipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/PublicAPI.Shipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net8.0/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net8.0/InternalAPI.Shipped.txt
deleted file mode 100644
index b3ec4183f..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net8.0/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-#nullable enable
-Microsoft.Identity.Web.Diagnostics.IdHelper
-Microsoft.Identity.Web.Diagnostics.OsHelper
-Microsoft.Identity.Web.Diagnostics.OsHelper.OsHelper() -> void
-Microsoft.Identity.Web.IdHelper
-Microsoft.Identity.Web.Throws
-static Microsoft.Identity.Web.Diagnostics.IdHelper.CreateTelemetryInfo() -> string!
-static Microsoft.Identity.Web.Diagnostics.IdHelper.GetIdWebVersion() -> string!
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsLinuxPlatform() -> bool
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsMacPlatform() -> bool
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsWindowsPlatform() -> bool
-static Microsoft.Identity.Web.IdHelper.CreateTelemetryInfo() -> string!
-static Microsoft.Identity.Web.IdHelper.GetIdWebVersion() -> string!
-static Microsoft.Identity.Web.Throws.ArgumentException(string! paramName, string? message, System.Exception? innerException) -> void
-static Microsoft.Identity.Web.Throws.ArgumentException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentNullException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentNullException(string! paramName) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName, object? actualValue, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName) -> void
-static Microsoft.Identity.Web.Throws.IfBufferTooSmall(int bufferSize, int requiredSize, string! paramName = "") -> void
-static Microsoft.Identity.Web.Throws.IfMemberNull(TParameter argument, TMember member, string! paramName = "", string! memberName = "") -> TMember
-static Microsoft.Identity.Web.Throws.IfNull(T argument, string! paramName = "") -> T
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(string? argument, string! paramName = "") -> string!
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(System.Collections.Generic.ICollection? argument, string! paramName = "") -> System.Collections.Generic.ICollection!
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(System.Collections.Generic.IReadOnlyCollection? argument, string! paramName = "") -> System.Collections.Generic.IReadOnlyCollection!
-static Microsoft.Identity.Web.Throws.IfNullOrMemberNull(TParameter argument, TMember member, string! paramName = "", string! memberName = "") -> TMember
-static Microsoft.Identity.Web.Throws.IfNullOrWhitespace(string? argument, string! paramName = "") -> string!
-static Microsoft.Identity.Web.Throws.IfOutOfRange(T argument, string! paramName = "") -> T
-static Microsoft.Identity.Web.Throws.InvalidOperationException(string! message, System.Exception? innerException) -> void
-static Microsoft.Identity.Web.Throws.InvalidOperationException(string! message) -> void
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net8.0/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net8.0/InternalAPI.Unshipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net8.0/InternalAPI.Unshipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net8.0/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net8.0/PublicAPI.Shipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net8.0/PublicAPI.Shipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net9.0/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net9.0/InternalAPI.Shipped.txt
deleted file mode 100644
index b3ec4183f..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net9.0/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-#nullable enable
-Microsoft.Identity.Web.Diagnostics.IdHelper
-Microsoft.Identity.Web.Diagnostics.OsHelper
-Microsoft.Identity.Web.Diagnostics.OsHelper.OsHelper() -> void
-Microsoft.Identity.Web.IdHelper
-Microsoft.Identity.Web.Throws
-static Microsoft.Identity.Web.Diagnostics.IdHelper.CreateTelemetryInfo() -> string!
-static Microsoft.Identity.Web.Diagnostics.IdHelper.GetIdWebVersion() -> string!
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsLinuxPlatform() -> bool
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsMacPlatform() -> bool
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsWindowsPlatform() -> bool
-static Microsoft.Identity.Web.IdHelper.CreateTelemetryInfo() -> string!
-static Microsoft.Identity.Web.IdHelper.GetIdWebVersion() -> string!
-static Microsoft.Identity.Web.Throws.ArgumentException(string! paramName, string? message, System.Exception? innerException) -> void
-static Microsoft.Identity.Web.Throws.ArgumentException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentNullException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentNullException(string! paramName) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName, object? actualValue, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName) -> void
-static Microsoft.Identity.Web.Throws.IfBufferTooSmall(int bufferSize, int requiredSize, string! paramName = "") -> void
-static Microsoft.Identity.Web.Throws.IfMemberNull(TParameter argument, TMember member, string! paramName = "", string! memberName = "") -> TMember
-static Microsoft.Identity.Web.Throws.IfNull(T argument, string! paramName = "") -> T
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(string? argument, string! paramName = "") -> string!
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(System.Collections.Generic.ICollection? argument, string! paramName = "") -> System.Collections.Generic.ICollection!
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(System.Collections.Generic.IReadOnlyCollection? argument, string! paramName = "") -> System.Collections.Generic.IReadOnlyCollection!
-static Microsoft.Identity.Web.Throws.IfNullOrMemberNull(TParameter argument, TMember member, string! paramName = "", string! memberName = "") -> TMember
-static Microsoft.Identity.Web.Throws.IfNullOrWhitespace(string? argument, string! paramName = "") -> string!
-static Microsoft.Identity.Web.Throws.IfOutOfRange(T argument, string! paramName = "") -> T
-static Microsoft.Identity.Web.Throws.InvalidOperationException(string! message, System.Exception? innerException) -> void
-static Microsoft.Identity.Web.Throws.InvalidOperationException(string! message) -> void
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net9.0/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net9.0/InternalAPI.Unshipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net9.0/InternalAPI.Unshipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net9.0/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net9.0/PublicAPI.Shipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net9.0/PublicAPI.Shipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/netstandard2.0/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/netstandard2.0/InternalAPI.Shipped.txt
deleted file mode 100644
index dad96ad1a..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/netstandard2.0/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-#nullable enable
-Microsoft.Identity.Web.Diagnostics.IdHelper
-Microsoft.Identity.Web.Diagnostics.OsHelper
-Microsoft.Identity.Web.Diagnostics.OsHelper.OsHelper() -> void
-Microsoft.Identity.Web.IdHelper
-Microsoft.Identity.Web.Throws
-static Microsoft.Identity.Web.Diagnostics.IdHelper.CreateTelemetryInfo() -> string!
-static Microsoft.Identity.Web.Diagnostics.IdHelper.GetIdWebVersion() -> string!
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsLinuxPlatform() -> bool
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsMacPlatform() -> bool
-static Microsoft.Identity.Web.Diagnostics.OsHelper.IsWindowsPlatform() -> bool
-static Microsoft.Identity.Web.IdHelper.CreateTelemetryInfo() -> string!
-static Microsoft.Identity.Web.IdHelper.GetIdWebVersion() -> string!
-static Microsoft.Identity.Web.Throws.ArgumentException(string! paramName, string? message, System.Exception? innerException) -> void
-static Microsoft.Identity.Web.Throws.ArgumentException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentNullException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentNullException(string! paramName) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName, object? actualValue, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName, string? message) -> void
-static Microsoft.Identity.Web.Throws.ArgumentOutOfRangeException(string! paramName) -> void
-static Microsoft.Identity.Web.Throws.IfBufferTooSmall(int bufferSize, int requiredSize, string! paramName = "") -> void
-static Microsoft.Identity.Web.Throws.IfMemberNull(TParameter argument, TMember member, string! paramName = "", string! memberName = "") -> TMember
-static Microsoft.Identity.Web.Throws.IfNull(T argument, string! paramName = "") -> T
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(string? argument, string! paramName = "") -> string!
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(System.Collections.Generic.ICollection? argument, string! paramName = "") -> System.Collections.Generic.ICollection!
-static Microsoft.Identity.Web.Throws.IfNullOrEmpty(System.Collections.Generic.IReadOnlyCollection? argument, string! paramName = "") -> System.Collections.Generic.IReadOnlyCollection!
-static Microsoft.Identity.Web.Throws.IfNullOrMemberNull(TParameter argument, TMember member, string! paramName = "", string! memberName = "") -> TMember
-static Microsoft.Identity.Web.Throws.IfNullOrWhitespace(string? argument, string! paramName = "") -> string!
-static Microsoft.Identity.Web.Throws.IfOutOfRange(T argument, string! paramName = "") -> T
-static Microsoft.Identity.Web.Throws.InvalidOperationException(string! message, System.Exception? innerException) -> void
-static Microsoft.Identity.Web.Throws.InvalidOperationException(string! message) -> void
-System.Diagnostics.CodeAnalysis.AllowNullAttribute
-System.Diagnostics.CodeAnalysis.AllowNullAttribute.AllowNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.DisallowNullAttribute
-System.Diagnostics.CodeAnalysis.DisallowNullAttribute.DisallowNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute
-System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute.DoesNotReturnAttribute() -> void
-System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute
-System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.DoesNotReturnIfAttribute(bool parameterValue) -> void
-System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue.get -> bool
-System.Diagnostics.CodeAnalysis.MaybeNullAttribute
-System.Diagnostics.CodeAnalysis.MaybeNullAttribute.MaybeNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute
-System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.MaybeNullWhenAttribute(bool returnValue) -> void
-System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue.get -> bool
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.MemberNotNullAttribute(params string![]! members) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.MemberNotNullAttribute(string! member) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members.get -> string![]!
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.MemberNotNullWhenAttribute(bool returnValue, params string![]! members) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.MemberNotNullWhenAttribute(bool returnValue, string! member) -> void
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members.get -> string![]!
-System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue.get -> bool
-System.Diagnostics.CodeAnalysis.NotNullAttribute
-System.Diagnostics.CodeAnalysis.NotNullAttribute.NotNullAttribute() -> void
-System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute
-System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.NotNullIfNotNullAttribute(string! parameterName) -> void
-System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName.get -> string!
-System.Diagnostics.CodeAnalysis.NotNullWhenAttribute
-System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.NotNullWhenAttribute(bool returnValue) -> void
-System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue.get -> bool
-System.Runtime.CompilerServices.CallerArgumentExpressionAttribute
-System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.CallerArgumentExpressionAttribute(string! parameterName) -> void
-System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.ParameterName.get -> string!
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/netstandard2.0/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/netstandard2.0/InternalAPI.Unshipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/netstandard2.0/InternalAPI.Unshipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt
deleted file mode 100644
index 7dc5c5811..000000000
--- a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/Microsoft.Identity.Web.DownstreamApi/Microsoft.Identity.Web.DownstreamApi.csproj b/src/Microsoft.Identity.Web.DownstreamApi/Microsoft.Identity.Web.DownstreamApi.csproj
index cebd4a2f8..82bc2dfee 100644
--- a/src/Microsoft.Identity.Web.DownstreamApi/Microsoft.Identity.Web.DownstreamApi.csproj
+++ b/src/Microsoft.Identity.Web.DownstreamApi/Microsoft.Identity.Web.DownstreamApi.csproj
@@ -1,4 +1,4 @@
-
+
Microsoft Identity Web downstream API
Microsoft Identity Web downstream API
@@ -36,13 +36,21 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
True
diff --git a/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net10.0/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/NetCore/PublicAPI.Shipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net10.0/PublicAPI.Shipped.txt
rename to src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/NetCore/PublicAPI.Shipped.txt
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/PublicAPI.Unshipped.txt b/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/NetCore/PublicAPI.Unshipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net462/PublicAPI.Unshipped.txt
rename to src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/NetCore/PublicAPI.Unshipped.txt
diff --git a/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net462/PublicAPI.Shipped.txt b/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/NetFramework/PublicAPI.Shipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net462/PublicAPI.Shipped.txt
rename to src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/NetFramework/PublicAPI.Shipped.txt
diff --git a/src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/PublicAPI.Unshipped.txt b/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/NetFramework/PublicAPI.Unshipped.txt
similarity index 100%
rename from src/Microsoft.Identity.Web.Diagnostics/PublicAPI/net472/PublicAPI.Unshipped.txt
rename to src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/NetFramework/PublicAPI.Unshipped.txt
diff --git a/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net10.0/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net10.0/InternalAPI.Shipped.txt
deleted file mode 100644
index 2c1df99c9..000000000
--- a/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net10.0/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,79 +0,0 @@
-#nullable enable
-Microsoft.Identity.Web.DownstreamApi
-Microsoft.Identity.Web.DownstreamApi.CallApiAsync(Microsoft.Identity.Abstractions.DownstreamApiOptions! downstreamApiOptions, System.Security.Claims.ClaimsPrincipal? user = null, System.Net.Http.HttpContent? content = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiAsync(string? serviceName, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Net.Http.HttpContent? content = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiForAppAsync(string? serviceName, System.Action? downstreamApiOptionsOverride = null, System.Net.Http.HttpContent? content = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiForAppAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiForAppAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiForAppAsync(string! serviceName, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiForAppAsync(string! serviceName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiForUserAsync(string? serviceName, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Net.Http.HttpContent? content = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiForUserAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiForUserAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiForUserAsync(string! serviceName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiForUserAsync(string? serviceName, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiInternalAsync(string? serviceName, Microsoft.Identity.Abstractions.DownstreamApiOptions! effectiveOptions, bool appToken, System.Net.Http.HttpContent? content = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.DeleteForAppAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.DeleteForAppAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.DeleteForAppAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.DeleteForAppAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.DeleteForUserAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.DeleteForUserAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.DeleteForUserAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.DeleteForUserAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.DownstreamApi(Microsoft.Identity.Abstractions.IAuthorizationHeaderProvider! authorizationHeaderProvider, Microsoft.Extensions.Options.IOptionsMonitor! namedDownstreamApiOptions, System.Net.Http.IHttpClientFactory! httpClientFactory, Microsoft.Extensions.Logging.ILogger! logger, Microsoft.Identity.Client.IMsalHttpClientFactory? msalHttpClientFactory) -> void
-Microsoft.Identity.Web.DownstreamApi.DownstreamApi(Microsoft.Identity.Abstractions.IAuthorizationHeaderProvider! authorizationHeaderProvider, Microsoft.Extensions.Options.IOptionsMonitor! namedDownstreamApiOptions, System.Net.Http.IHttpClientFactory! httpClientFactory, Microsoft.Extensions.Logging.ILogger! logger) -> void
-Microsoft.Identity.Web.DownstreamApi.GetForAppAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.GetForAppAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.GetForAppAsync(string? serviceName, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.GetForAppAsync(string? serviceName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.GetForUserAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.GetForUserAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.GetForUserAsync(string? serviceName, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.GetForUserAsync(string? serviceName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.Logger
-Microsoft.Identity.Web.DownstreamApi.MergeOptions(string? optionsInstanceName, System.Action? calledApiOptionsOverride) -> Microsoft.Identity.Abstractions.DownstreamApiOptions!
-Microsoft.Identity.Web.DownstreamApi.MergeOptions(string? optionsInstanceName, System.Action? calledApiOptionsOverride, System.Net.Http.HttpMethod! httpMethod) -> Microsoft.Identity.Abstractions.DownstreamApiOptions!
-Microsoft.Identity.Web.DownstreamApi.PatchForAppAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PatchForAppAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PatchForAppAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PatchForAppAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PatchForUserAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PatchForUserAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PatchForUserAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PatchForUserAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PostForAppAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PostForAppAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PostForAppAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PostForAppAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PostForUserAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PostForUserAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PostForUserAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PostForUserAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PutForAppAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PutForAppAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PutForAppAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PutForAppAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PutForUserAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PutForUserAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PutForUserAsync(string? serviceName, TInput input, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.PutForUserAsync(string? serviceName, TInput input, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.UpdateRequestAsync(System.Net.Http.HttpRequestMessage! httpRequestMessage, System.Net.Http.HttpContent? content, Microsoft.Identity.Abstractions.DownstreamApiOptions! effectiveOptions, bool appToken, System.Security.Claims.ClaimsPrincipal? user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.UpdateRequestAsync(System.Net.Http.HttpRequestMessage! httpRequestMessage, System.Net.Http.HttpContent? content, Microsoft.Identity.Abstractions.DownstreamApiOptions! effectiveOptions, bool appToken, System.Security.Claims.ClaimsPrincipal? user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApiLoggingEventId
-readonly Microsoft.Identity.Web.DownstreamApi._logger -> Microsoft.Extensions.Logging.ILogger!
-static Microsoft.Identity.Web.DownstreamApi.CallerSDKDetails.get -> System.Collections.Generic.Dictionary!
-static Microsoft.Identity.Web.DownstreamApi.DeserializeOutputAsync(System.Net.Http.HttpResponseMessage! response, Microsoft.Identity.Abstractions.DownstreamApiOptions! effectiveOptions, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-static Microsoft.Identity.Web.DownstreamApi.DeserializeOutputAsync(System.Net.Http.HttpResponseMessage! response, Microsoft.Identity.Abstractions.DownstreamApiOptions! effectiveOptions, System.Text.Json.Serialization.Metadata.JsonTypeInfo! outputJsonTypeInfo) -> System.Threading.Tasks.Task!
-static Microsoft.Identity.Web.DownstreamApi.DeserializeOutputAsync(System.Net.Http.HttpResponseMessage! response, Microsoft.Identity.Abstractions.DownstreamApiOptions! effectiveOptions, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-static Microsoft.Identity.Web.DownstreamApi.DeserializeOutputAsync(System.Net.Http.HttpResponseMessage! response, Microsoft.Identity.Abstractions.DownstreamApiOptions! effectiveOptions) -> System.Threading.Tasks.Task!
-static Microsoft.Identity.Web.DownstreamApi.Logger.HttpRequestError(Microsoft.Extensions.Logging.ILogger! logger, string! ServiceName, string! BaseUrl, string! RelativePath, int statusCode, string! responseContent, System.Exception? ex) -> void
-static Microsoft.Identity.Web.DownstreamApi.Logger.HttpRequestError(Microsoft.Extensions.Logging.ILogger! logger, string! ServiceName, string! BaseUrl, string! RelativePath, System.Exception? ex) -> void
-static Microsoft.Identity.Web.DownstreamApi.Logger.UnauthenticatedApiCall(Microsoft.Extensions.Logging.ILogger! logger, System.Exception? ex) -> void
-static Microsoft.Identity.Web.DownstreamApi.ReadErrorResponseContentAsync(System.Net.Http.HttpResponseMessage! response, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-static Microsoft.Identity.Web.DownstreamApi.SerializeInput(TInput input, Microsoft.Identity.Abstractions.DownstreamApiOptions! effectiveOptions, System.Text.Json.Serialization.Metadata.JsonTypeInfo! inputJsonTypeInfo) -> System.Net.Http.HttpContent?
-static Microsoft.Identity.Web.DownstreamApi.SerializeInput(TInput input, Microsoft.Identity.Abstractions.DownstreamApiOptions! effectiveOptions) -> System.Net.Http.HttpContent?
-static Microsoft.Identity.Web.DownstreamApiExtensions.AddDownstreamApiWithLifetime(Microsoft.Extensions.DependencyInjection.IServiceCollection! services, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime) -> void
-static Microsoft.Identity.Web.DownstreamApiExtensions.RegisterDownstreamApi(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void
-static readonly Microsoft.Identity.Web.DownstreamApiLoggingEventId.HttpRequestError -> Microsoft.Extensions.Logging.EventId
-static readonly Microsoft.Identity.Web.DownstreamApiLoggingEventId.UnauthenticatedApiCall -> Microsoft.Extensions.Logging.EventId
diff --git a/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net10.0/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net10.0/InternalAPI.Unshipped.txt
deleted file mode 100644
index 08a25e3a5..000000000
--- a/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net10.0/InternalAPI.Unshipped.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-#nullable enable
-Microsoft.Identity.Web.DownstreamApi.DownstreamApi(Microsoft.Identity.Abstractions.IAuthorizationHeaderProvider! authorizationHeaderProvider, Microsoft.Extensions.Options.IOptionsMonitor! namedDownstreamApiOptions, System.Net.Http.IHttpClientFactory! httpClientFactory, Microsoft.Extensions.Logging.ILogger! logger, Microsoft.Identity.Web.ICredentialsProvider! credentialsProvider, Microsoft.Identity.Client.IMsalHttpClientFactory? msalHttpClientFactory) -> void
-Microsoft.Identity.Web.DownstreamApi.UpdateRequestWithCertificateAsync(System.Net.Http.HttpRequestMessage! httpRequestMessage, System.Net.Http.HttpContent? content, Microsoft.Identity.Abstractions.DownstreamApiOptions! effectiveOptions, bool appToken, System.Security.Claims.ClaimsPrincipal? user, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<(Microsoft.Identity.Abstractions.AuthorizationHeaderInformation? HeaderInfo, Microsoft.Identity.Abstractions.CredentialDescription? MtlsCredential)>!
diff --git a/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net462/InternalAPI.Shipped.txt b/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net462/InternalAPI.Shipped.txt
deleted file mode 100644
index 2dd4c1a9e..000000000
--- a/src/Microsoft.Identity.Web.DownstreamApi/PublicAPI/net462/InternalAPI.Shipped.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-#nullable enable
-Microsoft.Identity.Web.DownstreamApi
-Microsoft.Identity.Web.DownstreamApi.CallApiAsync(Microsoft.Identity.Abstractions.DownstreamApiOptions! downstreamApiOptions, System.Security.Claims.ClaimsPrincipal? user = null, System.Net.Http.HttpContent? content = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.Identity.Web.DownstreamApi.CallApiAsync(string? serviceName, System.Action? downstreamApiOptionsOverride = null, System.Security.Claims.ClaimsPrincipal? user = null, System.Net.Http.HttpContent? content = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task