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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'