diff --git a/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj b/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj index 8e03fb23..f8cb727c 100644 --- a/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj +++ b/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj @@ -30,7 +30,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Generator/OpenApiSchemaGeneratorTests.cs b/test/Microsoft.OpenAPI.OData.Reader.Tests/Generator/OpenApiSchemaGeneratorTests.cs index b9698650..630e59f2 100644 --- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Generator/OpenApiSchemaGeneratorTests.cs +++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Generator/OpenApiSchemaGeneratorTests.cs @@ -368,75 +368,71 @@ public async Task CreateStructuredTypePropertiesSchemaWithCustomAttributeReturns // Assert Assert.NotNull(json); - Assert.True(JsonObject.DeepEquals(JsonObject.Parse(@"{ - ""allOf"": [ + Assert.True(JsonNode.DeepEquals(JsonNode.Parse( +""" +{ + "allOf": [ { - ""$ref"": ""#/components/schemas/microsoft.graph.entity"" + "$ref": "#/components/schemas/microsoft.graph.entity" }, { - ""title"": ""userSettings"", - ""type"": ""object"", - ""properties"": { - ""contributionToContentDiscoveryAsOrganizationDisabled"": { - ""type"": ""boolean"", - ""description"": ""Reflects the Office Delve organization level setting. When set to true, the organization doesn't have access to Office Delve. This setting is read-only and can only be changed by administrators in the SharePoint admin center."" + "title": "userSettings", + "type": "object", + "properties": { + "contributionToContentDiscoveryAsOrganizationDisabled": { + "type": "boolean", + "description": "Reflects the Office Delve organization level setting. When set to true, the organization doesn't have access to Office Delve. This setting is read-only and can only be changed by administrators in the SharePoint admin center." }, - ""contributionToContentDiscoveryDisabled"": { - ""type"": ""boolean"", - ""description"": ""When set to true, documents in the user's Office Delve are disabled. Users can control this setting in Office Delve."" + "contributionToContentDiscoveryDisabled": { + "type": "boolean", + "description": "When set to true, documents in the user's Office Delve are disabled. Users can control this setting in Office Delve." }, - ""itemInsights"": { - ""anyOf"": [ + "itemInsights": { + "anyOf": [ { - ""$ref"": ""#/components/schemas/microsoft.graph.userInsightsSettings"" - }, - { - ""nullable"": true + "$ref": "#/components/schemas/microsoft.graph.userInsightsSettings" } ], - ""description"": ""The user's settings for the visibility of meeting hour insights, and insights derived between a user and other items in Microsoft 365, such as documents or sites. Get userInsightsSettings through this navigation property."", - ""x-ms-navigationProperty"": true + "description": "The user's settings for the visibility of meeting hour insights, and insights derived between a user and other items in Microsoft 365, such as documents or sites. Get userInsightsSettings through this navigation property.", + "nullable": true, + "x-ms-navigationProperty": true }, - ""contactMergeSuggestions"": { - ""anyOf"": [ + "contactMergeSuggestions": { + "anyOf": [ { - ""$ref"": ""#/components/schemas/microsoft.graph.contactMergeSuggestions"" - }, - { - ""nullable"": true + "$ref": "#/components/schemas/microsoft.graph.contactMergeSuggestions" } ], - ""description"": ""The user's settings for the visibility of merge suggestion for the duplicate contacts in the user's contact list."", - ""x-ms-navigationProperty"": true + "description": "The user's settings for the visibility of merge suggestion for the duplicate contacts in the user's contact list.", + "nullable": true, + "x-ms-navigationProperty": true }, - ""regionalAndLanguageSettings"": { - ""anyOf"": [ - { - ""$ref"": ""#/components/schemas/microsoft.graph.regionalAndLanguageSettings"" - }, + "regionalAndLanguageSettings": { + "anyOf": [ { - ""nullable"": true + "$ref": "#/components/schemas/microsoft.graph.regionalAndLanguageSettings" } ], - ""description"": ""The user's preferences for languages, regional locale and date/time formatting."", - ""x-ms-navigationProperty"": true + "description": "The user's preferences for languages, regional locale and date/time formatting.", + "nullable": true, + "x-ms-navigationProperty": true }, - ""shiftPreferences"": { - ""anyOf"": [ - { - ""$ref"": ""#/components/schemas/microsoft.graph.shiftPreferences"" - }, + "shiftPreferences": { + "anyOf": [ { - ""nullable"": true + "$ref": "#/components/schemas/microsoft.graph.shiftPreferences" } ], - ""description"": ""The shift preferences for the user."", - ""x-ms-navigationProperty"": true + "description": "The shift preferences for the user.", + "nullable": true, + "x-ms-navigationProperty": true } } } ] -}"), JsonObject.Parse(json))); +} +""" + ), JsonNode.Parse(json))); } [Fact] @@ -920,12 +916,10 @@ public async Task CreatePropertySchemaForNullableEnumPropertyReturnSchema(OpenAp "anyOf": [ { "$ref": "#/components/schemas/DefaultNs.Color" - }, - { - "nullable": true } ], - "default": "yellow" + "default": "yellow", + "nullable": true } """, OpenApiSpecVersion.OpenApi3_1 => diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.json b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.json index b99bebf5..6963fb45 100644 --- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.json +++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.json @@ -5017,14 +5017,13 @@ "format": "int32" }, "Document": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true } }, @@ -5365,36 +5364,33 @@ } }, "Library": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "LastRevisionFile": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.DocumentFile.DocumentFile" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "SourceDocument": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "SourceDocumentChildren": { @@ -5536,14 +5532,13 @@ "type": "boolean" }, "Document": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true } }, @@ -5606,25 +5601,23 @@ "format": "date-time" }, "Document": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "Tag": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Tags.Tag" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true } }, @@ -5865,36 +5858,33 @@ "format": "int32" }, "LibraryParent": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "Type": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.LibraryType" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "SourceFolder": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "Documents": { @@ -6065,25 +6055,23 @@ "type": "boolean" }, "MasterLibraryType": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.LibraryType" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "ParentLibraryTypes": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.LibraryType" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "MasterLibraryTypeChildren": { @@ -6591,14 +6579,13 @@ "nullable": true }, "Document": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true } }, diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.yaml b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.yaml index 15f72b15..3d5b1135 100644 --- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.yaml +++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.yaml @@ -3532,9 +3532,10 @@ components: type: number format: int32 Document: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document' - - nullable: true + nullable: true x-ms-navigationProperty: true example: Id: 0 @@ -3809,19 +3810,22 @@ components: items: $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.DocumentTagRel' Library: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library' - - nullable: true + nullable: true x-ms-navigationProperty: true LastRevisionFile: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.DocumentFile.DocumentFile' - - nullable: true + nullable: true x-ms-navigationProperty: true SourceDocument: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document' - - nullable: true + nullable: true x-ms-navigationProperty: true SourceDocumentChildren: type: array @@ -3932,9 +3936,10 @@ components: IsPrimary: type: boolean Document: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document' - - nullable: true + nullable: true x-ms-navigationProperty: true example: ClassInstance: 0 @@ -3985,14 +3990,16 @@ components: type: string format: date-time Document: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document' - - nullable: true + nullable: true x-ms-navigationProperty: true Tag: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Tags.Tag' - - nullable: true + nullable: true x-ms-navigationProperty: true example: DocumentId: 0 @@ -4190,19 +4197,22 @@ components: type: number format: int32 LibraryParent: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library' - - nullable: true + nullable: true x-ms-navigationProperty: true Type: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.LibraryType' - - nullable: true + nullable: true x-ms-navigationProperty: true SourceFolder: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library' - - nullable: true + nullable: true x-ms-navigationProperty: true Documents: type: array @@ -4337,14 +4347,16 @@ components: HasChanged: type: boolean MasterLibraryType: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.LibraryType' - - nullable: true + nullable: true x-ms-navigationProperty: true ParentLibraryTypes: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.LibraryType' - - nullable: true + nullable: true x-ms-navigationProperty: true MasterLibraryTypeChildren: type: array @@ -4729,9 +4741,10 @@ components: format: date-time nullable: true Document: + type: object anyOf: - $ref: '#/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document' - - nullable: true + nullable: true x-ms-navigationProperty: true example: Id: 0 diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.json b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.json index 9f930ed6..02544ed6 100644 --- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.json +++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.json @@ -1419,14 +1419,13 @@ "content": { "application/json": { "schema": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airport" - }, - { - "nullable": true } - ] + ], + "nullable": true } } } @@ -1453,14 +1452,13 @@ "content": { "application/json": { "schema": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person" - }, - { - "nullable": true } - ] + ], + "nullable": true } } } @@ -7558,7 +7556,7 @@ } }, "deprecated": true, - "security": [], + "security": [ ], "x-ms-deprecation": { "removalDate": "2023-03-15T00:00:00.0000000+00:00", "date": "2021-08-24T00:00:00.0000000+00:00", @@ -11721,14 +11719,13 @@ "type": "object", "properties": { "hire": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person" - }, - { - "nullable": true } - ] + ], + "nullable": true } } } @@ -11892,7 +11889,7 @@ } }, "deprecated": true, - "security": [], + "security": [ ], "x-ms-deprecation": { "removalDate": "2023-03-15T00:00:00.0000000+00:00", "date": "2021-08-24T00:00:00.0000000+00:00", @@ -12932,7 +12929,7 @@ } }, "deprecated": true, - "security": [], + "security": [ ], "x-ms-deprecation": { "removalDate": "2023-03-15T00:00:00.0000000+00:00", "date": "2021-08-24T00:00:00.0000000+00:00", @@ -17007,14 +17004,13 @@ "type": "object", "properties": { "hire": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person" - }, - { - "nullable": true } - ] + ], + "nullable": true } } } @@ -17372,7 +17368,7 @@ "$ref": "#/components/responses/error" } }, - "security": [], + "security": [ ], "x-ms-docs-operation-type": "operation" } }, @@ -25758,7 +25754,7 @@ } }, "deprecated": true, - "security": [], + "security": [ ], "x-ms-deprecation": { "removalDate": "2023-03-15T00:00:00.0000000+00:00", "date": "2021-08-24T00:00:00.0000000+00:00", @@ -30791,14 +30787,13 @@ "type": "object", "properties": { "hire": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person" - }, - { - "nullable": true } - ] + ], + "nullable": true } } } @@ -30984,7 +30979,7 @@ } }, "deprecated": true, - "security": [], + "security": [ ], "x-ms-deprecation": { "removalDate": "2023-03-15T00:00:00.0000000+00:00", "date": "2021-08-24T00:00:00.0000000+00:00", @@ -32227,7 +32222,7 @@ } }, "deprecated": true, - "security": [], + "security": [ ], "x-ms-deprecation": { "removalDate": "2023-03-15T00:00:00.0000000+00:00", "date": "2021-08-24T00:00:00.0000000+00:00", @@ -33810,14 +33805,13 @@ } }, "HomeAddress": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location" - }, - { - "nullable": true } - ] + ], + "nullable": true }, "FavoriteFeature": { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Feature" @@ -33842,15 +33836,14 @@ "x-ms-navigationProperty": true }, "BestFriend": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person" - }, - { - "nullable": true } ], "description": "The best friend.", + "nullable": true, "x-ms-navigationProperty": true }, "Trips": { @@ -33895,11 +33888,9 @@ "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.AirportLocation" - }, - { - "nullable": true } - ] + ], + "nullable": true } } }, @@ -33912,14 +33903,13 @@ "nullable": true }, "City": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.City" - }, - { - "nullable": true } - ] + ], + "nullable": true } } }, @@ -33954,15 +33944,14 @@ "$ref": "#/components/schemas/Edm.GeographyPoint" }, "EmergencyAuthority": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person" - }, - { - "nullable": true } ], "description": "The person to contact in case of a crisis at this location.", + "nullable": true, "x-ms-navigationProperty": true } } @@ -34032,10 +34021,10 @@ "nullable": true } }, - "TripData": {}, + "TripData": { }, "DestinationInfo": { "type": "array", - "items": {} + "items": { } }, "StartsAt": { "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$", @@ -34100,11 +34089,9 @@ "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.EventLocation" - }, - { - "nullable": true } - ] + ], + "nullable": true }, "Description": { "type": "string", @@ -34145,36 +34132,33 @@ "nullable": true }, "Airline": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airline" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "From": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airport" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true }, "To": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airport" - }, - { - "nullable": true } ], + "nullable": true, "x-ms-navigationProperty": true } } @@ -34237,14 +34221,13 @@ ] }, "BossOffice": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location" - }, - { - "nullable": true } - ] + ], + "nullable": true }, "DirectReports": { "type": "array", @@ -34580,14 +34563,13 @@ "content": { "application/json": { "schema": { + "type": "object", "anyOf": [ { "$ref": "#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airline" - }, - { - "nullable": true } - ] + ], + "nullable": true } } } @@ -34807,9 +34789,9 @@ "Tags": [ "string" ], - "TripData": {}, + "TripData": { }, "DestinationInfo": [ - {} + { } ], "StartsAt": "0001-01-01T00:00:00.0000000+00:00", "EndsAt": "0001-01-01T00:00:00.0000000+00:00", diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.yaml b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.yaml index a37ce4a4..ab75ef59 100644 --- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.yaml +++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.yaml @@ -916,9 +916,10 @@ paths: content: application/json: schema: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airport' - - nullable: true + nullable: true default: $ref: '#/components/responses/error' x-ms-docs-operation-type: functionImport @@ -936,9 +937,10 @@ paths: content: application/json: schema: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person' - - nullable: true + nullable: true default: $ref: '#/components/responses/error' x-ms-docs-operation-type: functionImport @@ -7815,9 +7817,10 @@ paths: type: object properties: hire: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person' - - nullable: true + nullable: true required: true responses: '204': @@ -11334,9 +11337,10 @@ paths: type: object properties: hire: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person' - - nullable: true + nullable: true required: true responses: '204': @@ -20605,9 +20609,10 @@ paths: type: object properties: hire: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person' - - nullable: true + nullable: true required: true responses: '204': @@ -22640,9 +22645,10 @@ components: items: $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location' HomeAddress: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location' - - nullable: true + nullable: true FavoriteFeature: $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Feature' Features: @@ -22660,10 +22666,11 @@ components: description: Friends of person x-ms-navigationProperty: true BestFriend: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person' - - nullable: true description: The best friend. + nullable: true x-ms-navigationProperty: true Trips: type: array @@ -22695,7 +22702,7 @@ components: Location: anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.AirportLocation' - - nullable: true + nullable: true Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location: title: Location type: object @@ -22704,9 +22711,10 @@ components: type: string nullable: true City: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.City' - - nullable: true + nullable: true Microsoft.OData.Service.Sample.TrippinInMemory.Models.City: title: City type: object @@ -22729,10 +22737,11 @@ components: Loc: $ref: '#/components/schemas/Edm.GeographyPoint' EmergencyAuthority: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person' - - nullable: true description: The person to contact in case of a crisis at this location. + nullable: true x-ms-navigationProperty: true Microsoft.OData.Service.Sample.TrippinInMemory.Models.EventLocation: allOf: @@ -22825,7 +22834,7 @@ components: OccursAt: anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.EventLocation' - - nullable: true + nullable: true Description: type: string nullable: true @@ -22848,19 +22857,22 @@ components: type: string nullable: true Airline: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airline' - - nullable: true + nullable: true x-ms-navigationProperty: true From: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airport' - - nullable: true + nullable: true x-ms-navigationProperty: true To: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airport' - - nullable: true + nullable: true x-ms-navigationProperty: true Microsoft.OData.Service.Sample.TrippinInMemory.Models.Employee: allOf: @@ -22894,9 +22906,10 @@ components: - type: string nullable: true BossOffice: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location' - - nullable: true + nullable: true DirectReports: type: array items: @@ -23111,9 +23124,10 @@ components: content: application/json: schema: + type: object anyOf: - $ref: '#/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airline' - - nullable: true + nullable: true GetFriendsTripsResponse: description: Success content: