Oracle Hospitality · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for OPERA Cloud Content Service Opera Content API
12 actions
12 updates
phrasing
extends
openapi/oracle-hospitality-operacontent-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Oracle Hospitality's API. It is a proposal applied on top of the contract, not a document Oracle Hospitality publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/customizedLetter/{letterId}'].get
$.paths['/emailFile/{emailId}'].get
$.paths['/fileAttachments'].get
$.paths['/fileAttachments'].post
$.paths['/folioReports/email'].post
$.paths['/hotels/{hotelId}/reservations/{reservationId}/customizedLetter'].put
$.paths['/hotels/{hotelId}/reservations/{reservationId}/folioReports'].get
$.paths['/hotels/{hotelId}/reservations/{reservationId}/registrationCard'].get
$.paths['/images'].get
$.paths['/images'].post
$.paths['/images'].delete
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for OPERA Cloud Content Service Opera Content API
version: 1.0.0
extends: openapi/oracle-hospitality-operacontent-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 11
- target: $.paths['/customizedLetter/{letterId}'].get
update:
x-apievangelist-phrasing:
intent: Retrieve a customized letter
effect: read
questions:
- Can I pull up the customized letter generated for a guest by its letter ID?
- What does a customized letter look like once it is stored in OPERA?
instructions:
- text: Get customized letter {letterId}.
slots:
letterId: path.letterId
- text: Return customized letter {letterId} with ID type {letterIdtype}.
slots:
letterId: path.letterId
letterIdtype: query.letterIdtype
method: generated
generated: '2026-09-26'
- target: $.paths['/emailFile/{emailId}'].get
update:
x-apievangelist-phrasing:
intent: Download a stored email file
effect: read
questions:
- Where can I retrieve the email file saved against a guest profile?
- Can I fetch the stored blob of an email that was sent from OPERA?
instructions:
- text: Download the stored email file {emailId}.
slots:
emailId: path.emailId
- text: Return the email blob for email {emailId}.
slots:
emailId: path.emailId
method: generated
generated: '2026-09-26'
- target: $.paths['/fileAttachments'].get
update:
x-apievangelist-phrasing:
intent: Retrieve a file attachment
effect: read
questions:
- How do I download a file that was attached to a record in OPERA?
- Can I look up an attachment by its ID and ID type?
instructions:
- text: Get file attachment {id}.
slots:
id: query.id
- text: Download the attachment with ID {id} of type {idType}.
slots:
id: query.id
idType: query.idType
method: generated
generated: '2026-09-26'
- target: $.paths['/fileAttachments'].post
update:
x-apievangelist-phrasing:
intent: Upload a file attachment
effect: write
questions:
- Can I attach a document to a reservation or profile in OPERA?
- Is it possible to overwrite an existing attachment with the same file name?
instructions:
- text: Upload {fileName} as an attachment to {linkType} record {linkId}.
slots:
fileName: requestBody.fileName
linkType: requestBody.linkType
linkId: requestBody.linkId
- text: Attach file {fileName} described as {description} at hotel {hotelId}.
slots:
fileName: requestBody.fileName
description: requestBody.description
hotelId: requestBody.hotelId
method: generated
generated: '2026-09-26'
- target: $.paths['/folioReports/email'].post
update:
x-apievangelist-phrasing:
intent: Email a folio report
effect: write
questions:
- How do I email a guest their folio?
- Can I send a folio report to several email recipients at once?
instructions:
- text: Email the folio report to {emailRecipients}.
slots:
emailRecipients: requestBody.emailRecipients
- text: Send folio {folioInfo} by email to {emailRecipients}.
slots:
folioInfo: requestBody.folioInfo
emailRecipients: requestBody.emailRecipients
method: generated
generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/reservations/{reservationId}/customizedLetter'].put
update:
x-apievangelist-phrasing:
intent: Update a reservation's customized letter
effect: write
questions:
- Can I change the customized letter attached to a guest's reservation?
- What do I send to edit a reservation's confirmation letter text?
instructions:
- text: Update the customized letter on reservation {reservationId} at hotel {hotelId}.
slots:
reservationId: path.reservationId
hotelId: path.hotelId
- text: Replace the letter for reservation {reservationId}, hotel {hotelId}, with {customizedLetterDetails}.
slots:
reservationId: path.reservationId
hotelId: path.hotelId
customizedLetterDetails: requestBody.customizedLetterDetails
method: generated
generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/reservations/{reservationId}/folioReports'].get
update:
x-apievangelist-phrasing:
intent: Generate a reservation's folio report
effect: read
questions:
- Can I get the folio for a specific folio window on a reservation?
- Which folio report matches a given bill number?
instructions:
- text: Get the folio report for reservation {reservationId} at hotel {hotelId}.
slots:
reservationId: path.reservationId
hotelId: path.hotelId
- text: Show folio window {folioWindowNo} for reservation {reservationId} at hotel {hotelId}.
slots:
folioWindowNo: query.folioWindowNo
reservationId: path.reservationId
hotelId: path.hotelId
- text: Pull bill number {billNumber} for reservation {reservationId}, hotel {hotelId}.
slots:
billNumber: query.billNumber
reservationId: path.reservationId
hotelId: path.hotelId
method: generated
generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/reservations/{reservationId}/registrationCard'].get
update:
x-apievangelist-phrasing:
intent: Get a reservation's registration card
effect: read
questions:
- Can I print a guest's registration card for check-in?
- Is there a way to return only the signed registration card?
- Can I regenerate the registration card in another language?
instructions:
- text: Get the registration card for reservation {reservationId} at hotel {hotelId}.
slots:
reservationId: path.reservationId
hotelId: path.hotelId
- text: Regenerate the registration card for reservation {reservationId}, hotel {hotelId}, in {language}.
slots:
reservationId: path.reservationId
hotelId: path.hotelId
language: query.language
method: generated
generated: '2026-09-26'
- target: $.paths['/images'].get
update:
x-apievangelist-phrasing:
intent: Retrieve an image
effect: read
questions:
- Can I fetch an image stored in OPERA as base64?
- Which image is linked to a given record and image code?
instructions:
- text: Get image {imageId}.
slots:
imageId: query.imageId
- text: Return the {imageCode} image linked to {linkId} as base64.
slots:
imageCode: query.imageCode
linkId: query.linkId
method: generated
generated: '2026-09-26'
- target: $.paths['/images'].post
update:
x-apievangelist-phrasing:
intent: Upload an image
effect: write
questions:
- How do I upload a logo or photo to OPERA for a supported image code?
- Can I upload several images in one request?
instructions:
- text: 'Upload these images: {images}.'
slots:
images: requestBody.images
- text: Add a new image to OPERA from {images}.
slots:
images: requestBody.images
method: generated
generated: '2026-09-26'
- target: $.paths['/images'].delete
update:
x-apievangelist-phrasing:
intent: Delete an image
effect: destructive
questions:
- Can I remove an image by its image code or image set?
- Can I delete a stored image using its image ID and ID type?
instructions:
- text: Delete image {imageId}.
slots:
imageId: query.imageId
- text: Remove the images with code {imageCode} in set {imageSet}.
slots:
imageCode: query.imageCode
imageSet: query.imageSet
method: generated
generated: '2026-09-26'