Opera Cloud Inventory Asynchronous API

APIs to cater for Inventory related asynchronous functionality in OPERA Cloud. This includes viewing inventory data along with its revenue and updating inventory's sell limits for date ranges. This API follows an async pattern where You make an initial request, which returns a Location header You poll HEAD on the Location header returned to obtain the status of the process Once the process completes HEAD will return in the Location header the URL that must be called to obtain the results of the process You call the URL to obtain the results of the process Compatible with OPERA Cloud release 26.2.0.0. 6 operation(s) documented; base path /inv/async/v1. Harvested verbatim from Oracle's public hospitality-api-docs repository (Swagger 2.0, release 26.2.0.0).

OpenAPI Specification

oracle-hospitality-property-v1-invasync.json Raw ↑
{
  "swagger": "2.0",
  "info": {
    "title": "Opera Cloud Inventory Asynchronous API",
    "description": "APIs to cater for Inventory related asynchronous functionality in OPERA Cloud. This includes viewing inventory data along with its revenue and updating inventory&apos;s sell limits for date ranges. <p>This API follows an async pattern where</p><ul><li>You make an initial request, which returns a Location header</li><li>You poll HEAD on the Location header returned to obtain the status of the process</li><li>Once the process completes HEAD will return in the Location header the URL that must be called to obtain the results of the process</li><li>You call the URL to obtain the results of the process</li></ul><br /><br /> Compatible with OPERA Cloud release 26.2.0.0.<br /><br /><p> 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, 2026 Oracle and/or its affiliates.</p>",
    "version": "26.2.0.0",
    "termsOfService": "https://www.oracle.com/legal/terms.html",
    "contact": {
      "email": "hospitality_apis_ww_grp@oracle.com"
    },
    "license": {
      "name": "UPL",
      "url": "https://opensource.org/licenses/upl"
    }
  },
  "schemes": [
    "https"
  ],
  "basePath": "/inv/async/v1",
  "produces": [
    "application/json"
  ],
  "paths": {
    "/externalSystems/{extSystemCode}/hotels/{hotelId}/revenueInventoryStatistics": {
      "post": {
        "summary": "Start process to get hotel inventory revenue statistics",
        "description": "Use this API to start the process to get a hotel inventory&apos;s revenue statistics for a given date range. Maximum limit of the date range is 94 days with a single request, but the recommendation is to use a date range proportionate to the size of the hotel. Returns a header parameter Location that can be used in the getRevenueInventoryStatisticsProcessStatus operation.  Use event driven APIs (see https://docs.oracle.com/cd/F29336_01/doc.201/f27480/c_business_events.htm#OHIPU-BusinessEvents-F0AC1F1C) to get real time inventory updates.<p><strong>OperationId:</strong>startRevenueInventoryStatisticsProcess</p>",
        "operationId": "startRevenueInventoryStatisticsProcess",
        "x-interaction": [
          "async-polling"
        ],
        "responses": {
          "202": {
            "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": "Location of process status resource"
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "parameters": [
          {
            "name": "extSystemCode",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "hotelId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "criteria",
            "in": "body",
            "required": true,
            "description": "Request object for fetching revenue inventory statistics asynchronously.",
            "schema": {
              "$ref": "#/definitions/revenueInventoryStatisticsSearchType"
            }
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          }, {
            "$ref": "#/parameters/x-request-id"
          }, {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "InventoryAsync"
        ]
      }
    },
    "/externalSystems/{extSystemCode}/hotels/{hotelId}/revenueInventoryStatistics/{requestId}": {
      "head": {
        "summary": "Check status of Inventory Revenue Statistic process",
        "description": "Use this API to check whether the process to collate inventory revenue statistics is complete. You can get value of summaryId from the Location header returned by the startRevenueInventoryStatisticsProcess operation.<p><strong>OperationId:</strong>getRevenueInventoryStatisticsProcessStatus</p>",
        "operationId": "getRevenueInventoryStatisticsProcessStatus",
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-GB"
              },
              "Status": {
                "type": "string",
                "description": "Status of the requested process.",
                "enum": [
                  "Processing",
                  "Invalid"
                ]
              },
              "Cache-Control": {
                "type": "string",
                "description": "number of seconds to wait before polling again.",
                "x-example": "max-age=10"
              }
            },
            "description": "Response for status of scheduled asynchronous process."
          },
          "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"
              },
              "Status": {
                "type": "string",
                "description": "Status of the requested process.",
                "enum": [
                  "Completed"
                ]
              },
              "Location": {
                "type": "string",
                "description": "Location of newly created resource once the status of process run is Complete."
              }
            },
            "description": "Response for status of scheduled asynchronous process."
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "extSystemCode",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "hotelId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          }, {
            "$ref": "#/parameters/x-request-id"
          }, {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "InventoryAsync"
        ]
      },
      "get": {
        "summary": "Get results of a revenue inventory statistics process",
        "description": "This API returns inventory revenue&apos;s statistics for a hotel within dates given in the startRevenueInventoryStatisticsProcess API request. You can get the value of the summaryId from the Location header returned by the getRevenueInventoryStatisticsProcessStatus operation after the process is completed.<p><strong>OperationId:</strong>getRevenueInventoryStatistics</p>",
        "operationId": "getRevenueInventoryStatistics",
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-GB"
              }
            },
            "description": "Response for fetched revenue inventory statistics.",
            "schema": {
              "$ref": "#/definitions/revenueInventoryStatisticsDetails"
            }
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "extSystemCode",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "hotelId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          }, {
            "$ref": "#/parameters/x-request-id"
          }, {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "InventoryAsync"
        ]
      }
    },
    "/externalSystems/{extSystemCode}/hotels/{hotelId}/inventoryStatistics": {
      "post": {
        "summary": "Start process to get hotel inventory statistics",
        "description": "Use this API to start the process to get a hotel's inventory statistics for a given date range. The maximum limit of the date range is 365 days with a single request, but the recommendation is to use a date range proportionate to the size of the hotel. Returns a header parameter Location that can be used in the getInventoryStatisticsProcessStatus operation.<p><strong>OperationId:</strong>startInventoryStatisticsProcess</p>",
        "operationId": "startInventoryStatisticsProcess",
        "x-interaction": [
          "async-polling"
        ],
        "responses": {
          "202": {
            "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": "Location of process status resource"
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          {
            "name": "extSystemCode",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          {
            "name": "inventoryCriteria",
            "in": "body",
            "required": true,
            "description": "Request object for fetching inventory statistics asynchronously.",
            "schema": {
              "$ref": "#/definitions/inventoryCriteriaType"
            }
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          }, {
            "$ref": "#/parameters/x-request-id"
          }, {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "InventoryAsync"
        ]
      }
    },
    "/externalSystems/{extSystemCode}/hotels/{hotelId}/inventoryStatistics/{requestId}": {
      "head": {
        "summary": "Check status of hotel inventory statistics process",
        "description": "Use this API to check whether the statistics of the hotel's inventory statistics is ready yet. You can get value of summaryId with startInventoryStatisticsProcess API response (under header location). <p><strong>OperationId:</strong>getInventoryStatisticsProcessStatus</p>",
        "operationId": "getInventoryStatisticsProcessStatus",
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-GB"
              },
              "Status": {
                "type": "string",
                "description": "Status of the requested process.",
                "enum": [
                  "Processing",
                  "Invalid"
                ]
              },
              "Cache-Control": {
                "type": "string",
                "description": "number of seconds to wait before polling again.",
                "x-example": "max-age=10"
              }
            },
            "description": "Response for status of scheduled asynchronous process."
          },
          "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"
              },
              "Status": {
                "type": "string",
                "description": "Status of the requested process.",
                "enum": [
                  "Completed"
                ]
              },
              "Location": {
                "type": "string",
                "description": "Location of newly created resource once the status of process run is Complete."
              }
            },
            "description": "Response for status of scheduled asynchronous process."
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          {
            "name": "extSystemCode",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          {
            "name": "hotelId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          }, {
            "$ref": "#/parameters/x-request-id"
          }, {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "InventoryAsync"
        ]
      },
      "get": {
        "summary": "Get results of a inventory statistics process",
        "description": "This API returns inventory statistics for a hotel by given dates in the startInventoryStatisticsProcess API request. You can get the value of the summaryId with the getInventoryStatisticsProcessStatus API response (under header location). <p><strong>OperationId:</strong>getInventoryStatisticsAsync</p>",
        "operationId": "getInventoryStatisticsAsync",
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-GB"
              }
            },
            "description": "Response for fetched inventory statistics.",
            "schema": {
              "$ref": "#/definitions/inventoryStatisticsDetails"
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "extSystemCode",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "hotelId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          }, {
            "$ref": "#/parameters/x-request-id"
          }, {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "InventoryAsync"
        ]
      }
    },
    "/externalSystems/{extSystemCode}/hotels/{hotelId}/sellLimits": {
      "post": {
        "summary": "Create sell limit by date.",
        "description": "You can use this API to create sell limits in OPERA by date. <p><strong>OperationId:</strong>postSellLimitsProcess</p>",
        "operationId": "postSellLimitsProcess",
        "x-interaction": [
          "async-polling"
        ],
        "responses": {
          "202": {
            "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": "Location of process status resource"
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "extSystemCode",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "sellLimitsByDate",
            "in": "body",
            "required": true,
            "description": "Request for setting sell limits for house, room type, room class.",
            "schema": {
              "$ref": "#/definitions/sellLimitsByDate"
            }
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          }, {
            "$ref": "#/parameters/x-request-id"
          }, {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "InventoryAsync"
        ]
      }
    },
    "/externalSystems/{extSystemCode}/hotels/{hotelId}/sellLimits/{requestId}": {
      "head": {
        "summary": "Get the status for sell limits asynchronous process",
        "description": "Use this API to check whether the sell limit data creation is completed yet. You can get the value of the summaryId with the postSellLimitsProcess API response (under header location). <p><strong>OperationId:</strong>getSellLimitsProcessStatus</p>",
        "operationId": "getSellLimitsProcessStatus",
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-GB"
              },
              "Status": {
                "type": "string",
                "description": "Status of the requested process.",
                "enum": [
                  "Processing",
                  "Invalid"
                ]
              },
              "Cache-Control": {
                "type": "string",
                "description": "number of seconds to wait before polling again.",
                "x-example": "max-age=10"
              }
            },
            "description": "Response for status of scheduled asynchronous process."
          },
          "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"
              },
              "Status": {
                "type": "string",
                "description": "Status of the requested process.",
                "enum": [
                  "Completed"
                ]
              },
              "Location": {
                "type": "string",
                "description": "Location of newly created resource once the status of process run is Complete."
              }
            },
            "description": "Response for status of scheduled asynchronous process."
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "extSystemCode",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "hotelId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          }, {
            "$ref": "#/parameters/x-request-id"
          }, {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "InventoryAsync"
        ]
      },
      "get": {
        "summary": "Get status for sell limits for a property.",
        "description": "This API returns the status log if any of sell limit data creation is failed. You can get the value of summaryId with the getSellLimitsProcessStatus API response (under header location). <p><strong>OperationId:</strong>getSellLimits</p>",
        "operationId": "getSellLimits",
        "responses": {
          "200": {
            "headers": {
              "Content-Language": {
                "type": "string",
                "description": "Audience language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-GB"
              }
            },
            "description": "This asynchronous callback base type is used as a base for an extension for Opera Web Services Callback Requests to provide uniform implementation.",
            "schema": {
              "$ref": "#/definitions/sellLimitByDateStatus"
            }
          },
          "204": {
            "description": "SetSellLimitByDate not found."
          },
          "400": {
            "$ref": "#/responses/400"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "403": {
            "$ref": "#/responses/403"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "405": {
            "$ref": "#/responses/405"
          },
          "406": {
            "$ref": "#/responses/406"
          },
          "413": {
            "$ref": "#/responses/413"
          },
          "414": {
            "$ref": "#/responses/414"
          },
          "415": {
            "$ref": "#/responses/415"
          },
          "500": {
            "$ref": "#/responses/500"
          },
          "502": {
            "$ref": "#/responses/502"
          },
          "503": {
            "$ref": "#/responses/503"
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "hotelId",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "name": "extSystemCode",
            "in": "path",
            "required": true,
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/externalData"
          },
          {
            "$ref": "#/parameters/x-app-key"
          }, {
            "$ref": "#/parameters/x-request-id"
          }, {
            "$ref": "#/parameters/x-originating-application"
          },
          {
            "$ref": "#/parameters/x-hotelid"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          }
        ],
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json;charset=UTF-8"
        ],
        "tags": [
          "InventoryAsync"
        ]
      }
    }
  },
  "parameters": {
    "externalData": {
      "name": "externalData",
      "type": "string",
      "description": "Pass this header as true, if payload needs DVM",
      "in": "header"

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oracle-hospitality/refs/heads/main/openapi/oracle-hospitality-property-v1-invasync.json