Oracle Hospitality · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for OPERA Cloud Leisure Management API

10 actions 10 updates phrasing extends openapi/oracle-hospitality-leisuremanagement-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 10

$.info
$.paths['/hotels/{hotelId}/activityBookings'].get
$.paths['/hotels/{hotelId}/profiles/{profileId}/activityBookings'].put
$.paths['/hotels/{hotelId}/profiles/{profileId}/activityBookings'].post
$.paths['/hotels/{hotelId}/profiles/{profileId}/activityBookings'].delete
$.paths['/hotels/{hotelId}/reservations/{reservationId}/activityBookings'].put
$.paths['/hotels/{hotelId}/reservations/{reservationId}/activityBookings'].post
$.paths['/hotels/{hotelId}/reservations/{reservationId}/activityBookings'].delete
$.paths['/hotels/{hotelId}/reservations/{reservationId}/locationNotifications'].post
$.paths['/services/leisureManagement/status'].get

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 Leisure Management API
  version: 1.0.0
extends: openapi/oracle-hospitality-leisuremanagement-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: 9
- target: $.paths['/hotels/{hotelId}/activityBookings'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up a guest's activity bookings
      effect: read
      questions:
      - How do I see which spa, golf or leisure activities a guest has booked at the hotel?
      - Can I look up activity bookings by reservation or activity ID as well as by profile?
      instructions:
      - text: Look up activity bookings for profile {profile} at hotel {hotel}.
        slots:
          profile: query.profileIds
          hotel: path.hotelId
      - text: Find activity bookings for profile {profile} on reservation {reservation} at hotel {hotel}.
        slots:
          profile: query.profileIds
          reservation: query.reservationIds
          hotel: path.hotelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/profiles/{profileId}/activityBookings'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a profile's activity booking
      effect: write
      questions:
      - How does an external activity scheduler update a booking held against a guest profile rather than a reservation?
      - Can I change a leisure activity booking for someone who has no reservation?
      instructions:
      - text: Update the activity booking for profile {profile} at hotel {hotel}.
        slots:
          profile: path.profileId
          hotel: path.hotelId
      - text: Change profile {profile}'s activity booking at hotel {hotel} to {booking}.
        slots:
          profile: path.profileId
          hotel: path.hotelId
          booking: requestBody.activityBooking
      method: generated
      generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/profiles/{profileId}/activityBookings'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an activity booking for a profile
      effect: write
      questions:
      - How do I record a new leisure activity booking against a guest profile with no reservation?
      - Can an activity scheduler create bookings for non-staying guests by profile?
      instructions:
      - text: Create activity booking {booking} for profile {profile} at hotel {hotel}.
        slots:
          booking: requestBody.activityBooking
          profile: path.profileId
          hotel: path.hotelId
      - text: Book a new activity for profile {profile} at hotel {hotel}.
        slots:
          profile: path.profileId
          hotel: path.hotelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/profiles/{profileId}/activityBookings'].delete
  update:
    x-apievangelist-phrasing:
      intent: Cancel a profile's activity booking
      effect: destructive
      questions:
      - How do I cancel a leisure activity booked against a guest profile?
      - What activity ID and type do I need to cancel a profile-level activity booking?
      instructions:
      - text: Cancel activity {activity} of type {activity_type} for profile {profile} at hotel {hotel}.
        slots:
          activity: query.activityId
          activity_type: query.activityIdType
          profile: path.profileId
          hotel: path.hotelId
      - text: Remove profile {profile}'s booking for activity {activity} ({activity_type}) at hotel {hotel}.
        slots:
          profile: path.profileId
          activity: query.activityId
          activity_type: query.activityIdType
          hotel: path.hotelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/reservations/{reservationId}/activityBookings'].put
  update:
    x-apievangelist-phrasing:
      intent: Change an activity booking on a reservation
      effect: write
      questions:
      - How does an external activity scheduler update an activity booked on a hotel reservation?
      - Can I change the time of a spa booking attached to a guest's stay?
      instructions:
      - text: Update the activity booking on reservation {reservation} at hotel {hotel}.
        slots:
          reservation: path.reservationId
          hotel: path.hotelId
      - text: Change reservation {reservation}'s activity booking at hotel {hotel} to {booking}.
        slots:
          reservation: path.reservationId
          hotel: path.hotelId
          booking: requestBody.activityBooking
      method: generated
      generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/reservations/{reservationId}/activityBookings'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an activity booking on a reservation
      effect: write
      questions:
      - How do I add a leisure activity booking to an in-house guest's reservation?
      - Can an activity scheduler push a new booking onto a stay in OPERA Cloud?
      instructions:
      - text: Create activity booking {booking} on reservation {reservation} at hotel {hotel}.
        slots:
          booking: requestBody.activityBooking
          reservation: path.reservationId
          hotel: path.hotelId
      - text: Book an activity for reservation {reservation} at hotel {hotel}.
        slots:
          reservation: path.reservationId
          hotel: path.hotelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/reservations/{reservationId}/activityBookings'].delete
  update:
    x-apievangelist-phrasing:
      intent: Cancel an activity booking on a reservation
      effect: destructive
      questions:
      - How do I cancel an activity booked on a guest's reservation?
      - Which identifiers are required to cancel a reservation's activity booking?
      instructions:
      - text: Cancel activity {activity} of type {activity_type} on reservation {reservation} at hotel {hotel}.
        slots:
          activity: query.activityId
          activity_type: query.activityIdType
          reservation: path.reservationId
          hotel: path.hotelId
      - text: Drop reservation {reservation}'s booking for activity {activity} ({activity_type}) at hotel {hotel}.
        slots:
          reservation: path.reservationId
          activity: query.activityId
          activity_type: query.activityIdType
          hotel: path.hotelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/reservations/{reservationId}/locationNotifications'].post
  update:
    x-apievangelist-phrasing:
      intent: Set or clear a guest location notification
      effect: write
      questions:
      - How do I tell the front desk where a guest can be found, for example at the spa?
      - Can I set or clear a location notification on a reservation?
      instructions:
      - text: Set a location notification on reservation {reservation} at hotel {hotel} saying {location}.
        slots:
          reservation: path.reservationId
          hotel: path.hotelId
          location: requestBody.locationText
      - text: Mark the location notification on reservation {reservation} at hotel {hotel} as {status}.
        slots:
          reservation: path.reservationId
          hotel: path.hotelId
          status: requestBody.locationNotificationStatus
      method: generated
      generated: '2026-09-26'
- target: $.paths['/services/leisureManagement/status'].get
  update:
    x-apievangelist-phrasing:
      intent: Check the leisure management service status
      effect: read
      questions:
      - Is the OPERA Cloud leisure management service available?
      - How do I health-check the activity booking service?
      instructions:
      - text: Ping the leisure management service.
      - text: Check leisure management availability for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'