Repository: Azure/azure-sdk-for-net
File: sdk/core/Azure.Core/api/Azure.Core.net10.0.cs (C#)

Code before:
        public static Azure.Core.DelayStrategy CreateFixedDelayStrategy(System.TimeSpan? delay = default(System.TimeSpan?)) { throw null; }
        public System.TimeSpan GetNextDelay(Azure.Response? response, int retryNumber) { throw null; }
        protected abstract System.TimeSpan GetNextDelayCore(Azure.Response? response, int retryNumber);
        protected static System.TimeSpan Max(System.TimeSpan val1, System.TimeSpan val2) { throw null; }
        protected static System.TimeSpan Min(System.TimeSpan val1, System.TimeSpan val2) { throw null; }
    }
    public static partial class DelegatedTokenCredential
    {
        public static Azure.Core.TokenCredential Create(System.Func<Azure.Core.TokenRequestContext, System.Threading.CancellationToken, Azure.Core.AccessToken> getToken) { throw null; }
        public static Azure.Core.TokenCredential Create(System.Func<Azure.Core.TokenRequestContext, System.Threading.CancellationToken, Azure.Core.AccessToken> getToken, System.Func<Azure.Core.TokenRequestContext, System.Threading.CancellationToken, System.Threading.Tasks.ValueTask<Azure.Core.AccessToken>> getTokenAsync) { throw null; }
    }
    public partial class DiagnosticsOptions
    {
        protected internal DiagnosticsOptions() { }
        [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("SCME0002")]
        protected internal DiagnosticsOptions(Microsoft.Extensions.Configuration.IConfigurationSection section) { }
        public string? ApplicationId { get { throw null; } set { } }
        public static string? DefaultApplicationId { get { throw null; } set { } }
        public bool IsDistributedTracingEnabled { get { throw null; } set { } }
        public bool IsLoggingContentEnabled { get { throw null; } set { } }
        public bool IsLoggingEnabled { get { throw null; } set { } }
        public bool IsTelemetryEnabled { get { throw null; } set { } }
        public int LoggedContentSizeLimit { get { throw null; } set { } }
        public System.Collections.Generic.IList<string> LoggedHeaderNames { get { throw null; } }
        public System.Collections.Generic.IList<string> LoggedQueryParameters { get { throw null; } }
        public int MaxApplicationIdLength { get { throw null; } set { } }
    }
    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
    public readonly partial struct HttpHeader : System.IEquatable<Azure.Core.HttpHeader>
    {
        private readonly object _dummy;
        private readonly int _dummyPrimitive;
        public HttpHeader(string name, string value) { throw null; }
        public string Name { get { throw null; } }
        public string Value { get { throw null; } }
        public bool Equals(Azure.Core.HttpHeader other) { throw null; }
        public override bool Equals(object? obj) { throw null; }
        public override int GetHashCode() { throw null; }
        public override string ToString() { throw null; }
        public static partial class Common
        {
            public static readonly Azure.Core.HttpHeader FormUrlEncodedContentType;
            public static readonly Azure.Core.HttpHeader JsonAccept;
            public static readonly Azure.Core.HttpHeader JsonContentType;
            public static readonly Azure.Core.HttpHeader OctetStreamContentType;
        }
        public static partial class Names
        {
            public static string Accept { get { throw null; } }
            public static string Authorization { get { throw null; } }
            public static string ContentDisposition { get { throw null; } }

Review comment (suggestion):
I initially had this as a protected property on ClientOptions to make it clear that only derived types should control it. I ended up moving it to be public on DiagnosticsOptions for two reasons:

1. Primary issue: constructor ordering. The [ClientOptions(IConfigurationSection, DiagnosticsOptions?) ](https://github.com/Azure/azure-sdk-for-net/blob/b75a865e39f82ce1ac442ce7a9d040d45862ec5a/sdk/core/Azure.Core/src/ClientOptions.cs#L89)constructor creates a [DiagnosticsOptions and reads ApplicationId](https://github.com/Azure/azure-sdk-for-net/blob/b75a865e39f82ce1ac442ce7a9d040d45862ec5a/sdk/core/Azure.Core/src/DiagnosticsOptions.cs#L32-L40) from config before the derived class constructor body runs. If I put the property on ClientOptions, there'd be no chance to increase the limit, any config-provided ApplicationId longer than 24 characters would throw before the derived class could do anything about it. Putting it on DiagnosticsOptions means it can be set before ApplicationId gets assigned
2. Keeping related things together. Conceptually it makes sense to have MaxApplicationIdLength on the same class next to the value it's guarding, instead of splitting the logic across two classes.

Code after:
        public static Azure.Core.DelayStrategy CreateExponentialDelayStrategy(System.TimeSpan? initialDelay = default(System.TimeSpan?), System.TimeSpan? maxDelay = default(System.TimeSpan?)) { throw null; }
        public static Azure.Core.DelayStrategy CreateFixedDelayStrategy(System.TimeSpan? delay = default(System.TimeSpan?)) { throw null; }
        public System.TimeSpan GetNextDelay(Azure.Response? response, int retryNumber) { throw null; }
        protected abstract System.TimeSpan GetNextDelayCore(Azure.Response? response, int retryNumber);
        protected static System.TimeSpan Max(System.TimeSpan val1, System.TimeSpan val2) { throw null; }
        protected static System.TimeSpan Min(System.TimeSpan val1, System.TimeSpan val2) { throw null; }
    }
    public static partial class DelegatedTokenCredential
    {
        public static Azure.Core.TokenCredential Create(System.Func<Azure.Core.TokenRequestContext, System.Threading.CancellationToken, Azure.Core.AccessToken> getToken) { throw null; }
        public static Azure.Core.TokenCredential Create(System.Func<Azure.Core.TokenRequestContext, System.Threading.CancellationToken, Azure.Core.AccessToken> getToken, System.Func<Azure.Core.TokenRequestContext, System.Threading.CancellationToken, System.Threading.Tasks.ValueTask<Azure.Core.AccessToken>> getTokenAsync) { throw null; }
    }
    public partial class DiagnosticsOptions
    {
        protected internal DiagnosticsOptions() { }
        [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("SCME0002")]
        protected internal DiagnosticsOptions(Microsoft.Extensions.Configuration.IConfigurationSection section) { }
        public string? ApplicationId { get { throw null; } set { } }
        public static string? DefaultApplicationId { get { throw null; } set { } }
        public bool IsDistributedTracingEnabled { get { throw null; } set { } }
        public bool IsLoggingContentEnabled { get { throw null; } set { } }
        public bool IsLoggingEnabled { get { throw null; } set { } }
        public bool IsTelemetryEnabled { get { throw null; } set { } }
        public int LoggedContentSizeLimit { get { throw null; } set { } }
        public System.Collections.Generic.IList<string> LoggedHeaderNames { get { throw null; } }
        public System.Collections.Generic.IList<string> LoggedQueryParameters { get { throw null; } }
    }
    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
    public readonly partial struct HttpHeader : System.IEquatable<Azure.Core.HttpHeader>
    {
        private readonly object _dummy;
        private readonly int _dummyPrimitive;
        public HttpHeader(string name, string value) { throw null; }
        public string Name { get { throw null; } }
        public string Value { get { throw null; } }
        public bool Equals(Azure.Core.HttpHeader other) { throw null; }
        public override bool Equals(object? obj) { throw null; }
        public override int GetHashCode() { throw null; }
        public override string ToString() { throw null; }
        public static partial class Common
        {
            public static readonly Azure.Core.HttpHeader FormUrlEncodedContentType;
            public static readonly Azure.Core.HttpHeader JsonAccept;
            public static readonly Azure.Core.HttpHeader JsonContentType;
            public static readonly Azure.Core.HttpHeader OctetStreamContentType;
        }
        public static partial class Names
        {
            public static string Accept { get { throw null; } }
            public static string Authorization { get { throw null; } }
            public static string ContentDisposition { get { throw null; } }