OPERA Cloud Distribution Onboarding

Oracle Hospitality Distribution Onboarding specification for distribution partners to retrieve property status with its attributes and update property status. Compatible with OPERA Cloud release 26.2.0.0. 2 operation(s) documented; base path /onboard/v1. Harvested verbatim from Oracle's public hospitality-api-docs repository (Swagger 2.0, release 26.2.0.0).

OpenAPI Specification

oracle-hospitality-distribution-v1-onboard.json Raw ↑
{
  "swagger": "2.0",
  "info": {
    "title": "OPERA Cloud Distribution Onboarding",
    "description": "Oracle Hospitality Distribution Onboarding specification for distribution partners to retrieve property status with its attributes and update property status.<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"
    }
  },
  "basePath": "/onboard/v1",
  "schemes": [
    "https"
  ],
  "produces": [
    "application/json; charset=utf-8"
  ],
  "paths": {
    "/hotels/{hotelCode}/propertyStatus": {
      "put": {
        "summary": "Update property status for a given channel.",
        "operationId": "putPropertyStatus",
        "description": "Modify property status for given property for given channel. <p><strong>OperationId:</strong>putPropertyStatus</p>",
        "tags": [
          "Onboarding"
        ],
        "consumes": [
          "application/json; charset=utf-8"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/UpdateConnectionInformationData"
            },
            "required": true
          },
          {
            "$ref": "#/parameters/x-channelCode"
          },
          {
            "$ref": "#/parameters/hotelCodePath"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          }
        ],
        "responses": {
          "200": {
            "description": "Updated property status for a given channel.",
            "headers": {
              "Location": {
                "type": "string",
                "description": "Location of the updated resource",
                "x-example": "/onboard/v1/hotels/{hotelCode}/propertyStatus"
              },
              "Content-Language": {
                "type": "string",
                "description": "Response language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-US"
              }
            },
            "schema": {
              "$ref": "#/definitions/UpdateChannelPropertyStatus"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "405": {
            "description": "Not Allowed",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "406": {
            "description": "Not Acceptable",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "502": {
            "description": "Bad Gateway",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "503": {
            "description": "Service Unavailable",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          }
        }
      },
      "get": {
        "summary": "Get Property Status.",
        "operationId": "getPropertyStatus",
        "description": "Retrieve property status for a given channel. <p><strong>OperationId:</strong>getPropertyStatus</p>",
        "tags": [
          "Onboarding"
        ],
        "consumes": [
          "application/json; charset=utf-8"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/x-channelCode"
          },
          {
            "$ref": "#/parameters/hotelCodePath"
          },
          {
            "$ref": "#/parameters/x-app-key"
          },
          {
            "$ref": "#/parameters/authKey"
          },
          {
            "$ref": "#/parameters/Accept-Language"
          },
          {
            "$ref": "#/parameters/x-request-id"
          },
          {
            "$ref": "#/parameters/x-originating-application"
          }
        ],
        "responses": {
          "200": {
            "description": "Get Property Status.",
            "headers": {
              "Location": {
                "type": "string",
                "description": "Location of the resource",
                "x-example": "/onboard/v1/hotels/{hotelCode}/propertyStatus"
              },
              "Content-Language": {
                "type": "string",
                "description": "Response language",
                "pattern": "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",
                "x-example": "en-US"
              }
            },
            "schema": {
              "$ref": "#/definitions/ChannelPropertyStatus"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "405": {
            "description": "Not Allowed",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "406": {
            "description": "Not Acceptable",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "502": {
            "description": "Bad Gateway",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          },
          "503": {
            "description": "Service Unavailable",
            "schema": {
              "$ref": "#/definitions/ExceptionDetail"
            }
          }
        }
      }
    }
  },
  "parameters": {
    "x-channelCode": {
      "name": "x-channelCode",
      "in": "header",
      "description": "Code for the channel.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "required": true,
      "x-example": "CH1"
    },
    "hotelCodePath": {
      "name": "hotelCode",
      "description": "The unique identifier of the Property in Channel system.",
      "type": "string",
      "in": "path",
      "required": true,
      "minLength": 1,
      "x-example": "XUSXXYY99"
    },
    "Accept-Language": {
      "name": "Accept-Language",
      "in": "header",
      "type": "string",
      "description": "Language code"
    },
    "x-app-key": {
      "name": "x-app-key",
      "in": "header",
      "description": "Client or Partner's Application Key",
      "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$",
      "type": "string",
      "required": false
    },
    "authKey": {
      "name": "authorization",
      "in": "header",
      "description": "Bearer token that needs to be passed which is generated post user authentication",
      "required": true,
      "type": "string"
    },
    "x-request-id": {
      "name": "x-request-id",
      "type": "string",
      "description": "Unique tracing key e.g. 4664ab3423434a45",
      "in": "header",
      "x-example": "4664ab3423434a45"
    },
    "x-originating-application": {
      "name": "x-originating-application",
      "type": "string",
      "description": "Customer's Integration Application Id",
      "in": "header"
    }
  },
  "definitions": {
    "ChannelPropertyStatus": {
      "type": "object",
      "properties": {
        "hotelCode": {
          "type": "string",
          "description": "The unique identifier of the Property in Channel system.",
          "example": "XUSXXYY99"
        },
        "channelCode": {
          "type": "string",
          "description": "Unique ID that identifies a single Channel.",
          "example": "CH1",
          "maxLength": 20,
          "minLength": 1
        },
        "connectionInformation": {
          "$ref": "#/definitions/ConnectionInformation"
        }
      }
    },
    "ConnectionInformation": {
      "type": "object",
      "description": "Channel Connection Information",
      "properties": {
        "connectionStatus": {
          "$ref": "#/definitions/ConnectionStatus"
        },
        "connectionNotes": {
          "type": "string",
          "description": "Connection Notes for the latest connection Status change.",
          "maxLength": 300,
          "example": "Property onboarded successfully"
        },
        "connectionStatusLastChangedOn": {
          "type": "string",
          "format": "date-time",
          "description": "Date on which Channel connection status was updated last time.",
          "example": "2021-09-17T08:17:18.321Z"
        }
      }
    },
    "ConnectionStatus": {
      "type": "string",
      "description": "The connection status to the property.",
      "enum": [
        "NEW",
        "TEST",
        "MAINTENANCE",
        "ACTIVE",
        "INACTIVE"
      ],
      "example": "ACTIVE"
    },
    "UpdateConnectionInformationData": {
      "type": "object",
      "description": "Channel Connection Information",
      "properties": {
        "connectionStatus": {
          "$ref": "#/definitions/UpdateConnectionStatus"
        },
        "connectionNotes": {
          "type": "string",
          "description": "Connection Notes for the latest connection Status change.",
          "maxLength": 300,
          "example": "Property onboarded successfully"
        }
      },
      "required": [
        "connectionStatus",
        "connectionNotes"
      ]
    },
    "UpdateConnectionStatus": {
      "type": "string",
      "description": "The connection status to be updated for the given channel and property.  The connection status can be changed to TEST / MAINTENANCE if the existing connection Status is NEW.  If the existing connection status is TEST, it can be changed to MAINTENANCE.",
      "enum": [
        "TEST",
        "MAINTENANCE"
      ],
      "example": "TEST"
    },
    "ExceptionDetail": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/ExceptionObj"
        },
        {
          "type": "object",
          "properties": {
            "o.errorDetails": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ExceptionObj"
              }
            }
          }
        }
      ]
    },
    "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": "DCR00001"
        },
        "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"
      ]
    },
    "UpdateChannelPropertyStatus": {
      "type": "object",
      "properties": {
        "hotelCode": {
          "type": "string",
          "description": "The unique identifier of the Property in Channel system.",
          "example": "XUSXXYY99"
        },
        "channelCode": {
          "type": "string",
          "description": "Unique ID that identifies a single Channel.",
          "example": "CH1",
          "maxLength": 20,
          "minLength": 1
        },
        "connectionInformation": {
          "$ref": "#/definitions/UpdateConnectionInformation"
        }
      }
    },
    "UpdateConnectionInformation": {
      "type": "object",
      "description": "Channel Connection Information",
      "properties": {
        "connectionStatus": {
          "$ref": "#/definitions/UpdateConnectionStatus"
        },
        "connectionNotes": {
          "type": "string",
          "description": "Connection Notes for the latest connection Status change.",
          "maxLength": 300,
          "example": "Property onboarded successfully"
        },
        "connectionStatusLastChangedOn": {
          "type": "string",
          "format": "date-time",
          "description": "Date on which Channel connection status was updated last time."
        }
      }
    }
  },
  "tags": [
    {
      "name": "Onboarding",
      "description": "Distribution Onboarding"
    }
  ],
  "externalDocs": {
    "description": "Find out more about Oracle Hospitality",
    "url": "https://docs.oracle.com/en/industries/hospitality/integration_platforms.html"
  }
}