11// Copyright (c) Microsoft Corporation. All rights reserved.
22// Licensed under the MIT License.
33
4- using Microsoft . OpenApi . Models ;
4+ using Microsoft . OpenApi ;
55
66namespace Microsoft . Identity . Web . Sidecar ;
77
88internal static class OpenApiDescriptions
99{
1010 internal static void AddOptionsOverrideParameters ( OpenApiOperation op )
1111 {
12+ op . Parameters ??= [ ] ;
13+
1214 // Scopes (repeatable)
1315 op . Parameters . Add ( new OpenApiParameter
1416 {
1517 Name = "optionsOverride.Scopes" ,
1618 In = ParameterLocation . Query ,
1719 Description = "Repeatable. Each occurrence adds one scope. Example: optionsOverride.Scopes=User.Read" ,
1820 Required = false ,
19- Schema = new OpenApiSchema { Type = "string" } ,
21+ Schema = new OpenApiSchema { Type = JsonSchemaType . String } ,
2022 Explode = true ,
2123 Style = ParameterStyle . Form
2224 } ) ;
2325
2426 // Core boolean / simple toggles
25- AddSimple ( op , "optionsOverride.RequestAppToken" , "boolean" , "true = acquire an app (client credentials) token instead of user token." ) ;
27+ AddSimple ( op , "optionsOverride.RequestAppToken" , JsonSchemaType . Boolean , "true = acquire an app (client credentials) token instead of user token." ) ;
2628
2729 // Base request shaping
2830 op . Parameters . Add ( new OpenApiParameter
@@ -32,16 +34,16 @@ internal static void AddOptionsOverrideParameters(OpenApiOperation op)
3234 Description = "Ignored. The downstream BaseUrl is fixed by host configuration and cannot be overridden via optionsOverride." ,
3335 Required = false ,
3436 Deprecated = true ,
35- Schema = new OpenApiSchema { Type = "string" }
37+ Schema = new OpenApiSchema { Type = JsonSchemaType . String }
3638 } ) ;
37- AddSimple ( op , "optionsOverride.RelativePath" , "string" , "Override relative path appended to BaseUrl." ) ;
38- AddSimple ( op , "optionsOverride.HttpMethod" , "string" , "Override HTTP method (GET, POST, PATCH, etc.)." ) ;
39- AddSimple ( op , "optionsOverride.AcceptHeader" , "string" , "Sets Accept header (e.g. application/json)." ) ;
40- AddSimple ( op , "optionsOverride.ContentType" , "string" , "Sets Content-Type used for serialized body (if body provided)." ) ;
39+ AddSimple ( op , "optionsOverride.RelativePath" , JsonSchemaType . String , "Override relative path appended to BaseUrl." ) ;
40+ AddSimple ( op , "optionsOverride.HttpMethod" , JsonSchemaType . String , "Override HTTP method (GET, POST, PATCH, etc.)." ) ;
41+ AddSimple ( op , "optionsOverride.AcceptHeader" , JsonSchemaType . String , "Sets Accept header (e.g. application/json)." ) ;
42+ AddSimple ( op , "optionsOverride.ContentType" , JsonSchemaType . String , "Sets Content-Type used for serialized body (if body provided)." ) ;
4143
4244 // AcquireTokenOptions.* (token acquisition tuning)
4345 AddAcquireTokenOption ( op , "Tenant" , "Override tenant (GUID or 'common')." ) ;
44- AddAcquireTokenOption ( op , "ForceRefresh" , "boolean" , " true = bypass token cache.") ;
46+ AddAcquireTokenOption ( op , "ForceRefresh" , "true = bypass token cache." , JsonSchemaType . Boolean ) ;
4547 AddAcquireTokenOption ( op , "Claims" , "JSON claims challenge or extra claims." ) ;
4648 AddAcquireTokenOption ( op , "CorrelationId" , "GUID correlation id for token acquisition." ) ;
4749 AddAcquireTokenOption ( op , "LongRunningWebApiSessionKey" , "Session key for long running OBO flows." ) ;
@@ -52,8 +54,9 @@ internal static void AddOptionsOverrideParameters(OpenApiOperation op)
5254 AddAcquireTokenOption ( op , "ManagedIdentity.UserAssignedClientId" , "Managed Identity client id (user-assigned)." ) ;
5355 }
5456
55- private static void AddSimple ( OpenApiOperation op , string name , string type , string desc )
57+ private static void AddSimple ( OpenApiOperation op , string name , JsonSchemaType type , string desc )
5658 {
59+ op . Parameters ??= [ ] ;
5760 op . Parameters . Add ( new OpenApiParameter
5861 {
5962 Name = name ,
@@ -64,8 +67,9 @@ private static void AddSimple(OpenApiOperation op, string name, string type, str
6467 } ) ;
6568 }
6669
67- private static void AddAcquireTokenOption ( OpenApiOperation op , string name , string description , string type = "string" )
70+ private static void AddAcquireTokenOption ( OpenApiOperation op , string name , string description , JsonSchemaType type = JsonSchemaType . String )
6871 {
72+ op . Parameters ??= [ ] ;
6973 op . Parameters . Add ( new OpenApiParameter
7074 {
7175 Name = $ "optionsOverride.AcquireTokenOptions.{ name } ",
0 commit comments