diff --git a/src/Microsoft.OpenApi/Models/Interfaces/IOpenApiParameter.cs b/src/Microsoft.OpenApi/Models/Interfaces/IOpenApiParameter.cs
index 5669a0bb3..586043d79 100644
--- a/src/Microsoft.OpenApi/Models/Interfaces/IOpenApiParameter.cs
+++ b/src/Microsoft.OpenApi/Models/Interfaces/IOpenApiParameter.cs
@@ -1,4 +1,5 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using System.Text.Json.Nodes;
namespace Microsoft.OpenApi;
@@ -42,6 +43,7 @@ public interface IOpenApiParameter : IOpenApiDescribedElement, IOpenApiReadOnlyE
/// If style is used, and if behavior is n/a (cannot be serialized),
/// the value of allowEmptyValue SHALL be ignored.
///
+ [Obsolete("Use of AllowEmptyValue is not recommended and it is likely to be removed in a later revision.")]
public bool AllowEmptyValue { get; }
///
diff --git a/src/Microsoft.OpenApi/Models/Interfaces/IOpenApiSchema.cs b/src/Microsoft.OpenApi/Models/Interfaces/IOpenApiSchema.cs
index 7cb85f100..476b2a853 100644
--- a/src/Microsoft.OpenApi/Models/Interfaces/IOpenApiSchema.cs
+++ b/src/Microsoft.OpenApi/Models/Interfaces/IOpenApiSchema.cs
@@ -243,6 +243,7 @@ public interface IOpenApiSchema : IOpenApiDescribedElement, IOpenApiReadOnlyExte
/// You must use the method to check whether Default was assigned a null value in the document.
/// Assign to use get null as a serialized value.
///
+ [Obsolete("Use Examples instead.")]
public JsonNode? Example { get; }
///
diff --git a/src/Microsoft.OpenApi/Models/JsonSchemaReference.cs b/src/Microsoft.OpenApi/Models/JsonSchemaReference.cs
index 51fec64c6..c495ddbea 100644
--- a/src/Microsoft.OpenApi/Models/JsonSchemaReference.cs
+++ b/src/Microsoft.OpenApi/Models/JsonSchemaReference.cs
@@ -8,6 +8,8 @@
namespace Microsoft.OpenApi;
+#pragma warning disable CS0618
+
///
/// Schema reference information that includes metadata annotations from JSON Schema 2020-12.
/// This class extends OpenApiReference to provide schema-specific metadata override capabilities.
@@ -267,6 +269,7 @@ public string? Const
/// A free-form property to include an example of an instance for this schema.
/// Follow OpenAPI Schema Object definition.
///
+ [Obsolete("Use Examples instead.")]
public JsonNode? Example { get; set; }
///
diff --git a/src/Microsoft.OpenApi/Models/OpenApiParameter.cs b/src/Microsoft.OpenApi/Models/OpenApiParameter.cs
index d6b060a78..24c8db173 100644
--- a/src/Microsoft.OpenApi/Models/OpenApiParameter.cs
+++ b/src/Microsoft.OpenApi/Models/OpenApiParameter.cs
@@ -8,6 +8,7 @@
namespace Microsoft.OpenApi
{
+#pragma warning disable CS0618
///
/// Parameter Object.
///
@@ -32,6 +33,7 @@ public class OpenApiParameter : IOpenApiExtensible, IOpenApiParameter
public bool Deprecated { get; set; }
///
+ [Obsolete("Use of AllowEmptyValue is not recommended and it is likely to be removed in a later revision.")]
public bool AllowEmptyValue { get; set; }
///
diff --git a/src/Microsoft.OpenApi/Models/OpenApiSchema.cs b/src/Microsoft.OpenApi/Models/OpenApiSchema.cs
index ebaa49897..2aceda191 100644
--- a/src/Microsoft.OpenApi/Models/OpenApiSchema.cs
+++ b/src/Microsoft.OpenApi/Models/OpenApiSchema.cs
@@ -251,6 +251,7 @@ public string? Minimum
public OpenApiDiscriminator? Discriminator { get; set; }
///
+ [Obsolete("Use Examples instead.")]
public JsonNode? Example { get; set; }
///
@@ -963,7 +964,10 @@ private void SerializeAsV2(
writer.WriteOptionalObject(OpenApiConstants.ExternalDocs, ExternalDocs, (w, s) => s.SerializeAsV2(w));
// example
+#pragma warning disable CS0618
writer.WriteOptionalObject(OpenApiConstants.Example, GetCompatibilityExample(), (w, e) => w.WriteAny(e));
+ writer.WriteOptionalObject(OpenApiConstants.Example, Example, (w, e) => w.WriteAny(e));
+#pragma warning restore CS0618
// x-nullable extension
SerializeNullable(writer, OpenApiSpecVersion.OpenApi2_0);
@@ -1032,7 +1036,9 @@ private bool TrySerializeTypeProperty(IOpenApiWriter writer, OpenApiSpecVersion
private JsonNode? GetCompatibilityExample()
{
+#pragma warning disable CS0618 // Type or member is obsolete
return Example ?? Examples?.FirstOrDefault();
+#pragma warning restore CS0618 // Type or member is obsolete
}
private IEnumerable? GetCompatibilityExamplesExtension()
@@ -1042,10 +1048,12 @@ private bool TrySerializeTypeProperty(IOpenApiWriter writer, OpenApiSpecVersion
return null;
}
+#pragma warning disable CS0618 // Type or member is obsolete
if (Example is not null)
{
return Examples;
}
+#pragma warning restore CS0618 // Type or member is obsolete
return Examples.Count > 1 ? Examples.Skip(1) : null;
}
diff --git a/src/Microsoft.OpenApi/Models/OpenApiXml.cs b/src/Microsoft.OpenApi/Models/OpenApiXml.cs
index 82d7c2180..6e4e88962 100644
--- a/src/Microsoft.OpenApi/Models/OpenApiXml.cs
+++ b/src/Microsoft.OpenApi/Models/OpenApiXml.cs
@@ -30,7 +30,7 @@ public class OpenApiXml : IOpenApiSerializable, IOpenApiExtensible
/// Declares whether the property definition translates to an attribute instead of an element.
/// Default value is false.
///
- [Obsolete("Use NodeType property instead. This property will be removed in a future version.")]
+ [Obsolete("Use NodeType set to OpenApiXmlNodeType.Attribute instead. This property will be removed in a future version.")]
internal bool Attribute
{
get
@@ -47,7 +47,7 @@ internal bool Attribute
/// Signifies whether the array is wrapped.
/// Default value is false.
///
- [Obsolete("Use NodeType property instead. This property will be removed in a future version.")]
+ [Obsolete("Use NodeType set to OpenApiXmlNodeType.Element instead. This property will be removed in a future version.")]
internal bool Wrapped
{
get
diff --git a/src/Microsoft.OpenApi/Models/References/OpenApiParameterReference.cs b/src/Microsoft.OpenApi/Models/References/OpenApiParameterReference.cs
index 3c9670ac5..a4e3ea4de 100644
--- a/src/Microsoft.OpenApi/Models/References/OpenApiParameterReference.cs
+++ b/src/Microsoft.OpenApi/Models/References/OpenApiParameterReference.cs
@@ -1,11 +1,13 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
+using System;
using System.Collections.Generic;
using System.Text.Json.Nodes;
namespace Microsoft.OpenApi
{
+#pragma warning disable CS0618
///
/// Parameter Object Reference.
///
@@ -50,6 +52,7 @@ public string? Description
public bool Deprecated { get => Target?.Deprecated ?? default; }
///
+ [Obsolete("Use of AllowEmptyValue is not recommended and it is likely to be removed in a later revision.")]
public bool AllowEmptyValue { get => Target?.AllowEmptyValue ?? default; }
///
diff --git a/src/Microsoft.OpenApi/Models/References/OpenApiSchemaReference.cs b/src/Microsoft.OpenApi/Models/References/OpenApiSchemaReference.cs
index 6a9455775..532060345 100644
--- a/src/Microsoft.OpenApi/Models/References/OpenApiSchemaReference.cs
+++ b/src/Microsoft.OpenApi/Models/References/OpenApiSchemaReference.cs
@@ -167,6 +167,7 @@ public bool WriteOnly
///
public OpenApiDiscriminator? Discriminator { get => Reference.Discriminator ?? Target?.Discriminator; set => Reference.Discriminator = value; }
///
+ [Obsolete("Use Examples instead.")]
public JsonNode? Example { get => Reference.Example ?? Target?.Example; set => Reference.Example = value; }
///
public IList? Examples
diff --git a/src/Microsoft.OpenApi/Reader/V2/OpenApiParameterDeserializer.cs b/src/Microsoft.OpenApi/Reader/V2/OpenApiParameterDeserializer.cs
index e020aedc1..5fb2ec88a 100644
--- a/src/Microsoft.OpenApi/Reader/V2/OpenApiParameterDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V2/OpenApiParameterDeserializer.cs
@@ -7,6 +7,8 @@
using System.Collections.Generic;
using System.Globalization;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Reader.V2
{
///
diff --git a/src/Microsoft.OpenApi/Reader/V2/OpenApiSchemaDeserializer.cs b/src/Microsoft.OpenApi/Reader/V2/OpenApiSchemaDeserializer.cs
index 25d36eff1..9e181fdcd 100644
--- a/src/Microsoft.OpenApi/Reader/V2/OpenApiSchemaDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V2/OpenApiSchemaDeserializer.cs
@@ -8,6 +8,8 @@
using System.Text.Json;
using System.Text.Json.Nodes;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Reader.V2
{
///
diff --git a/src/Microsoft.OpenApi/Reader/V3/OpenApiParameterDeserializer.cs b/src/Microsoft.OpenApi/Reader/V3/OpenApiParameterDeserializer.cs
index 1f589e2ff..435515658 100644
--- a/src/Microsoft.OpenApi/Reader/V3/OpenApiParameterDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V3/OpenApiParameterDeserializer.cs
@@ -5,6 +5,8 @@
using System;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Reader.V3
{
///
diff --git a/src/Microsoft.OpenApi/Reader/V3/OpenApiSchemaDeserializer.cs b/src/Microsoft.OpenApi/Reader/V3/OpenApiSchemaDeserializer.cs
index 9b85fcf51..55293c7c5 100644
--- a/src/Microsoft.OpenApi/Reader/V3/OpenApiSchemaDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V3/OpenApiSchemaDeserializer.cs
@@ -9,6 +9,8 @@
using System.Text.Json;
using System.Text.Json.Nodes;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Reader.V3
{
///
diff --git a/src/Microsoft.OpenApi/Reader/V31/OpenApiParameterDeserializer.cs b/src/Microsoft.OpenApi/Reader/V31/OpenApiParameterDeserializer.cs
index 2755e5324..177342fb4 100644
--- a/src/Microsoft.OpenApi/Reader/V31/OpenApiParameterDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V31/OpenApiParameterDeserializer.cs
@@ -1,6 +1,8 @@
using System;
using System.Text.Json.Nodes;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Reader.V31
{
///
diff --git a/src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs b/src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs
index d09df2101..52ca0912b 100644
--- a/src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs
@@ -8,6 +8,8 @@
using System.Text.Json;
using System.Text.Json.Nodes;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Reader.V31;
internal static partial class OpenApiV31Deserializer
diff --git a/src/Microsoft.OpenApi/Reader/V32/OpenApiParameterDeserializer.cs b/src/Microsoft.OpenApi/Reader/V32/OpenApiParameterDeserializer.cs
index 5eadec1c9..4a8300766 100644
--- a/src/Microsoft.OpenApi/Reader/V32/OpenApiParameterDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V32/OpenApiParameterDeserializer.cs
@@ -1,6 +1,8 @@
using System;
using System.Text.Json.Nodes;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Reader.V32
{
///
diff --git a/src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs b/src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs
index c7f1d50b2..b038fa6e5 100644
--- a/src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs
@@ -8,6 +8,8 @@
using System.Text.Json;
using System.Text.Json.Nodes;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Reader.V32;
internal static partial class OpenApiV32Deserializer
diff --git a/src/Microsoft.OpenApi/Validations/Rules/OpenApiNonDefaultRules.cs b/src/Microsoft.OpenApi/Validations/Rules/OpenApiNonDefaultRules.cs
index 2bc019667..b5a398cb1 100644
--- a/src/Microsoft.OpenApi/Validations/Rules/OpenApiNonDefaultRules.cs
+++ b/src/Microsoft.OpenApi/Validations/Rules/OpenApiNonDefaultRules.cs
@@ -7,6 +7,7 @@
namespace Microsoft.OpenApi
{
+#pragma warning disable CS0618
///
/// Defines a non-default set of rules for validating examples in header, media type and parameter objects against the schema
///
diff --git a/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSchemaTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSchemaTests.cs
index 5822d2239..5afea3cb4 100644
--- a/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSchemaTests.cs
+++ b/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSchemaTests.cs
@@ -12,6 +12,8 @@
using Microsoft.OpenApi.Tests;
using Xunit;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Readers.Tests.V2Tests
{
[Collection("DefaultSettings")]
diff --git a/test/Microsoft.OpenApi.Readers.Tests/V31Tests/OpenApiDocumentTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V31Tests/OpenApiDocumentTests.cs
index f764f7e60..d5f3565c8 100644
--- a/test/Microsoft.OpenApi.Readers.Tests/V31Tests/OpenApiDocumentTests.cs
+++ b/test/Microsoft.OpenApi.Readers.Tests/V31Tests/OpenApiDocumentTests.cs
@@ -10,6 +10,8 @@
using System;
using System.Net.Http;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Readers.Tests.V31Tests
{
public class OpenApiDocumentTests
diff --git a/test/Microsoft.OpenApi.Readers.Tests/V31Tests/OpenApiSchemaTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V31Tests/OpenApiSchemaTests.cs
index 8f3314db2..fe4c74ff5 100644
--- a/test/Microsoft.OpenApi.Readers.Tests/V31Tests/OpenApiSchemaTests.cs
+++ b/test/Microsoft.OpenApi.Readers.Tests/V31Tests/OpenApiSchemaTests.cs
@@ -14,6 +14,8 @@
using Microsoft.OpenApi.Tests;
using Xunit;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Readers.Tests.V31Tests
{
public class OpenApiSchemaTests
diff --git a/test/Microsoft.OpenApi.Readers.Tests/V32Tests/OpenApiDocumentTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V32Tests/OpenApiDocumentTests.cs
index 79f2d990f..1c374a8d1 100644
--- a/test/Microsoft.OpenApi.Readers.Tests/V32Tests/OpenApiDocumentTests.cs
+++ b/test/Microsoft.OpenApi.Readers.Tests/V32Tests/OpenApiDocumentTests.cs
@@ -10,6 +10,8 @@
using System;
using System.Net.Http;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Readers.Tests.V32Tests
{
public class OpenApiDocumentTests
diff --git a/test/Microsoft.OpenApi.Readers.Tests/V32Tests/OpenApiSchemaTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V32Tests/OpenApiSchemaTests.cs
index ff1619802..166d15978 100644
--- a/test/Microsoft.OpenApi.Readers.Tests/V32Tests/OpenApiSchemaTests.cs
+++ b/test/Microsoft.OpenApi.Readers.Tests/V32Tests/OpenApiSchemaTests.cs
@@ -13,6 +13,8 @@
using Xunit;
using System;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Readers.Tests.V32Tests
{
public class OpenApiSchemaTests
diff --git a/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSchemaTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSchemaTests.cs
index cda5c4c72..fab39f674 100644
--- a/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSchemaTests.cs
+++ b/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSchemaTests.cs
@@ -15,6 +15,8 @@
using SharpYaml.Serialization;
using Xunit;
+#pragma warning disable CS0618
+
namespace Microsoft.OpenApi.Readers.Tests.V3Tests
{
[Collection("DefaultSettings")]
diff --git a/test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs b/test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs
index e566d5cb3..db4de6355 100644
--- a/test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs
+++ b/test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs
@@ -623,6 +623,7 @@ public static TheoryData SchemaExamples()
[Theory]
[MemberData(nameof(SchemaExamples))]
+#pragma warning disable CS0618
public void CloningSchemaExamplesWorks(JsonNode example)
{
// Arrange
@@ -639,6 +640,7 @@ public void CloningSchemaExamplesWorks(JsonNode example)
.IgnoringCyclicReferences()
.Excluding(x => x.Options));
}
+#pragma warning restore CS0618
[Fact]
public void CloningSchemaExtensionsWorks()
@@ -1945,7 +1947,9 @@ public void DeserializeExamplesExtensionInV2AssignsExamplesProperty()
Assert.Empty(readResult.Diagnostic.Errors);
var schema = readResult.Document.Components.Schemas["TestSchema"];
+#pragma warning disable CS0618 // Type or member is obsolete
Assert.Equal("primary example", schema.Example?.GetValue());
+#pragma warning restore CS0618 // Type or member is obsolete
Assert.NotNull(schema.Examples);
Assert.Collection(
schema.Examples,
@@ -1981,7 +1985,9 @@ public void DeserializeExamplesExtensionInV3AssignsExamplesProperty()
Assert.Empty(readResult.Diagnostic.Errors);
var schema = readResult.Document.Components.Schemas["TestSchema"];
+#pragma warning disable CS0618 // Type or member is obsolete
Assert.Equal("primary example", schema.Example?.GetValue());
+#pragma warning restore CS0618 // Type or member is obsolete
Assert.NotNull(schema.Examples);
Assert.Collection(
schema.Examples,
diff --git a/test/Microsoft.OpenApi.Tests/Validations/OpenApiSchemaValidationTests.cs b/test/Microsoft.OpenApi.Tests/Validations/OpenApiSchemaValidationTests.cs
index 0cb229534..8a5751666 100644
--- a/test/Microsoft.OpenApi.Tests/Validations/OpenApiSchemaValidationTests.cs
+++ b/test/Microsoft.OpenApi.Tests/Validations/OpenApiSchemaValidationTests.cs
@@ -36,6 +36,7 @@ public void ValidateDefaultShouldNotHaveDataTypeMismatchForSimpleSchema()
}
[Fact]
+#pragma warning disable CS0618
public void ValidateExampleAndDefaultShouldNotHaveDataTypeMismatchForSimpleSchema()
{
// Arrange
@@ -58,6 +59,7 @@ public void ValidateExampleAndDefaultShouldNotHaveDataTypeMismatchForSimpleSchem
// Assert
Assert.True(result);
}
+#pragma warning restore CS0618
[Fact]
public void ValidateEnumShouldNotHaveDataTypeMismatchForSimpleSchema()