From 2fdc2df5b371b0bb07f6d7b0b9e56772cf96eda1 Mon Sep 17 00:00:00 2001 From: ohip_automation_bot Date: Wed, 12 Jun 2024 08:20:48 +0000 Subject: [PATCH] Added distribution specs for release 23.5 --- .../outbound/distributionaripublication.json | 1072 +++++++++++++++++ 1 file changed, 1072 insertions(+) create mode 100644 rest-api-specs/distribution/outbound/distributionaripublication.json diff --git a/rest-api-specs/distribution/outbound/distributionaripublication.json b/rest-api-specs/distribution/outbound/distributionaripublication.json new file mode 100644 index 0000000..66939a0 --- /dev/null +++ b/rest-api-specs/distribution/outbound/distributionaripublication.json @@ -0,0 +1,1072 @@ +{ + "swagger": "2.0", + "info": { + "title": "OPERA Cloud Distribution ARI Publication", + "version": "23.5.0", + "contact": { + "email": "hospitality_apis_ww_grp@oracle.com" + }, + "license": { + "name": "UPL", + "url": "https://opensource.org/licenses/upl" + }, + "termsOfService": "https://www.oracle.com/legal/terms.html", + "description": "Oracle Hospitality Distribution ARI publication message specification for distribution partners to receive in real time property inventory, restrictions/availability, and rate schedules updates, also known as ARI. Partner receives this message will respond with success or error/warning so that property/CRS user can see the status of message delivery in OPERA. A channel code identifier is required in Oracle Hospitality Distribution to receive those messages.

Compatible with OPERA Cloud release 23.2.0.

This document and all content within is available under the Universal Permissive License v 1.0 (https://oss.oracle.com/licenses/upl). Copyright (c)2020, 2024 Oracle and/or its affiliates.



Compatible with OPERA Cloud release 23.5.0.

This document and all content within is available under the Universal Permissive License v 1.0 (https://oss.oracle.com/licenses/upl). Copyright (c) 2020, 2024 Oracle and/or its affiliates.

" + }, + "basePath": "/aripublication/v1", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/inventory": { + "post": { + "responses": { + "201": { + "headers": { + "Content-Language": { + "type": "string", + "description": "Audience language", + "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", + "x-example": "en-GB" + }, + "Location": { + "type": "string", + "description": "Location of process status resource" + } + }, + "description": "Response for publishing inventory" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "405": { + "$ref": "#/responses/405" + }, + "500": { + "$ref": "#/responses/500" + } + }, + "summary": "Publish Inventory", + "operationId": "Publish Inventory", + "description": "This message will provide property room type inventory (rooms to sell) by date to the distribution (full synchronization or delta updates)", + "tags": [ + "Publish Inventory" + ], + "parameters": [ + { + "name": "authorization", + "description": "Bearer token that needs to be passed which is generated post user authentication", + "type": "string", + "in": "header", + "required": true + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/OTA_HotelInvCountNotifRQ" + } + } + ], + "produces": [ + "application/json" + ] + } + }, + "/rates": { + "post": { + "responses": { + "201": { + "headers": { + "Content-Language": { + "type": "string", + "description": "Audience language", + "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", + "x-example": "en-GB" + }, + "Location": { + "type": "string", + "description": "Location of process status resource" + } + }, + "description": "Response for publishing rates" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "405": { + "$ref": "#/responses/405" + }, + "500": { + "$ref": "#/responses/500" + } + }, + "summary": "Publish Rates", + "operationId": "Publish Rates", + "description": "This message will provide property rate plan's rate schedules by date and room type to the distribution (full synchronization or delta updates)", + "tags": [ + "Publish Rates" + ], + "parameters": [ + { + "name": "authorization", + "description": "Bearer token that needs to be passed which is generated post user authentication", + "type": "string", + "in": "header", + "required": true + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/OTA_HotelRateAmountNotifRQ" + } + } + ], + "produces": [ + "application/json" + ] + } + }, + "/restrictions": { + "post": { + "responses": { + "201": { + "headers": { + "Content-Language": { + "type": "string", + "description": "Audience language", + "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", + "x-example": "en-GB" + }, + "Location": { + "type": "string", + "description": "Location of process status resource" + } + }, + "description": "Response for publishing restrictions" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "405": { + "$ref": "#/responses/405" + }, + "500": { + "$ref": "#/responses/500" + } + }, + "summary": "Publish Restrictions", + "operationId": "Publish Restrictions", + "description": "This message will provide property rate plan-room type restrictions by date to the distribution (full synchronization or delta updates)", + "tags": [ + "Publish Restrictions" + ], + "parameters": [ + { + "name": "authorization", + "description": "Bearer token that needs to be passed which is generated post user authentication", + "type": "string", + "in": "header", + "required": true + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/OTA_HotelRestrictionsNotifRQ" + } + } + ], + "produces": [ + "application/json" + ] + } + } + }, + "definitions": { + "UniqueId": { + "type": "string", + "description": "The unique identifier element allows the trading partners to uniquely identify each request of the same message, (i.e. the entire message) for transaction traceability", + "example": "234512-3432-234234234" + }, + "Timestamp": { + "type": "string", + "format": "DATE_TIME", + "description": "Indicates the creation date and time of the message in UTC using the following format specified by ISO 8601; YYYY-MM-DDThh:mm:ss.zzz with time values using the 24 hour clock (e.g. 20 November 2003, 1:59:38 pm UTC becomes 2003-11-20T13:59:38.000).", + "example": "2021-11-20T13:59:38.000" + }, + "ARI Publish Inventory": {}, + "ARI Publish Rates": {}, + "ARI Publish Restrictions": {}, + "OTA_HotelRestrictionsNotifRQ": { + "description": "The object provides property rate plan-room type restrictions by date to the distribution.", + "type": "object", + "properties": { + "hotelRestrictions": { + "$ref": "#/definitions/HotelRestriction" + } + } + }, + "HotelRestriction": { + "description": "A list of property rate plan-room type restrictions by date to the distribution.", + "type": "object", + "properties": { + "hotelCode": { + "type": "string", + "description": "A unique identifier value for the property/hotel associated with channel", + "example": "HOTELCODE" + }, + "channelCode": { + "type": "string", + "description": "Code for the channel which is receiving published data.", + "example": "CHANNELCODE" + }, + "chainCode": { + "type": "string", + "description": "If the property/hotel is part of the chain, the associated chain code.", + "example": "CHAINCODE" + }, + "brandCode": { + "type": "string", + "description": "A value of the brand code associated with channel", + "example": "BRANDCODE" + }, + "uniqueId": { + "$ref": "#/definitions/UniqueId" + }, + "timeStamp": { + "$ref": "#/definitions/Timestamp" + }, + "availStatusMessages": { + "type": "array", + "description": "The availStatusMessage indicates whether the inventory is opened, closed, closed on request, etc.", + "items": { + "$ref": "#/definitions/RestrictionAvailStatusMessage" + } + } + } + }, + "RestrictionAvailStatusMessage": { + "type": "object", + "required": [ + "statusApplicationControl" + ], + "properties": { + "statusApplicationControl": { + "$ref": "#/definitions/restrStatusApplicationControl" + }, + "lengthsOfStay": { + "type": "object", + "$ref": "#/definitions/lengthsOfStay" + }, + "restrictionStatus": { + "$ref": "#/definitions/RestrictionStatus" + } + } + }, + "lengthsOfStay": { + "type": "array", + "description": "Collection of Length of Stay (LOS) elements. These LOS elements indicate what LOS restrictions are to be added or removed.", + "items": { + "$ref": "#/definitions/lengthOfStay" + } + }, + "lengthOfStay": { + "type": "object", + "properties": { + "minMaxMessageType": { + "$ref": "#/definitions/LOSEnum" + }, + "time": { + "type": "string", + "description": "Used in conjunction with the minMaxMessageType and the time Unit to define the length of stay requirements. A value of zero is treated as no restriction.

Note: This attribute must be set unless using MinMaxMessageType=\"FullPatternLOS\".

", + "example": "0" + }, + "timeUnit": { + "$ref": "#/definitions/TimeUnitEnum", + "description": "A time unit used to apply this status message to other inventory, and with more granularity than daily.

Note: This attribute must be set unless using MinMaxMessageType=\"FullPatternLOS\".

" + }, + "losFixedPatternLength": { + "type": "integer", + "description": "The number of elements in the length of stay pattern. This attribute must be set when using MinMaxMessageType=\"FullPatternLOS\" and absent otherwise.", + "example": 7 + }, + "losPattern": { + "type": "string", + "description": "Defines the length of stay restriction pattern. This attribute must be set when using MinMaxMessageType=\"FullPatternLOS\" and absent otherwise. A sequence of Y and N characters indicating whether each length of stay is allowed, from one night to the value in FixedPatternLength. Any length of stay greater than FixedPatternLength inherits the value at the final position. For example, with FixedPatternLength=\"4\" and FullPatternLOS=\"YNYN\", only lengths of stay 1 and 3 are allowed.", + "example": "NYNNYYN" + } + } + }, + "TimeUnitEnum": { + "type": "string", + "description": "A time unit used to apply this status message to other inventory, and with more granularity than daily.

Day - Represents if the restriction is per day.

Hour - Represents if the restriction is hourly

Note: This attribute must be set unless using MinMaxMessageType=\"FullPatternLOS\".

", + "enum": [ + "Day", + "Hour" + ] + }, + "LOSEnum": { + "type": "string", + "description": "An enumerated type that represents various type of length of stay restrictions. It is used to define how the minimum and maximum LOS is applied.

MinLOS - Indicates Minimum length of stay restriction. Apply based on arrival date.

MaxLOS - Indicates Maximum length of Stay restriction. Apply based on arrival date.

RemoveMinLOS - Removes minimum lenth of stay restriction.

RemoveMaxLOS - Removes maximum lenth of stay restriction.

ForwardMinStay - Indicates a Minimum Stay Through restriction.

ForwardMaxStay - Indicates a Maximum Stay Through restriction.

RemoveForwardMinStay - Removes minimum foraward stay through restriction.

RemoveForwardMaxStay - Removes minimum foraward stay through restriction.

FullPatternLOS - Indicates Full Pattern Length of Stay restriction.

", + "externalDocs": { + "description": "Find out more about Oracle Hospitality Restriction", + "url": "https://docs.oracle.com/en/industries/hospitality/opera-cloud/23.4/ocsuh/c_availability_restrictions.htm#Restrictions-300570AD" + }, + "enum": [ + "MinLOS", + "MaxLOS", + "RemoveMinLOS", + "RemoveMaxLOS", + "ForwardMinStay", + "ForwardMaxStay", + "RemoveForwardMinStay", + "RemoveForwardMaxStay", + "FullPatternLOS" + ] + }, + "RestrictionStatus": { + "type": "object", + "description": "Availability status assigned to the room rate combination.", + "properties": { + "status": { + "$ref": "#/definitions/statusEnum" + }, + "restriction": { + "$ref": "#/definitions/restrictionEnum" + }, + "minAdvancedBookingOffset": { + "type": "string", + "description": "Minimum days before the arrival date for which this rate plan may be booked.", + "example": "0" + }, + "maxAdvancedBookingOffset": { + "type": "string", + "description": "Maximum days before the arrival date for which this rate plan may be booked.", + "example": "0" + } + } + }, + "statusEnum": { + "type": "string", + "description": "Identifies the availability status of an item.", + "enum": [ + "Open", + "Close" + ] + }, + "restrictionEnum": { + "type": "string", + "description": "The restriction type.

Arrival -It is applicable based on arrival date of a booking.

Departure - It is applicable based on arrival date of a booking.

Master - This value indicates whether the room rate is available for booking on the date. Note: setting Master to Close is known as a STOP SELL

", + "enum": [ + "Arrival", + "Departure", + "Master" + ] + }, + "OTA_HotelRateAmountNotifRQ": { + "type": "object", + "properties": { + "hotelRatePlans": { + "type": "object", + "$ref": "#/definitions/HotelRatePlan" + } + } + }, + "HotelRatePlan": { + "type": "object", + "properties": { + "uniqueId": { + "$ref": "#/definitions/UniqueId" + }, + "timeStamp": { + "$ref": "#/definitions/Timestamp" + }, + "hotelCode": { + "type": "string", + "description": "A unique identifier value for the property/hotel associated with channel", + "example": "HOTELCODE" + }, + "channelCode": { + "type": "string", + "description": "Code for the channel which is receiving published data.", + "example": "CHANNELCODE" + }, + "chainCode": { + "type": "string", + "description": "If the property/hotel is part of the chain, the associated chain code.", + "example": "CHAINCODE" + }, + "brandCode": { + "type": "string", + "description": "A value of the brand code associated with channel", + "example": "BRANDCODE" + }, + "ratePlans": { + "type": "array", + "items": { + "$ref": "#/definitions/RatePlan" + } + } + } + }, + "RatePlan": { + "type": "object", + "properties": { + "ratePlanNotifType": { + "type": "string", + "$ref": "#/definitions/ratePlanNotifTypeEnum", + "description": "Indicates the notification type", + "example": "Delta" + }, + "ratePlanCode": { + "type": "string", + "description": "The code for the rate plan.", + "example": "EX_DAILY" + }, + "rateCategory": { + "type": "string", + "description": "Rate Category for the rate plan.", + "example": "ABC" + }, + "commissionable": { + "type": "boolean", + "description": "Indicates if the rate code is commissionable or not.", + "example": true + }, + "currencyCode": { + "type": "string", + "description": "The code used for the rate plan code. ISO 4217 currency code", + "example": "USD" + }, + "startSellDate": { + "type": "string", + "description": "Start sell date of the rate code.", + "example": "2015-07-11" + }, + "endSellDate": { + "type": "string", + "description": "End sell date of the rate code.", + "example": "2015-07-11" + }, + "shortDescription": { + "type": "string", + "description": "The short description of the rate plan code.", + "example": "Best available rate" + }, + "rates": { + "type": "array", + "items": { + "$ref": "#/definitions/RateObject" + } + } + } + }, + "ratePlanNotifTypeEnum": { + "type": "string", + "description": "The type of notification to apply to every rate notification message.

Delta - Add or update the existing per-occupancy rates for the room type, rate plan, and dates specified in rate notification message.

New - Add new occupancy rates for the room type, rate plan, and dates specified in the rate notification message.

Overlay - Delete all of the per-occupancy rates for the room type, rate plan, and dates specified and replace them with new rates.

Remove - Delete all of the existing per-occupancy rates for the room type, rate plan, and dates.

", + "enum": [ + "Delta", + "New", + "Overlay", + "Remove" + ] + }, + "RateObject": { + "type": "object", + "properties": { + "invTypeCode": { + "type": "string", + "description": "Channelized room type code", + "example": "EX_A1K" + }, + "maxGuestApplicable": { + "type": "string", + "description": "Indicates maximum occupancy for the room type.", + "example": "" + }, + "start": { + "type": "string", + "description": "The starting value of the date range in the ISO 8601 Date Format.", + "example": "2015-07-11" + }, + "end": { + "type": "string", + "description": "The ending value of the date range in the ISO 8601 Date Format.", + "example": "2015-07-11" + }, + "sun": { + "type": "boolean", + "description": "Sunday, day of week value", + "example": true + }, + "mon": { + "type": "boolean", + "description": "Monday, day of week value", + "example": true + }, + "tue": { + "type": "boolean", + "description": "Tueday, day of week value", + "example": true + }, + "weds": { + "type": "boolean", + "description": "Wednesday, day of week value", + "example": true + }, + "thur": { + "type": "boolean", + "description": "Thursday, day of week value", + "example": true + }, + "fri": { + "type": "boolean", + "description": "Friday, day of week value", + "example": true + }, + "sat": { + "type": "boolean", + "description": "Saturday, day of week value", + "example": true + }, + "ratesAmounts": { + "type": "array", + "description": "Rate amounts for the channelized room rate", + "example": 100, + "items": { + "$ref": "#/definitions/RatesAmount" + } + } + } + }, + "RatesAmount": { + "type": "object", + "properties": { + "baseByGuestAmts": { + "type": "array", + "description": "Container for a collection of base charges.", + "items": { + "$ref": "#/definitions/BaseByGuestAmt" + }, + "example": [ + { + "ageQualifyingCode": "10", + "numberOfGuests": "1", + "amountBeforeTax": "80", + "amountAfterTax": "100" + }, + { + "ageQualifyingCode": "10", + "numberOfGuests": "2", + "amountBeforeTax": "80", + "amountAfterTax": "100" + }, + { + "ageQualifyingCode": "10", + "numberOfGuests": "3", + "amountBeforeTax": "80", + "amountAfterTax": "100" + }, + { + "ageQualifyingCode": "10", + "numberOfGuests": "4", + "amountBeforeTax": "80", + "amountAfterTax": "100" + }, + { + "ageQualifyingCode": "10", + "numberOfGuests": "5", + "amountBeforeTax": "80", + "amountAfterTax": "100" + } + ] + }, + "additionalGuestAmounts": { + "type": "array", + "description": "Container for a collection of charges for additional guests.", + "items": { + "$ref": "#/definitions/AdditionalGuestAmount" + }, + "example": [ + { + "ageQualifyingCode": "10", + "amount": "50" + }, + { + "ageQualifyingCode": "8", + "minAge": "2", + "maxAge": "8", + "amount": "50" + } + ] + } + } + }, + "BaseByGuestAmt": { + "type": "object", + "properties": { + "ageQualifyingCode": { + "type": "string", + "description": "The Age category of the guest(s). This field is mapped to OTA Code List Age Qualifying Code (AQC). Only the following codes are supported for AgeQualifyingCode: (10 - Adult, 8 - Child).", + "example": "8" + }, + "numberOfGuests": { + "type": "string", + "description": "Number of guests", + "example": "1" + }, + "amountBeforeTax": { + "type": "string", + "description": "Room Rate excluding all known taxes, fees and surcharges.", + "example": "80" + }, + "amountAfterTax": { + "type": "string", + "description": "Room Rate including all known taxes, fees and surcharges.", + "example": "100" + } + } + }, + "AdditionalGuestAmount": { + "type": "object", + "properties": { + "ageQualifyingCode": { + "type": "string", + "description": "The Age category of the guest(s). This field is mapped to OTA Code List Age Qualifying Code (AQC). Only the following codes are supported for AgeQualifyingCode: (10 - Adult, 8 - Child).", + "example": "10" + }, + "minAge": { + "type": "string", + "description": "Indicates minimum age of a person for the charges to be applicable.", + "example": "2" + }, + "maxAge": { + "type": "string", + "description": "Indicates maximum age of a person for the charges to be applicable.", + "example": "8" + }, + "amount": { + "type": "string", + "description": "Amount to be charged", + "example": "50" + } + } + }, + "OTA_HotelInvCountNotifRQ": { + "type": "object", + "properties": { + "hotelInventories": { + "type": "object", + "description": "The object to support a hotels inventory data per room type and date", + "$ref": "#/definitions/HotelInventoryCount" + } + } + }, + "HotelInventoryCount": { + "type": "object", + "properties": { + "uniqueId": { + "type": "object", + "$ref": "#/definitions/UniqueId" + }, + "timeStamp": { + "$ref": "#/definitions/Timestamp" + }, + "hotelCode": { + "type": "string", + "description": "A unique identifier value for the property/hotel associated with channel", + "example": "HOTELCODE" + }, + "channelCode": { + "type": "string", + "description": "Code for the channel which is receiving published data.", + "example": "CHANNELCODE" + }, + "chainCode": { + "type": "string", + "description": "If the property/hotel is part of the chain, the associated chain code.", + "example": "CHAINCODE" + }, + "brandCode": { + "type": "string", + "description": "A value of the brand code associated with channel", + "example": "BRANDCODE" + }, + "inventories": { + "type": "array", + "description": "The object to support room type inventory per start and end date", + "items": { + "$ref": "#/definitions/Inventory" + } + } + } + }, + "Inventory": { + "type": "object", + "properties": { + "statusApplicationControl": { + "$ref": "#/definitions/invStatusApplicationControl" + }, + "invCounts": { + "type": "array", + "description": "A container for defining a single inventory count.", + "items": { + "$ref": "#/definitions/InvCount" + } + } + } + }, + "InvCount": { + "type": "object", + "properties": { + "countType": { + "type": "string", + "description": "The type of inventory count being specified.", + "example": "DefinitiveAvailability" + }, + "count": { + "type": "string", + "description": "The number of rooms", + "example": "8" + } + } + }, + "invStatusApplicationControl": { + "type": "object", + "required": [ + "start", + "end", + "invTypeCode" + ], + "properties": { + "start": { + "type": "string", + "description": "The starting value of the date range in the ISO 8601 Date Format.", + "example": "2021-12-01" + }, + "end": { + "type": "string", + "description": "The ending value of the date range in the ISO 8601 Date Format.", + "example": "2021-12-15" + }, + "invTypeCode": { + "type": "string", + "description": "room type code.", + "example": "EX_A1K" + } + } + }, + "AvailStatusMessage": { + "type": "object", + "required": [ + "bookingLimit", + "statusApplicationControl" + ], + "properties": { + "bookingLimit": { + "type": "number", + "description": "It indicates the number of rooms that can be sold for a property." + }, + "statusApplicationControl": { + "$ref": "#/definitions/invStatusApplicationControl" + } + } + }, + "restrStatusApplicationControl": { + "type": "object", + "required": [ + "start", + "end", + "mon", + "tue", + "weds", + "thur", + "fri", + "sat", + "sun", + "invTypeCode", + "ratePlanCode" + ], + "properties": { + "start": { + "type": "string", + "description": "The starting value of the date range in the ISO 8601 Date Format.", + "example": "2021-11-20" + }, + "end": { + "type": "string", + "description": "The ending value of the date range in the ISO 8601 Date Format.", + "example": "2021-11-20" + }, + "mon": { + "type": "boolean", + "description": "Monday, day of week value", + "example": "true" + }, + "tue": { + "type": "boolean", + "description": "Tuesday, day of week value", + "example": "true" + }, + "weds": { + "type": "boolean", + "description": "Wednesday, day of week value", + "example": "true" + }, + "thur": { + "type": "boolean", + "description": "Thursday, day of week value", + "example": "true" + }, + "fri": { + "type": "boolean", + "description": "Friday, day of week value", + "example": "true" + }, + "sat": { + "type": "boolean", + "description": "Saturday, day of week value", + "example": "true" + }, + "sun": { + "type": "boolean", + "description": "Sunday, day of week value", + "example": "true" + }, + "invTypeCode": { + "type": "string", + "description": "room type code.", + "example": "EX_A1K" + }, + "ratePlanCode": { + "type": "string", + "description": "The code for the rate plan.", + "example": "EX_DAILY" + } + } + }, + "OTA_NotifRS": { + "type": "object", + "properties": { + "Errors": { + "type": "array", + "items": {} + } + } + }, + "Error": { + "type": "object", + "required": [ + "ewt_errorType", + "code", + "shortText", + "echoToken" + ], + "properties": { + "ewt_errorType": { + "type": "array", + "items": { + "$ref": "#/definitions/ewt_errorType" + } + }, + "code": { + "type": "string", + "description": "Refer to https://connect.booking.com/user_guide/site/en-US/codes-err/ for all codes" + }, + "shortText": { + "type": "string", + "description": "Short description of error." + }, + "echoToken": { + "type": "string" + } + } + }, + "ewt_errorType": { + "type": "string", + "enum": [ + "Unknown", + "No implementation", + "Biz rule", + "Authentication", + "Authentication timeout", + "Authorization", + "Protocol violation", + "Transaction model", + "Authentical model", + "Required field missing", + "Advisory", + "Processing exception", + "Application error" + ] + }, + "ExceptionObj": { + "type": "object", + "properties": { + "logId": { + "type": "integer", + "example": 884366976 + }, + "title": { + "type": "string", + "description": "Short, human-readable summary of the problem. The summary SHOULD NOT change for subsequent occurrences of the problem, except for purposes of localization." + }, + "status": { + "type": "integer", + "description": "HTTP status code for this occurrence of the problem, set by the origin server.", + "example": 400 + }, + "o.errorCode": { + "type": "string", + "description": "HDP error code, which is different from HTTP error code.", + "example": "DARI00001" + }, + "type": { + "type": "string", + "description": "Absolute URI [RFC3986] that identifies the problem type. When dereferenced, it SHOULD provide a human-readable summary of the problem.", + "example": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.x" + }, + "timestamp": { + "type": "string", + "example": "2021-09-17T08:17:18.321Z", + "format": "date-time" + } + }, + "required": [ + "logId", + "title", + "status" + ] + }, + "ExceptionDetail": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ExceptionObj" + }, + { + "type": "object", + "properties": { + "o.errorDetails": { + "type": "array", + "items": { + "$ref": "#/definitions/ExceptionObj" + } + } + } + } + ] + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/instanceLink" + } + }, + "instanceLink": { + "type": "object", + "description": "Metadata describing link description objects that MAY appear in the JSON instance representation.", + "properties": { + "href": { + "description": "URI [RFC3986] or URI Template [RFC6570]. If the value is set to URI Template, then the \"templated\" property must be set to true.", + "type": "string" + }, + "rel": { + "description": "Name of the link relation that, in addition to the type property, can be used to retrieve link details. For example, href or profile.", + "type": "string" + }, + "templated": { + "description": "Boolean flag that specifies that \"href\" property is a URI or URI Template. If the property is a URI template, set this value to true. By default, this value is false.", + "type": "boolean", + "default": false + }, + "method": { + "description": "HTTP method for requesting the target of the link.", + "type": "string", + "enum": [ + "GET", + "POST", + "PUT", + "DELETE", + "PATCH", + "OPTIONS", + "HEAD" + ] + }, + "targetSchema": { + "description": "Link to the metadata of the resource, such as JSON-schema, that describes the resource expected when dereferencing the target resource..", + "type": "string" + }, + "operationId": { + "description": "The operationId of the path you can call to follow this link. This allows you to look up not only the path and method, but the description of that path and any parameters you need to supply.", + "type": "string" + }, + "title": { + "description": "Exact copy of the \"summary\" field on the linked operation.", + "type": "string" + } + } + } + }, + "responses": { + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/ExceptionObj" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/definitions/ExceptionObj" + } + }, + "405": { + "description": "Method not allowed" + }, + "500": { + "description": "System Error", + "schema": { + "$ref": "#/definitions/ExceptionObj" + } + } + }, + "securityDefinitions": {}, + "tags": [], + "externalDocs": { + "description": "Find out more about Oracle Hospitality", + "url": "https://docs.oracle.com/en/industries/hospitality/integration_platforms.html" + } +} \ No newline at end of file