55using System . Collections . Generic ;
66using Microsoft . OpenApi . Extensions ;
77using Microsoft . OpenApi . Interfaces ;
8+ using Microsoft . OpenApi . Models . Interfaces ;
89using Microsoft . OpenApi . Writers ;
910
1011namespace Microsoft . OpenApi . Models
1112{
1213 /// <summary>
1314 /// Security Scheme Object.
1415 /// </summary>
15- public class OpenApiSecurityScheme : IOpenApiReferenceable , IOpenApiExtensible
16+ public class OpenApiSecurityScheme : IOpenApiExtensible , IOpenApiReferenceable , IOpenApiSecurityScheme
1617 {
17- /// <summary>
18- /// REQUIRED. The type of the security scheme. Valid values are "apiKey", "http", "oauth2", "openIdConnect".
19- /// </summary>
20- public virtual SecuritySchemeType ? Type { get ; set ; }
21-
22- /// <summary>
23- /// A short description for security scheme. CommonMark syntax MAY be used for rich text representation.
24- /// </summary>
25- public virtual string Description { get ; set ; }
26-
27- /// <summary>
28- /// REQUIRED. The name of the header, query or cookie parameter to be used.
29- /// </summary>
30- public virtual string Name { get ; set ; }
18+ /// <inheritdoc/>
19+ public SecuritySchemeType ? Type { get ; set ; }
3120
32- /// <summary>
33- /// REQUIRED. The location of the API key. Valid values are "query", "header" or "cookie".
34- /// </summary>
35- public virtual ParameterLocation ? In { get ; set ; }
21+ /// <inheritdoc/>
22+ public string Description { get ; set ; }
3623
37- /// <summary>
38- /// REQUIRED. The name of the HTTP Authorization scheme to be used
39- /// in the Authorization header as defined in RFC7235.
40- /// </summary>
41- public virtual string Scheme { get ; set ; }
24+ /// <inheritdoc/>
25+ public string Name { get ; set ; }
4226
43- /// <summary>
44- /// A hint to the client to identify how the bearer token is formatted.
45- /// Bearer tokens are usually generated by an authorization server,
46- /// so this information is primarily for documentation purposes.
47- /// </summary>
48- public virtual string BearerFormat { get ; set ; }
27+ /// <inheritdoc/>
28+ public ParameterLocation ? In { get ; set ; }
4929
50- /// <summary>
51- /// REQUIRED. An object containing configuration information for the flow types supported.
52- /// </summary>
53- public virtual OpenApiOAuthFlows Flows { get ; set ; }
30+ /// <inheritdoc/>
31+ public string Scheme { get ; set ; }
5432
55- /// <summary>
56- /// REQUIRED. OpenId Connect URL to discover OAuth2 configuration values.
57- /// </summary>
58- public virtual Uri OpenIdConnectUrl { get ; set ; }
33+ /// <inheritdoc/>
34+ public string BearerFormat { get ; set ; }
5935
60- /// <summary>
61- /// Specification Extensions.
62- /// </summary>
63- public virtual IDictionary < string , IOpenApiExtension > Extensions { get ; set ; } = new Dictionary < string , IOpenApiExtension > ( ) ;
36+ /// <inheritdoc/>
37+ public OpenApiOAuthFlows Flows { get ; set ; }
6438
65- /// <summary>
66- /// Indicates if object is populated with data or is just a reference to the data
67- /// </summary>
68- public bool UnresolvedReference { get ; set ; }
39+ /// <inheritdoc/>
40+ public Uri OpenIdConnectUrl { get ; set ; }
6941
70- /// <summary>
71- /// Reference object.
72- /// </summary>
73- public OpenApiReference Reference { get ; set ; }
42+ /// <inheritdoc/>
43+ public IDictionary < string , IOpenApiExtension > Extensions { get ; set ; } = new Dictionary < string , IOpenApiExtension > ( ) ;
7444
7545 /// <summary>
7646 /// Parameterless constructor
7747 /// </summary>
7848 public OpenApiSecurityScheme ( ) { }
7949
8050 /// <summary>
81- /// Initializes a copy of <see cref="OpenApiSecurityScheme "/> object
51+ /// Initializes a copy of <see cref="IOpenApiSecurityScheme "/> object
8252 /// </summary>
83- public OpenApiSecurityScheme ( OpenApiSecurityScheme securityScheme )
53+ public OpenApiSecurityScheme ( IOpenApiSecurityScheme securityScheme )
8454 {
55+ Utils . CheckArgumentNull ( securityScheme ) ;
8556 Type = securityScheme ? . Type ;
8657 Description = securityScheme ? . Description ?? Description ;
8758 Name = securityScheme ? . Name ?? Name ;
@@ -91,27 +62,25 @@ public OpenApiSecurityScheme(OpenApiSecurityScheme securityScheme)
9162 Flows = securityScheme ? . Flows != null ? new ( securityScheme ? . Flows ) : null ;
9263 OpenIdConnectUrl = securityScheme ? . OpenIdConnectUrl != null ? new Uri ( securityScheme . OpenIdConnectUrl . OriginalString , UriKind . RelativeOrAbsolute ) : null ;
9364 Extensions = securityScheme ? . Extensions != null ? new Dictionary < string , IOpenApiExtension > ( securityScheme . Extensions ) : null ;
94- UnresolvedReference = securityScheme ? . UnresolvedReference ?? UnresolvedReference ;
95- Reference = securityScheme ? . Reference != null ? new ( securityScheme ? . Reference ) : null ;
9665 }
9766
9867 /// <summary>
9968 /// Serialize <see cref="OpenApiSecurityScheme"/> to Open Api v3.1
10069 /// </summary>
101- public virtual void SerializeAsV31 ( IOpenApiWriter writer )
70+ public void SerializeAsV31 ( IOpenApiWriter writer )
10271 {
10372 SerializeInternal ( writer , OpenApiSpecVersion . OpenApi3_1 , ( writer , element ) => element . SerializeAsV31 ( writer ) ) ;
10473 }
10574
10675 /// <summary>
10776 /// Serialize <see cref="OpenApiSecurityScheme"/> to Open Api v3.0
10877 /// </summary>
109- public virtual void SerializeAsV3 ( IOpenApiWriter writer )
78+ public void SerializeAsV3 ( IOpenApiWriter writer )
11079 {
11180 SerializeInternal ( writer , OpenApiSpecVersion . OpenApi3_0 , ( writer , element ) => element . SerializeAsV3 ( writer ) ) ;
11281 }
11382
114- internal virtual void SerializeInternal ( IOpenApiWriter writer , OpenApiSpecVersion version ,
83+ private void SerializeInternal ( IOpenApiWriter writer , OpenApiSpecVersion version ,
11584 Action < IOpenApiWriter , IOpenApiSerializable > callback )
11685 {
11786 Utils . CheckArgumentNull ( writer ) ;
@@ -161,7 +130,7 @@ internal virtual void SerializeInternal(IOpenApiWriter writer, OpenApiSpecVersio
161130 /// <summary>
162131 /// Serialize <see cref="OpenApiSecurityScheme"/> to Open Api v2.0
163132 /// </summary>
164- public virtual void SerializeAsV2 ( IOpenApiWriter writer )
133+ public void SerializeAsV2 ( IOpenApiWriter writer )
165134 {
166135 Utils . CheckArgumentNull ( writer ) ;
167136
0 commit comments