# 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 Integration Configuration External Systems… version: 1.0.0 extends: openapi/oracle-hospitality-externalsystemsconfig-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: 43 - target: $.paths['/configuredExternalDevices'].get update: x-apievangelist-phrasing: intent: List external devices configured at a hotel effect: read questions: - Which external devices, like fiscal printers or payment terminals, are actually set up at my property? - Can I list only the active configured devices for a given device type? instructions: - text: List the configured external devices at hotel {hotelId}. slots: hotelId: query.hotelId - text: Show configured devices of type {deviceType} for fiscal partner {fiscalPartnerCode}. slots: deviceType: query.deviceType fiscalPartnerCode: query.fiscalPartnerCode method: generated generated: '2026-09-26' - target: $.paths['/deliveryMethods'].get update: x-apievangelist-phrasing: intent: Fetch delivery methods effect: read questions: - What delivery methods, like email or fax, are available for sending documents from a hotel? - Can I see delivery methods for a central reservations office, including inactive ones? instructions: - text: List the delivery methods for hotel {hotelId}. slots: hotelId: query.hotelId - text: Show delivery methods for CRO {croCode}, including inactive ones. slots: croCode: query.croCode method: generated generated: '2026-09-26' - target: $.paths['/deliveryMethods'].put update: x-apievangelist-phrasing: intent: Change existing delivery methods effect: write questions: - How do I edit a delivery method that's already configured? - Can I update several existing delivery methods in one request? instructions: - text: Update the existing delivery methods with {deliveryMethods}. slots: deliveryMethods: requestBody.deliveryMethods - text: Change the current delivery method settings for hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/deliveryMethods'].post update: x-apievangelist-phrasing: intent: Create delivery methods effect: write questions: - How do I add a new way to deliver confirmations and folios, such as a new email channel? - What's needed to set up a new delivery method? instructions: - text: Create delivery methods {deliveryMethods}. slots: deliveryMethods: requestBody.deliveryMethods - text: Add a new delivery method for hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/deliveryMethods'].delete update: x-apievangelist-phrasing: intent: Remove delivery methods effect: destructive questions: - How do I delete a delivery method a hotel no longer uses? - Can I remove a delivery method by its configuration id? instructions: - text: Delete delivery method type {type} at hotel {hotelId}. slots: type: query.type hotelId: query.hotelId - text: Remove the delivery method with configuration id {configurationId}. slots: configurationId: query.configurationId method: generated generated: '2026-09-26' - target: $.paths['/externalDevices/configurations'].get update: x-apievangelist-phrasing: intent: Fetch external device configuration settings effect: read questions: - Where do I read the configuration settings and parameters behind external devices? - Can I look up device configuration records by device code and device area? instructions: - text: Fetch the external device configuration records for hotel {hotelId}. slots: hotelId: query.hotelId - text: Find device configuration records for device code {deviceCode} in area {deviceArea}. slots: deviceCode: query.deviceCode deviceArea: query.deviceArea method: generated generated: '2026-09-26' - target: $.paths['/externalDevices/configurations'].put update: x-apievangelist-phrasing: intent: Change external device configurations effect: write questions: - How do I update the settings for an external device like a fiscal printer? - Can I change several device configuration records at once? instructions: - text: Update external device configurations with {externalDeviceConfigurations}. slots: externalDeviceConfigurations: requestBody.externalDeviceConfigurations - text: Change the external device configuration at hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/externalSystems/config/ping'].get update: x-apievangelist-phrasing: intent: Ping the external systems config service effect: read questions: - Is the external systems configuration service reachable? - How can I health-check the interface config service before changing settings? instructions: - text: Ping the external systems config service. - text: Check the external systems config service is up for hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/externalSystems/{externalSystemCode}/hotels/{hotelId}/publishers'].post update: x-apievangelist-phrasing: intent: Add publishers for an external system at a hotel effect: write questions: - How do I register which hotels publish data to an external system subscriber? - Can I set up a hotel as a publisher for an external system? instructions: - text: Add publishers for external system {externalSystemCode} at hotel {hotelId}. slots: externalSystemCode: path.externalSystemCode hotelId: path.hotelId - text: Make {publishers} publish to subscriber {subscriber} on {externalSystemCode} for {hotelId}. slots: publishers: requestBody.publishers subscriber: requestBody.subscriber externalSystemCode: path.externalSystemCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/externalSystems/{externalSystemCode}/hotels/{hotelId}/publishers'].delete update: x-apievangelist-phrasing: intent: Remove a publisher from an external system effect: destructive questions: - How do I stop a hotel from publishing data to an external system? - Can I remove a single publisher by code for one subscriber hotel? instructions: - text: Remove publisher {code} from external system {externalSystemCode} at hotel {hotelId}. slots: code: query.code externalSystemCode: path.externalSystemCode hotelId: path.hotelId - text: Delete the publisher for subscriber hotel {subscriberHotelId} on {externalSystemCode}, hotel {hotelId}. slots: subscriberHotelId: query.subscriberHotelId externalSystemCode: path.externalSystemCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/externalSystems/{externalSystemCode}/publishers'].get update: x-apievangelist-phrasing: intent: List publishers for an external system effect: read questions: - Which hotels are publishing data to a given external system? - Can I see the publishers of an external system filtered to one hotel? instructions: - text: List the publishers for external system {externalSystemCode}. slots: externalSystemCode: path.externalSystemCode - text: Show publishers on {externalSystemCode} for hotel {hotelId}. slots: externalSystemCode: path.externalSystemCode hotelId: query.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotelInerface'].put update: x-apievangelist-phrasing: intent: Change a hotel interface effect: write questions: - How do I edit the settings of an existing hotel interface, like the PBX or door lock link? - Can I modify an interface that's already configured for a property? instructions: - text: Update the existing hotel interface with {details}. slots: details: requestBody.details - text: Change the configured interface settings at hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/hotelInerface'].post update: x-apievangelist-phrasing: intent: Create a hotel interface effect: write questions: - How do I set up a new interface between OPERA and a hotel system such as a PBX? - What details do I need to add a brand-new hotel interface? instructions: - text: Create a new hotel interface with {details}. slots: details: requestBody.details - text: Add a new interface for hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/hotelInterfaceTypes'].get update: x-apievangelist-phrasing: intent: List hotel interfaces by type effect: read questions: - Which interfaces are configured across my hotels, grouped by interface type? - Can I list hotel interfaces for specific logo codes, including inactive ones? instructions: - text: List the interfaces configured at hotels {hotelIds}. slots: hotelIds: query.hotelIds - text: Show hotel interfaces of type {interfaceTypes}, including external system info. slots: interfaceTypes: query.interfaceTypes method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/hotelInerface'].delete update: x-apievangelist-phrasing: intent: Remove a hotel interface effect: destructive questions: - How do I delete an interface a hotel no longer uses? - Can I remove one hotel interface by its logo code? instructions: - text: Delete interface {logo} at hotel {hotelId}. slots: logo: query.logo hotelId: path.hotelId - text: Remove the decommissioned interface from hotel {hotelId}. slots: hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/accounts'].post update: x-apievangelist-phrasing: intent: Create an account on a hotel interface effect: write questions: - How do I add a posting account to an interface, mapping it to a transaction code? - What's needed to create an interface account for charges coming from a POS? instructions: - text: Create an account on interface {interfaceId} at hotel {hotelId}. slots: interfaceId: path.interfaceId hotelId: path.hotelId - text: Add account {account} to interface {interfaceId} for {hotelId}. slots: account: requestBody.account interfaceId: path.interfaceId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/accounts/{accountId}'].put update: x-apievangelist-phrasing: intent: Change an interface account effect: write questions: - How do I edit an existing account on an interface? - Can I change the transaction mapping on one interface account? instructions: - text: Update account {accountId} on interface {interfaceId} at hotel {hotelId}. slots: accountId: path.accountId interfaceId: path.interfaceId hotelId: path.hotelId - text: Change interface account {accountId} ({interfaceId}, {hotelId}) to {account}. slots: accountId: path.accountId interfaceId: path.interfaceId hotelId: path.hotelId account: requestBody.account method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/accounts/{accountId}'].delete update: x-apievangelist-phrasing: intent: Remove an interface account effect: destructive questions: - How do I delete an account from a hotel interface? - Can I remove the interface account tied to a specific sales outlet? instructions: - text: Delete account {accountId} from interface {interfaceId} at hotel {hotelId}. slots: accountId: path.accountId interfaceId: path.interfaceId hotelId: path.hotelId - text: Remove interface account {accountId} for outlet {salesOutlet} on {interfaceId}, hotel {hotelId}. slots: accountId: path.accountId salesOutlet: query.salesOutlet interfaceId: path.interfaceId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/roomStatus'].get update: x-apievangelist-phrasing: intent: Fetch an interface's room status mappings effect: read questions: - How are room statuses translated for a housekeeping or PBX interface? - Which room status codes does an interface map to OPERA housekeeping statuses? instructions: - text: List the room status mappings for interface {interfaceId} at hotel {hotelId}. slots: interfaceId: path.interfaceId hotelId: path.hotelId - text: Show how interface {interfaceId} translates room statuses at {hotelId}. slots: interfaceId: path.interfaceId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/roomStatus'].put update: x-apievangelist-phrasing: intent: Change an interface room status mapping effect: write questions: - How do I change the code an interface sends for a room's housekeeping status? - Can I edit the custom room status translation on an interface? instructions: - text: Update the room status mapping on interface {interfaceId} at hotel {hotelId}. slots: interfaceId: path.interfaceId hotelId: path.hotelId - text: Set room status translation {details} on interface {interfaceId}, hotel {hotelId}. slots: details: requestBody.details interfaceId: path.interfaceId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/roomStatus'].delete update: x-apievangelist-phrasing: intent: Remove an interface room status mapping effect: destructive questions: - How do I delete a room status translation from an interface? - Can I remove the mapping for one housekeeping status on an interface? instructions: - text: Delete room status mapping {interfaceRoomStatusId} from interface {interfaceId} at hotel {hotelId}. slots: interfaceRoomStatusId: query.interfaceRoomStatusId interfaceId: path.interfaceId hotelId: path.hotelId - text: Remove the {housekeepingStatus} status translation on interface {interfaceId}, hotel {hotelId}. slots: housekeepingStatus: query.housekeepingStatus interfaceId: path.interfaceId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/rooms'].get update: x-apievangelist-phrasing: intent: List rooms mapped to an interface effect: read questions: - Which rooms and phone lines are mapped to a PBX interface? - Can I list interface rooms within a room number range? instructions: - text: List the rooms on interface {interfaceId} at hotel {hotelId}. slots: interfaceId: path.interfaceId hotelId: path.hotelId - text: Show interface {interfaceId} rooms from {fromRoom} to {toRoom} at {hotelId}. slots: interfaceId: path.interfaceId fromRoom: query.fromRoom toRoom: query.toRoom hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/rooms'].post update: x-apievangelist-phrasing: intent: Add a room to an interface effect: write questions: - How do I map a single new room and its line to an interface? - What do I send to add one room entry on a PBX interface? instructions: - text: Add a room entry to interface {interfaceId} at hotel {hotelId}. slots: interfaceId: path.interfaceId hotelId: path.hotelId - text: Map room {room} onto interface {interfaceId} for {hotelId}. slots: room: requestBody.room interfaceId: path.interfaceId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/rooms'].delete update: x-apievangelist-phrasing: intent: Remove a room from an interface effect: destructive questions: - How do I unmap a room or phone line from an interface? - Can I delete an interface room by room number and line number? instructions: - text: Remove room {roomNumber} from interface {interfaceId} at hotel {hotelId}. slots: roomNumber: query.roomNumber interfaceId: path.interfaceId hotelId: path.hotelId - text: Delete line {lineNumber} of room {roomNumber} on interface {interfaceId}, hotel {hotelId}. slots: lineNumber: query.lineNumber roomNumber: query.roomNumber interfaceId: path.interfaceId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/rooms/import'].post update: x-apievangelist-phrasing: intent: Bulk import rooms into an interface effect: write questions: - How do I bulk-load all the hotel's rooms into an interface instead of adding them one by one? - Can I run a targeted import of rooms into a PBX interface? instructions: - text: Import the hotel's rooms into interface {interfaceId} at hotel {hotelId}. slots: interfaceId: path.interfaceId hotelId: path.hotelId - text: Run a targeted room import {targetedImport} into interface {interfaceId} for {hotelId}. slots: targetedImport: requestBody.targetedImport interfaceId: path.interfaceId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/rooms/{roomId}'].put update: x-apievangelist-phrasing: intent: Change a room mapped to an interface effect: write questions: - How do I edit the line or class-of-service settings on a room already mapped to an interface? - Can I update one interface room by its id? instructions: - text: Update interface room {roomId} on interface {interfaceId} at hotel {hotelId}. slots: roomId: path.roomId interfaceId: path.interfaceId hotelId: path.hotelId - text: Change interface room {roomId} ({interfaceId}, {hotelId}) to {room}. slots: roomId: path.roomId interfaceId: path.interfaceId hotelId: path.hotelId room: requestBody.room method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/unitCharges'].get update: x-apievangelist-phrasing: intent: Fetch an interface's unit charges effect: read questions: - What unit charges are set for call accounting on a telephone interface? - Where can I see the per-unit rates an interface uses to bill calls? instructions: - text: Show the unit charges for interface {interfaceId} at hotel {hotelId}. slots: interfaceId: path.interfaceId hotelId: path.hotelId - text: Get unit charges for logo {logo} on interface {interfaceId}, hotel {hotelId}. slots: logo: query.logo interfaceId: path.interfaceId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/interfaces/{interfaceId}/unitCharges'].put update: x-apievangelist-phrasing: intent: Change an interface's unit charges effect: write questions: - How do I change the per-unit call charges on a telephone interface? - Can I update the unit charge table for an interface? instructions: - text: Update the unit charges on interface {interfaceId} at hotel {hotelId}. slots: interfaceId: path.interfaceId hotelId: path.hotelId - text: Set unit charges {details} for interface {interfaceId}, hotel {hotelId}. slots: details: requestBody.details interfaceId: path.interfaceId hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/logos/{logo}'].get update: x-apievangelist-phrasing: intent: Get details of one hotel interface by logo effect: read questions: - How do I see the full configuration of one specific interface at a hotel? - Can I fetch a single interface's details by its logo code? instructions: - text: Show the details of interface {logo} at hotel {hotelId}. slots: logo: path.logo hotelId: path.hotelId - text: Get interface {logo} configuration for {hotelId} with fetch instructions {fetchInstructions}. slots: logo: path.logo hotelId: path.hotelId fetchInstructions: query.fetchInstructions method: generated generated: '2026-09-26' - target: $.paths['/interfaceControllerRegistry'].get update: x-apievangelist-phrasing: intent: Fetch the interface controller registry effect: read questions: - Which interface controllers are registered and on which machines? - Can I check the controller registry entries for one machine? instructions: - text: Show the interface controller registry for machine {machine}. slots: machine: query.machine - text: List all registered interface controllers. method: generated generated: '2026-09-26' - target: $.paths['/interfaceErrors'].get update: x-apievangelist-phrasing: intent: List hotel interface errors effect: read questions: - Which interfaces are throwing errors across my hotels? - Can I page through interface errors filtered by interface type? instructions: - text: List interface errors for hotels {hotelIds}. slots: hotelIds: query.hotelIds - text: Show the first {limit} interface errors for interface type {interfaceTypes}. slots: limit: query.limit interfaceTypes: query.interfaceTypes method: generated generated: '2026-09-26' - target: $.paths['/interfaceFailedMessages'].get update: x-apievangelist-phrasing: intent: List failed interface messages effect: read questions: - Which messages to or from an interface failed to deliver? - Can I see failed interface messages for specific logo codes? instructions: - text: List the failed interface messages for hotels {hotelIds}. slots: hotelIds: query.hotelIds - text: Show failed messages for interface logos {logoCodes}. slots: logoCodes: query.logoCodes method: generated generated: '2026-09-26' - target: $.paths['/interfaceRights'].get update: x-apievangelist-phrasing: intent: Fetch interface rights effect: read questions: - What permissions or rights does an interface have at a property? - Can I look up the rights granted for one interface id? instructions: - text: List the interface rights at hotel {hotelId}. slots: hotelId: query.hotelId - text: Show the rights for interface {id} of type {type}. slots: id: query.id type: query.type method: generated generated: '2026-09-26' - target: $.paths['/interfaceRights'].put update: x-apievangelist-phrasing: intent: Change an interface right effect: write questions: - How do I grant or change a right on an interface? - Can I update the description of an interface right? instructions: - text: Update the interface right with {details}. slots: details: requestBody.details - text: Change an interface right at hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/interfaceRights'].delete update: x-apievangelist-phrasing: intent: Remove an interface right effect: destructive questions: - How do I revoke a right from an interface? - Can I remove a single interface right by its code? instructions: - text: Remove right {right} from interface {id} at hotel {hotelId}. slots: right: query.right id: query.id hotelId: query.hotelId - text: Delete interface right code {code}. slots: code: query.code method: generated generated: '2026-09-26' - target: $.paths['/interfaceSchemas'].get update: x-apievangelist-phrasing: intent: List hotel interface schemas effect: read questions: - Which interface schemas are defined for my hotels? - Can I page through interface schemas filtered by interface type? instructions: - text: List the interface schemas for hotels {hotelIds}. slots: hotelIds: query.hotelIds - text: Show interface schemas for type {interfaceTypes}, {limit} at a time. slots: interfaceTypes: query.interfaceTypes limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/interfaces/{interfaceId}/databases/{databaseId}/availableResorts'].get update: x-apievangelist-phrasing: intent: List properties available in an external database effect: read questions: - Which properties can be linked to an interface's external database? - Can I see the resorts an external database exposes for one interface? instructions: - text: List available properties in database {databaseId} for interface {interfaceId}. slots: databaseId: path.databaseId interfaceId: path.interfaceId - text: Show which of hotels {hotelIds} are available in external database {databaseId}, interface {interfaceId}. slots: hotelIds: query.hotelIds databaseId: path.databaseId interfaceId: path.interfaceId method: generated generated: '2026-09-26' - target: $.paths['/machines'].get update: x-apievangelist-phrasing: intent: List interface machines effect: read questions: - Which machines run interface programs, and on what ports? - Where can I see every machine registered for interfaces? instructions: - text: List all interface machines. - text: Show the interface machines registered for hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/machines/{machineId}'].put update: x-apievangelist-phrasing: intent: Change an interface machine effect: write questions: - How do I change the controller or VNC port on an interface machine? - Can I edit one interface machine's settings by id? instructions: - text: Update interface machine {machineId}. slots: machineId: path.machineId - text: Change interface machine {machineId} to {details}. slots: machineId: path.machineId details: requestBody.details method: generated generated: '2026-09-26' - target: $.paths['/machines/{machineId}'].delete update: x-apievangelist-phrasing: intent: Remove an interface machine effect: destructive questions: - How do I delete a machine that no longer runs interfaces? - Can I remove an interface machine record by id? instructions: - text: Delete interface machine {machineId}. slots: machineId: path.machineId - text: Remove machine {machineId} running program {program}. slots: machineId: path.machineId program: query.program method: generated generated: '2026-09-26' - target: $.paths['/udfMappings'].get update: x-apievangelist-phrasing: intent: Look up user-defined field mappings effect: read questions: - How are user-defined fields (UDFs) mapped for interfaces? - Can I look up the mapping for one UDF by name? instructions: - text: Show the mapping for UDF {uDFName}. slots: uDFName: query.uDFName - text: List UDF mappings of type {type}. slots: type: query.type method: generated generated: '2026-09-26' - target: $.paths['/udfMappings'].put update: x-apievangelist-phrasing: intent: Change a user-defined field mapping effect: write questions: - How do I change where a user-defined field maps for an interface? - Can I update a UDF mapping? instructions: - text: Update the UDF mapping to {uDFMapping}. slots: uDFMapping: requestBody.uDFMapping - text: Change the user-defined field mapping for hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/upsert/hotels/{hotelId}/printers'].put update: x-apievangelist-phrasing: intent: Create or change a hotel printer effect: write questions: - How do I set up or update a printer for a hotel? - Can I add a printer or change its setup in one call? instructions: - text: Create or update the printer setup at hotel {hotelId}. slots: hotelId: path.hotelId - text: Upsert printer {printerSetup} for hotel {hotelId}. slots: printerSetup: requestBody.printerSetup hotelId: path.hotelId method: generated generated: '2026-09-26'