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.
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
# 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'