Oracle Hospitality · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for OPERA Cloud Configuration Channel API

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

$.info
$.paths['/channels'].get
$.paths['/channels'].put
$.paths['/channels'].post
$.paths['/channels/account/contracts'].delete
$.paths['/channels/account/contracts/copy'].put
$.paths['/channels/accounts'].get
$.paths['/channels/accounts'].put
$.paths['/channels/accounts'].post
$.paths['/channels/accounts/{accountProfileId}'].get
$.paths['/channels/accounts/{accountProfileId}/contracts'].put
$.paths['/channels/accounts/{accountProfileId}/contracts'].post
$.paths['/channels/accounts/{accountProfileId}/contracts/{contractId}'].get
$.paths['/channels/amenities'].put
$.paths['/channels/amenities'].post
$.paths['/channels/amenities'].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 Configuration Channel API
  version: 1.0.0
extends: openapi/oracle-hospitality-channel-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: 129
- target: $.paths['/channels'].get
  update:
    x-apievangelist-phrasing:
      intent: List configured distribution channels
      effect: read
      questions:
      - Which booking channels are set up in OPERA Cloud for my property?
      - Can I filter the channel list to only GDS or web channel sub types?
      - What channels exist with a daily versus max weekly rate type?
      instructions:
      - text: List all channels of system type {systemType}.
        slots:
          systemType: query.systemType
      - text: Find the channel whose booking channel code is {channelCode} in the channel list.
        slots:
          channelCode: query.channelCode
      - text: List channels with sub type {systemSubType}, including inactive ones.
        slots:
          systemSubType: query.systemSubType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels'].put
  update:
    x-apievangelist-phrasing:
      intent: Update existing channel configuration
      effect: write
      questions:
      - How do I change the settings of a booking channel that already exists?
      - Can I edit the configuration of several existing channels in one request?
      instructions:
      - text: Update the existing channel configuration with {channels}.
        slots:
          channels: requestBody.channels
      - text: Save my edited channel settings for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a new booking channel code
      effect: write
      questions:
      - How do I add a brand-new booking channel code to OPERA?
      - Can I register a new OTA as a channel for my property?
      instructions:
      - text: Add new channel {channels} to OPERA.
        slots:
          channels: requestBody.channels
      - text: Create a new booking channel code while logged in to hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/account/contracts'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete channel account contracts
      effect: destructive
      questions:
      - How do I remove a contract from a channel account?
      - Can I delete two channel account contracts in the same call?
      instructions:
      - text: Delete channel account contract {id}.
        slots:
          id: query.id
      - text: Remove channel account contracts {id} and {id1}.
        slots:
          id: query.id
          id1: query.id1
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/account/contracts/copy'].put
  update:
    x-apievangelist-phrasing:
      intent: Copy channel account contracts
      effect: write
      questions:
      - Can I duplicate an existing channel account contract instead of re-entering it?
      - How do I clone channel account contracts onto another account?
      instructions:
      - text: 'Copy these channel account contracts: {channelAccountContractsCopy}.'
        slots:
          channelAccountContractsCopy: requestBody.channelAccountContractsCopy
      - text: Duplicate the channel account contracts for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/accounts'].get
  update:
    x-apievangelist-phrasing:
      intent: Search channel accounts
      effect: read
      questions:
      - Which channel accounts do we have on file in OPERA?
      - Can I find channel accounts whose contracts expire within the next 30 days?
      - How do I look up a channel account by its name or code?
      instructions:
      - text: List channel accounts with contracts expiring within {contractExpInDays} days.
        slots:
          contractExpInDays: query.contractExpInDays
      - text: Find the channel account named {accountName}.
        slots:
          accountName: query.accountName
      - text: List channel accounts of type {accountType} for hotel {hotelId}.
        slots:
          accountType: query.accountType
          hotelId: query.hotelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/accounts'].put
  update:
    x-apievangelist-phrasing:
      intent: Update existing channel accounts
      effect: write
      questions:
      - How do I edit a channel account that already exists for an OPERA profile?
      - Can I change a channel account's details after it was created?
      instructions:
      - text: Update the existing channel accounts for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      - text: Save changes to my channel account records.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/accounts'].post
  update:
    x-apievangelist-phrasing:
      intent: Add new channel accounts
      effect: write
      questions:
      - How do I set up a new channel account?
      - Can I create several channel accounts in one request?
      instructions:
      - text: 'Add these new channel accounts: {channelAccounts}.'
        slots:
          channelAccounts: requestBody.channelAccounts
      - text: Create a channel account for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/accounts/{accountProfileId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the channel account for a profile
      effect: read
      questions:
      - How do I view the channel account for one specific OPERA profile?
      - Can I mark a channel account as recently accessed when I open it?
      instructions:
      - text: Show the channel account for profile {accountProfileId}.
        slots:
          accountProfileId: path.accountProfileId
      - text: Open channel account {accountProfileId} and record it as recently accessed.
        slots:
          accountProfileId: path.accountProfileId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/accounts/{accountProfileId}/contracts'].put
  update:
    x-apievangelist-phrasing:
      intent: Update contracts on a channel account
      effect: write
      questions:
      - How do I change the contracts already attached to a channel account?
      - Can I edit contract terms for one account profile only?
      instructions:
      - text: Update the channel account contracts for profile {accountProfileId}.
        slots:
          accountProfileId: path.accountProfileId
      - text: Replace contract details on account {accountProfileId} with {channelAccountContracts}.
        slots:
          accountProfileId: path.accountProfileId
          channelAccountContracts: requestBody.channelAccountContracts
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/accounts/{accountProfileId}/contracts'].post
  update:
    x-apievangelist-phrasing:
      intent: Add contracts to a channel account
      effect: write
      questions:
      - How do I add a new contract to an existing channel account?
      - Can one channel account profile hold more than one contract?
      instructions:
      - text: Add a new contract to channel account {accountProfileId}.
        slots:
          accountProfileId: path.accountProfileId
      - text: Attach contracts {channelAccountContracts} to account profile {accountProfileId}.
        slots:
          accountProfileId: path.accountProfileId
          channelAccountContracts: requestBody.channelAccountContracts
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/accounts/{accountProfileId}/contracts/{contractId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one contract on a channel account
      effect: read
      questions:
      - What are the terms of a specific contract on a channel account?
      - Can I sort the elements of a channel account contract by an attribute?
      instructions:
      - text: Show contract {contractId} for channel account {accountProfileId}.
        slots:
          contractId: path.contractId
          accountProfileId: path.accountProfileId
      - text: Get the elements of contract {contractId} on account {accountProfileId} sorted by {attributeName}.
        slots:
          contractId: path.contractId
          accountProfileId: path.accountProfileId
          attributeName: query.attributeName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/amenities'].put
  update:
    x-apievangelist-phrasing:
      intent: Update channel amenity mappings
      effect: write
      questions:
      - How do I change how my hotel amenities map to a channel's amenity codes?
      - Can I edit amenity mappings that already exist for a channel?
      instructions:
      - text: Update the channel amenity mappings with {amenities}.
        slots:
          amenities: requestBody.amenities
      - text: Change the existing amenity code mapping for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/amenities'].post
  update:
    x-apievangelist-phrasing:
      intent: Add channel amenity mappings
      effect: write
      questions:
      - How do I map a new OPERA amenity to a channel's amenity code?
      - Can I add amenity mappings for a web channel?
      instructions:
      - text: Add channel amenity mappings {amenities}.
        slots:
          amenities: requestBody.amenities
      - text: Create a new amenity mapping for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/amenities'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a channel amenity mapping
      effect: destructive
      questions:
      - How do I remove an amenity mapping from a channel?
      - Can I delete the mapping for an amenity in a particular amenity group?
      instructions:
      - text: Delete the amenity mapping for local amenity code {localSystemCode} on channel {systemCode}.
        slots:
          localSystemCode: query.localSystemCode
          systemCode: query.systemCode
      - text: Remove the channel amenity mapping in amenity group {amenityGroup}.
        slots:
          amenityGroup: query.amenityGroup
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/amenities/mapping'].get
  update:
    x-apievangelist-phrasing:
      intent: View channel amenity mappings
      effect: read
      questions:
      - Which amenities are mapped to channel amenity codes for my hotel?
      - Can I see the amenity mappings for just one channel?
      instructions:
      - text: Show amenity mappings for channel {systemCode}.
        slots:
          systemCode: query.systemCode
      - text: List channel amenity mappings for local amenity codes {localSystemCodes}.
        slots:
          localSystemCodes: query.localSystemCodes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/availability/publish'].put
  update:
    x-apievangelist-phrasing:
      intent: Publish availability to channels
      effect: write
      questions:
      - How do I push room availability out to my distribution channels?
      - Can I trigger an availability publish to a channel from OPERA?
      instructions:
      - text: Publish availability to channels using {publishAvailability}.
        slots:
          publishAvailability: requestBody.publishAvailability
      - text: Send the current channel availability for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/billingStatements'].get
  update:
    x-apievangelist-phrasing:
      intent: Search channel billing statements
      effect: read
      questions:
      - What channel billing statements were issued between two dates?
      - Can I include locked billing statements in the search results?
      - How do I find billing statements for a particular profile?
      instructions:
      - text: List channel billing statements from {beginDate} to {endDate}.
        slots:
          beginDate: query.beginDate
          endDate: query.endDate
      - text: Find billing statements for profile {profileId}.
        slots:
          profileId: query.profileId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/billingStatements'].put
  update:
    x-apievangelist-phrasing:
      intent: Update channel billing statements
      effect: write
      questions:
      - How do I correct the details on a channel billing statement?
      - Can I edit a channel billing statement after it exists?
      instructions:
      - text: Update channel billing statements with {channelBillingStatements}.
        slots:
          channelBillingStatements: requestBody.channelBillingStatements
      - text: Save corrections to the channel billing statement for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/billingStatements'].post
  update:
    x-apievangelist-phrasing:
      intent: Add channel billing statements manually
      effect: write
      questions:
      - How do I manually add a channel billing statement?
      - Can I enter a billing statement record myself rather than generating it?
      instructions:
      - text: Add channel billing statements {channelBillingStatements}.
        slots:
          channelBillingStatements: requestBody.channelBillingStatements
      - text: Create a billing statement entry by hand for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/billingStatements'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a channel billing statement
      effect: destructive
      questions:
      - How do I remove a channel billing statement?
      - Can I delete a billing statement that was created by mistake?
      instructions:
      - text: Delete channel billing statement {id}.
        slots:
          id: query.id
      - text: Remove the billing statement with ID {id} of type {type}.
        slots:
          id: query.id
          type: query.type
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/billingStatements/generate'].post
  update:
    x-apievangelist-phrasing:
      intent: Generate channel billing statements
      effect: write
      questions:
      - How do I have OPERA generate channel billing statements for me?
      - Can channel billing statements be produced automatically in bulk?
      instructions:
      - text: Generate channel billing statements for {channelBillingStatements}.
        slots:
          channelBillingStatements: requestBody.channelBillingStatements
      - text: Run billing statement generation for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/billingStatements/{statementId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a channel billing statement
      effect: read
      questions:
      - How do I view one channel billing statement by its ID?
      - What does a specific channel billing statement header contain?
      instructions:
      - text: Show channel billing statement {statementId}.
        slots:
          statementId: path.statementId
      - text: Get billing statement {statementId} using ID type {idType}.
        slots:
          statementId: path.statementId
          idType: query.idType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/billingStatements/{statementId}/details'].get
  update:
    x-apievangelist-phrasing:
      intent: List line details of a billing statement
      effect: read
      questions:
      - What line items make up a channel billing statement?
      - Can I filter a statement's line details by contract?
      instructions:
      - text: List the line details of billing statement {statementId}.
        slots:
          statementId: path.statementId
      - text: Show line items on statement {statementId} for contract {contractId}.
        slots:
          statementId: path.statementId
          contractId: query.contractId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/billingStatements/{statementId}/statistics'].get
  update:
    x-apievangelist-phrasing:
      intent: Get statistics for a billing statement
      effect: read
      questions:
      - What are the totals and statistics behind a channel billing statement?
      - Can I get statement statistics for a single contract?
      instructions:
      - text: Show statistics for billing statement {statementId}.
        slots:
          statementId: path.statementId
      - text: Get summary statistics of statement {statementId} for contract {contractId}.
        slots:
          statementId: path.statementId
          contractId: query.contractId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/cardType/mappings'].get
  update:
    x-apievangelist-phrasing:
      intent: List credit card type mappings by hotel
      effect: read
      questions:
      - Which credit card types are mapped to channel card codes at my hotels?
      - Can I see which card types are still unmapped for a channel at a property?
      instructions:
      - text: List per-hotel credit card type mappings for hotels {hotelIds}.
        slots:
          hotelIds: query.hotelIds
      - text: Show card types at hotel {hotelIds} not yet mapped for channel {bookingChannelCodes}.
        slots:
          hotelIds: query.hotelIds
          bookingChannelCodes: query.bookingChannelCodes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/cardTypes'].put
  update:
    x-apievangelist-phrasing:
      intent: Update channel-level credit card code mappings
      effect: write
      questions:
      - How do I change a channel's credit card code mapping to OPERA card codes?
      - Can I update several channel card code mappings in bulk?
      instructions:
      - text: Update channel-level credit card code mappings with {creditCards}.
        slots:
          creditCards: requestBody.creditCards
      - text: Change the bulk channel card code mapping while logged in to hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/cardTypes'].post
  update:
    x-apievangelist-phrasing:
      intent: Add channel-level credit card code mappings
      effect: write
      questions:
      - How do I map OPERA credit card codes to a channel's card codes in bulk?
      - Can I add card mappings at channel level rather than per hotel?
      instructions:
      - text: Add channel-level credit card code mappings {creditCards}.
        slots:
          creditCards: requestBody.creditCards
      - text: Create bulk channel credit card mappings from hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/cardTypes'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a channel-level credit card mapping
      effect: destructive
      questions:
      - How do I remove a channel-level credit card code mapping?
      - Can I unmap one OPERA card code from a channel across the board?
      instructions:
      - text: Delete the channel card code mapping for OPERA card {localSystemCode}.
        slots:
          localSystemCode: query.localSystemCode
      - text: Remove channel card code {externalSystemCode} from channel {systemCode}.
        slots:
          externalSystemCode: query.externalSystemCode
          systemCode: query.systemCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/cardTypes/mapping'].get
  update:
    x-apievangelist-phrasing:
      intent: View channel-level credit card code mappings
      effect: read
      questions:
      - Which OPERA credit card codes are mapped at the channel level?
      - Can I see channel card code mappings including inactive ones?
      instructions:
      - text: Show channel-level credit card code mappings for channel {systemCode}.
        slots:
          systemCode: query.systemCode
      - text: List channel card code mappings for OPERA card codes {localSystemCodes}.
        slots:
          localSystemCodes: query.localSystemCodes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/confirmationLetters'].get
  update:
    x-apievangelist-phrasing:
      intent: View channel confirmation letter mappings
      effect: read
      questions:
      - Which confirmation letter is configured for a channel at my property?
      - Can I look up channel confirmation letters by language?
      instructions:
      - text: Show confirmation letter mappings for channel {channelCode}.
        slots:
          channelCode: query.channelCode
      - text: Get the {letterType} confirmation letter setup for hotels {hotelIds} in {language}.
        slots:
          letterType: query.letterType
          hotelIds: query.hotelIds
          language: query.language
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/confirmationLetters'].put
  update:
    x-apievangelist-phrasing:
      intent: Update channel confirmation letter mappings
      effect: write
      questions:
      - How do I change which confirmation letter a channel's bookings use?
      - Can I edit an existing property confirmation letter mapping?
      instructions:
      - text: Update channel confirmation letter mappings with {channelHotelLetters}.
        slots:
          channelHotelLetters: requestBody.channelHotelLetters
      - text: Change the existing confirmation letter configuration for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/confirmationLetters'].post
  update:
    x-apievangelist-phrasing:
      intent: Add channel confirmation letter mappings
      effect: write
      questions:
      - How do I assign a confirmation letter to a channel for my property?
      - Can I set up a new confirmation letter mapping for each channel?
      instructions:
      - text: Add confirmation letter mappings {channelHotelLetters}.
        slots:
          channelHotelLetters: requestBody.channelHotelLetters
      - text: Create a new channel confirmation letter mapping for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/confirmationLetters'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a channel confirmation letter mapping
      effect: destructive
      questions:
      - How do I remove a channel's confirmation letter mapping?
      - Can I delete only one letter type from a property's channel letter setup?
      instructions:
      - text: Delete the {letterType} confirmation letter mapping for hotel {hotelId}.
        slots:
          letterType: query.letterType
          hotelId: query.hotelId
      - text: Remove confirmation letter {code} from the channel letter setup.
        slots:
          code: query.code
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/currencies'].put
  update:
    x-apievangelist-phrasing:
      intent: Update channel currency code mappings
      effect: write
      questions:
      - How do I change how a channel's currency codes map to OPERA currencies?
      - Can I edit currency code mappings that already exist?
      instructions:
      - text: Update channel currency mappings with {currencies}.
        slots:
          currencies: requestBody.currencies
      - text: Change the existing currency code mapping for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/currencies'].post
  update:
    x-apievangelist-phrasing:
      intent: Add channel currency code mappings
      effect: write
      questions:
      - How do I map a channel currency code to an OPERA currency?
      - Can I add a new currency mapping for a channel?
      instructions:
      - text: Add channel currency code mappings {currencies}.
        slots:
          currencies: requestBody.currencies
      - text: Create a new currency code mapping for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/currencies'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a channel currency code mapping
      effect: destructive
      questions:
      - How do I remove a currency code mapping from a channel?
      - Can I unmap a single OPERA currency from a channel?
      instructions:
      - text: Delete the currency mapping for OPERA currency {localSystemCode}.
        slots:
          localSystemCode: query.localSystemCode
      - text: Remove channel currency code {externalSystemCode} from channel {systemCode}.
        slots:
          externalSystemCode: query.externalSystemCode
          systemCode: query.systemCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/currencies/mapping'].get
  update:
    x-apievangelist-phrasing:
      intent: View channel currency code mappings
      effect: read
      questions:
      - Which currency codes are mapped between my channels and OPERA?
      - Can I list currency mappings for only certain OPERA currencies?
      instructions:
      - text: Show currency code mappings for channel {systemCode}.
        slots:
          systemCode: query.systemCode
      - text: List currency mappings for OPERA currencies {localSystemCodes}.
        slots:
          localSystemCodes: query.localSystemCodes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/distributionTemplates'].get
  update:
    x-apievangelist-phrasing:
      intent: List distribution rate templates
      effect: read
      questions:
      - What distribution rate templates exist for my hotels?
      - Can I list only chain-level distribution templates?
      instructions:
      - text: List distribution templates for hotels {hotelIds}.
        slots:
          hotelIds: query.hotelIds
      - text: Show distribution templates with codes {codes}.
        slots:
          codes: query.codes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/distributionTemplates'].put
  update:
    x-apievangelist-phrasing:
      intent: Update distribution rate templates
      effect: write
      questions:
      - How do I edit an existing distribution rate template?
      - Can I update the templates assigned to several hotels at once?
      instructions:
      - text: Update distribution rate templates {distributionTemplates}.
        slots:
          distributionTemplates: requestBody.distributionTemplates
      - text: Change the existing hotel distribution templates {hotelsDistributionTemplates}.
        slots:
          hotelsDistributionTemplates: requestBody.hotelsDistributionTemplates
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/distributionTemplates'].post
  update:
    x-apievangelist-phrasing:
      intent: Add distribution rate templates
      effect: write
      questions:
      - How do I create a new distribution rate template?
      - Can I add a new rate template for a specific hotel?
      instructions:
      - text: Add a new distribution rate template {distributionTemplates}.
        slots:
          distributionTemplates: requestBody.distributionTemplates
      - text: Create new hotel-level distribution templates {hotelsDistributionTemplates}.
        slots:
          hotelsDistributionTemplates: requestBody.hotelsDistributionTemplates
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/distributionTemplates'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete distribution rate templates
      effect: destructive
      questions:
      - How do I delete a distribution rate template?
      - Can I remove several distribution templates by code at once?
      instructions:
      - text: Delete distribution template {code} for hotel {hotelId}.
        slots:
          code: query.code
          hotelId: query.hotelId
      - text: Remove distribution templates {codes}.
        slots:
          codes: query.codes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/errorCodes'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete channel error code mappings
      effect: destructive
      questions:
      - How do I remove an error code mapping from a channel?
      - Can I delete one specific error mapping for a booking channel?
      instructions:
      - text: Delete error code {error} for channel {bookingChannelCode}.
        slots:
          error: query.error
          bookingChannelCode: query.bookingChannelCode
      - text: Remove the error code mapping configured on channel {bookingChannelCode}.
        slots:
          bookingChannelCode: query.bookingChannelCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/guarantees'].put
  update:
    x-apievangelist-phrasing:
      intent: Update channel-level guarantee code mappings
      effect: write
      questions:
      - How do I change how a channel's guarantee codes map to OPERA guarantee codes?
      - Can I edit guarantee mappings in bulk at channel level?
      instructions:
      - text: Update channel-level guarantee code mappings with {guarantees}.
        slots:
          guarantees: requestBody.guarantees
      - text: Change the bulk guarantee code mapping while logged in to hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/guarantees'].post
  update:
    x-apievangelist-phrasing:
      intent: Add channel-level guarantee code mappings
      effect: write
      questions:
      - How do I map a channel's guarantee codes to OPERA guarantee codes in bulk?
      - Can I add guarantee mappings without specifying a single hotel and code?
      instructions:
      - text: Add channel-level guarantee code mappings {guarantees}.
        slots:
          guarantees: requestBody.guarantees
      - text: Create bulk channel guarantee mappings from hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/channels/guarantees'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a channel-level guarantee mapping
      effect: destructive
      questions:
      - How do I remove a channel-level guarantee code mapping?
      - Can I delete the guarantee mapping tied to a particular requirement code?
      instructions:
      - text: Delete the channel guarantee mapping for OPERA guarantee {localSystemCode}.
        slots:
          localSystemCode: query.localSystemCode
      - text: Remove guarantee mapping with requirement code {requirementCode} from channel {systemCode}.
        slots:
          requirementCode: query.requirementCode
          systemCode: query.systemCode
      method: generated
      generated: '2026-09-26'


# --- truncated at 32 KB (92 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oracle-hospitality/refs/heads/main/overlays/oracle-hospitality-channel-api-phrasing-overlay.yaml