Oracle Hospitality · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for OPERA Cloud Integration Configuration External Systems…

44 actions 44 updates phrasing extends openapi/oracle-hospitality-externalsystemsconfig-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 44 · first 16 shown; the file carries all of them

$.info
$.paths['/configuredExternalDevices'].get
$.paths['/deliveryMethods'].get
$.paths['/deliveryMethods'].put
$.paths['/deliveryMethods'].post
$.paths['/deliveryMethods'].delete
$.paths['/externalDevices/configurations'].get
$.paths['/externalDevices/configurations'].put
$.paths['/externalSystems/config/ping'].get
$.paths['/externalSystems/{externalSystemCode}/hotels/{hotelId}/publishers'].post
$.paths['/externalSystems/{externalSystemCode}/hotels/{hotelId}/publishers'].delete
$.paths['/externalSystems/{externalSystemCode}/publishers'].get
$.paths['/hotelInerface'].put
$.paths['/hotelInerface'].post
$.paths['/hotelInterfaceTypes'].get
$.paths['/hotels/{hotelId}/hotelInerface'].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 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'