# 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' - target: $.paths['/channels/guarantees/mapping'].get update: x-apievangelist-phrasing: intent: View channel-level guarantee code mappings effect: read questions: - Which OPERA guarantee codes are mapped at the channel level? - Can I include inactive guarantee mappings in the channel-level list? instructions: - text: Show channel-level guarantee code mappings for channel {systemCode}. slots: systemCode: query.systemCode - text: List channel guarantee mappings for OPERA guarantee codes {localSystemCodes}. slots: localSystemCodes: query.localSystemCodes method: generated generated: '2026-09-26' - target: $.paths['/channels/hotels'].put update: x-apievangelist-phrasing: intent: Update channel hotel mappings effect: write questions: - How do I change a channel's hotel code or room sell limit for my property? - Can I edit the booking limit on an existing channel hotel mapping? instructions: - text: Update channel hotel mappings with {properties}. slots: properties: requestBody.properties - text: Change the room sell limit on the channel hotel mapping for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/hotels'].post update: x-apievangelist-phrasing: intent: Add channel hotel mappings effect: write questions: - How do I map an OPERA hotel to a channel's hotel code? - Can I set a room sell limit per reservation when mapping a hotel to a channel? instructions: - text: Add channel hotel mappings {properties}. slots: properties: requestBody.properties - text: Map hotel {hotel} to a new channel hotel code. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/hotels'].delete update: x-apievangelist-phrasing: intent: Delete a channel hotel mapping effect: destructive questions: - How do I unmap my hotel from a channel's hotel code? - Can I remove a channel hotel mapping for one chain code? instructions: - text: Delete the channel hotel mapping for OPERA hotel {localSystemCode} on channel {systemCode}. slots: localSystemCode: query.localSystemCode systemCode: query.systemCode - text: Remove channel hotel code {externalSystemCode} mapping in chain {chainCode}. slots: externalSystemCode: query.externalSystemCode chainCode: query.chainCode method: generated generated: '2026-09-26' - target: $.paths['/channels/hotels/mapping'].get update: x-apievangelist-phrasing: intent: View channel hotel mappings effect: read questions: - Which of my hotels are mapped to channel hotel codes? - What room sell limits are set on my channel hotel mappings? instructions: - text: Show channel hotel mappings for channel {systemCode}. slots: systemCode: query.systemCode - text: List channel hotel mappings for OPERA hotels {localSystemCodes}, including inactive. slots: localSystemCodes: query.localSystemCodes method: generated generated: '2026-09-26' - target: $.paths['/channels/marketingText'].get update: x-apievangelist-phrasing: intent: View channel marketing messages effect: read questions: - What marketing messages are configured for a channel? - Can I include global marketing messages in the results? instructions: - text: Show marketing messages for channel {channelCode}. slots: channelCode: query.channelCode - text: List channel marketing text for hotels {hotelIds} starting {beginDate}. slots: hotelIds: query.hotelIds beginDate: query.beginDate method: generated generated: '2026-09-26' - target: $.paths['/channels/marketingText'].put update: x-apievangelist-phrasing: intent: Update channel marketing messages effect: write questions: - How do I edit a marketing message that a channel already shows? - Can I change the dates on an existing channel marketing message? instructions: - text: Update channel marketing messages with {changeChannelMarketingTexts}. slots: changeChannelMarketingTexts: requestBody.changeChannelMarketingTexts - text: Change the existing channel marketing text for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/marketingText'].post update: x-apievangelist-phrasing: intent: Add channel marketing messages effect: write questions: - How do I add a new marketing message for a distribution channel? - Can I create a promotional message that shows on a booking channel? instructions: - text: Add channel marketing messages {createChannelMarketingTexts}. slots: createChannelMarketingTexts: requestBody.createChannelMarketingTexts - text: Create a new channel marketing message for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/marketingText'].delete update: x-apievangelist-phrasing: intent: Delete a channel marketing message effect: destructive questions: - How do I remove a marketing message from a channel? - Can I delete a channel marketing message that starts on a given date? instructions: - text: Delete the marketing message for channel {bookingChannelCode} at hotel {hotelId}. slots: bookingChannelCode: query.bookingChannelCode hotelId: query.hotelId - text: Remove the channel marketing text starting {beginDate} on channel {bookingChannelCode}. slots: beginDate: query.beginDate bookingChannelCode: query.bookingChannelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/marketingText/copy'].post update: x-apievangelist-phrasing: intent: Copy marketing messages to another channel effect: write questions: - Can I copy one channel's marketing message to another channel and hotel? - How do I reuse marketing text across channels without retyping it? instructions: - text: Copy channel marketing messages as described in {copyChannelMarketingTexts}. slots: copyChannelMarketingTexts: requestBody.copyChannelMarketingTexts - text: Duplicate this channel's marketing text to another channel from hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/negotiatedRates'].get update: x-apievangelist-phrasing: intent: View a hotel's channel negotiated rates effect: read questions: - Which negotiated rates are mapped to a channel at a hotel? - Can I look up a channel negotiated rate by its access code? instructions: - text: Show negotiated rate mappings for channel {bookingChannelCode} at hotel {hotelId}. slots: bookingChannelCode: query.bookingChannelCode hotelId: query.hotelId - text: Find the channel negotiated rate with access code {accessCode}. slots: accessCode: query.accessCode method: generated generated: '2026-09-26' - target: $.paths['/channels/negotiatedRates'].put update: x-apievangelist-phrasing: intent: Update channel negotiated rate mappings effect: write questions: - How do I change the profile or access code on a channel negotiated rate? - Can I edit an existing negotiated rate mapping for a channel? instructions: - text: Update channel negotiated rate mappings with {channelNegRates}. slots: channelNegRates: requestBody.channelNegRates - text: Change the existing negotiated rate access for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/negotiatedRates'].post update: x-apievangelist-phrasing: intent: Add a channel negotiated rate mapping effect: write questions: - How do I link a channel's negotiated rate code to an OPERA profile? - Can I give a corporate profile a negotiated rate on a booking channel? instructions: - text: Add channel negotiated rate mappings {channelNegRates}. slots: channelNegRates: requestBody.channelNegRates - text: Create a new negotiated rate mapping for a profile at hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/negotiatedRates'].delete update: x-apievangelist-phrasing: intent: Delete a channel negotiated rate mapping effect: destructive questions: - How do I remove a negotiated rate mapping from a channel? - Can I delete a channel negotiated rate by its access code? instructions: - text: Delete negotiated rate {channelRatePlanCode} on channel {bookingChannelCode} at hotel {hotelId}. slots: channelRatePlanCode: query.channelRatePlanCode bookingChannelCode: query.bookingChannelCode hotelId: query.hotelId - text: Remove the channel negotiated rate with access code {accessCode}. slots: accessCode: query.accessCode method: generated generated: '2026-09-26' - target: $.paths['/channels/rateCategories'].delete update: x-apievangelist-phrasing: intent: Delete channel rate categories effect: destructive questions: - How do I remove rate categories from a channel? - Can I delete the same rate category from several channels at once? instructions: - text: Delete rate categories {rateCategories} from channels {bookingChannelCodes}. slots: rateCategories: query.rateCategories bookingChannelCodes: query.bookingChannelCodes - text: Remove channel rate category {rateCategories} on {bookingChannelCodes}. slots: rateCategories: query.rateCategories bookingChannelCodes: query.bookingChannelCodes method: generated generated: '2026-09-26' - target: $.paths['/channels/rateLevels'].delete update: x-apievangelist-phrasing: intent: Delete channel rate levels effect: destructive questions: - How do I remove a rate level from a channel? - Can I delete rate level codes from multiple channels together? instructions: - text: Delete rate levels {rateLevels} from channels {bookingChannelCodes}. slots: rateLevels: query.rateLevels bookingChannelCodes: query.bookingChannelCodes - text: Remove channel rate level {rateLevels} on {bookingChannelCodes}. slots: rateLevels: query.rateLevels bookingChannelCodes: query.bookingChannelCodes method: generated generated: '2026-09-26' - target: $.paths['/channels/rates'].get update: x-apievangelist-phrasing: intent: View channel rate plan mappings effect: read questions: - Which OPERA rate plans are mapped to channel rate codes? - Can I find rate plans that aren't mapped to a channel yet? - Can I show only negotiated rates in the channel rate mapping? instructions: - text: Show channel rate mappings for hotel {hotelId} on channel {channelCode}. slots: hotelId: query.hotelId channelCode: query.channelCode - text: List only the unmapped rate plans for channel {channelCode}. slots: channelCode: query.channelCode - text: Find the channel mapping for OPERA rate plan {ratePlanCodes}. slots: ratePlanCodes: query.ratePlanCodes method: generated generated: '2026-09-26' - target: $.paths['/channels/rates'].put update: x-apievangelist-phrasing: intent: Update channel rate plan mappings effect: write questions: - How do I change the dates or rate level on a channel rate mapping? - Can I edit an existing channel rate code mapping? instructions: - text: Update channel rate mappings with {channelRateMappings}. slots: channelRateMappings: requestBody.channelRateMappings - text: Change the existing channel rate code mapping for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/rates'].post update: x-apievangelist-phrasing: intent: Map an OPERA rate plan to a channel effect: write questions: - How do I map an OPERA hotel rate plan to a channel rate code? - Can I start selling a new rate plan on a channel by mapping it? instructions: - text: Add channel rate mappings {channelRateMappings}. slots: channelRateMappings: requestBody.channelRateMappings - text: Map a hotel {hotel} rate plan to a new channel rate code. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/rates'].delete update: x-apievangelist-phrasing: intent: Delete a channel rate plan mapping effect: destructive questions: - How do I unmap an OPERA rate plan from a channel rate code? - Can I delete a channel rate mapping that has negotiated rates? instructions: - text: Delete the mapping of rate plan {ratePlanCode} to channel rate {channelRatePlanCode}. slots: ratePlanCode: query.ratePlanCode channelRatePlanCode: query.channelRatePlanCode - text: Remove channel rate {channelRatePlanCode} mapping on channel {bookingChannelCode} at hotel {hotelId}. slots: channelRatePlanCode: query.channelRatePlanCode bookingChannelCode: query.bookingChannelCode hotelId: query.hotelId method: generated generated: '2026-09-26' - target: $.paths['/channels/rates/globalDescriptions'].get update: x-apievangelist-phrasing: intent: List global rate descriptions effect: read questions: - What global descriptions do my rate plans carry for global distribution channels? - Can I list global rate descriptions across several hotels? instructions: - text: Show global rate descriptions for rate plans {ratePlanCodes} at hotels {hotelIds}. slots: ratePlanCodes: query.ratePlanCodes hotelIds: query.hotelIds - text: List global rate descriptions of type {globalDescriptionType}. slots: globalDescriptionType: query.globalDescriptionType method: generated generated: '2026-09-26' - target: $.paths['/channels/rates/globalDescriptions'].put update: x-apievangelist-phrasing: intent: Update global rate descriptions in bulk effect: write questions: - How do I change the global description text of rate codes at a hotel? - Can I update global rate descriptions for many rate codes at once? instructions: - text: Update global rate descriptions with {channelGlobalDescriptions}. slots: channelGlobalDescriptions: requestBody.channelGlobalDescriptions - text: Rewrite the global rate description text for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/rates/globalDescriptions'].post update: x-apievangelist-phrasing: intent: Add global rate descriptions effect: write questions: - How do I add a global description to a rate code for GDS distribution? - Can I create new global rate descriptions for a hotel? instructions: - text: Add global rate descriptions {channelGlobalDescriptions}. slots: channelGlobalDescriptions: requestBody.channelGlobalDescriptions - text: Create a new global rate description for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/rates/globalDescriptions'].delete update: x-apievangelist-phrasing: intent: Delete a global rate description effect: destructive questions: - How do I remove the global description from a rate code? - Can I delete a global rate description for just one hotel? instructions: - text: Delete the global rate description for rate {code} at hotel {hotelId}. slots: code: query.code hotelId: query.hotelId - text: Remove global rate description type {globalDescType} for rate {code}. slots: globalDescType: query.globalDescType code: query.code method: generated generated: '2026-09-26' - target: $.paths['/channels/rates/roomSequence'].put update: x-apievangelist-phrasing: intent: Reorder channel rate-room sequences effect: write questions: - How do I change the display order of rate and room combinations on a channel? - Can I resequence channel rate-room mappings? instructions: - text: Update the channel rate-room sequence with {channelRateRoomList}. slots: channelRateRoomList: requestBody.channelRateRoomList - text: Reorder the channel rate and room combinations for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/restrictions/publish'].put update: x-apievangelist-phrasing: intent: Publish restrictions to channels effect: write questions: - How do I push stay restrictions out to my distribution channels? - Can I send closed-to-arrival or other restrictions to a channel from OPERA? instructions: - text: Publish channel restrictions using {publishRestriction}. slots: publishRestriction: requestBody.publishRestriction - text: Send the current restrictions to channels for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/roomTypes'].delete update: x-apievangelist-phrasing: intent: Delete channel room types effect: destructive questions: - How do I remove a room type from a channel's configuration? - Can I delete channel room types from several channels at once? instructions: - text: Delete room types {roomTypes} from channels {bookingChannelCodes}. slots: roomTypes: query.roomTypes bookingChannelCodes: query.bookingChannelCodes - text: Remove channel room type {roomTypes} on {bookingChannelCodes}. slots: roomTypes: query.roomTypes bookingChannelCodes: query.bookingChannelCodes method: generated generated: '2026-09-26' - target: $.paths['/channels/rooms'].put update: x-apievangelist-phrasing: intent: Update channel room mappings in bulk effect: write questions: - How do I update many channel room mappings in a single request? - Can I bulk edit channel room configuration across room types? instructions: - text: Update channel room mappings in bulk with {channelRoomMappings}. slots: channelRoomMappings: requestBody.channelRoomMappings - text: Bulk change the channel room configuration for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/rooms'].post update: x-apievangelist-phrasing: intent: Map OPERA room types to channel rooms effect: write questions: - How do I map an OPERA room type to a channel room type? - Can I add channel room mappings for several room types at once? instructions: - text: Add channel room mappings {channelRoomMappings}. slots: channelRoomMappings: requestBody.channelRoomMappings - text: Map hotel {hotel} room types to new channel room types. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/rooms/globalDescription'].put update: x-apievangelist-phrasing: intent: Update a room's global distribution description effect: write questions: - How do I update the description a GDS shows for one OPERA room type? - Can I change a single room's global description for global distribution channels? instructions: - text: Update the room global description with {channelRoomDescription}. slots: channelRoomDescription: requestBody.channelRoomDescription - text: Set the GDS-facing description of one room type at hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/rooms/globalDescriptions'].get update: x-apievangelist-phrasing: intent: List global room descriptions effect: read questions: - What global descriptions do my room types have for distribution? - Can I list global room descriptions for several hotels and room types? instructions: - text: Show global room descriptions for room types {roomTypes} at hotels {hotelIds}. slots: roomTypes: query.roomTypes hotelIds: query.hotelIds - text: List global room descriptions of type {globalDescriptionType}. slots: globalDescriptionType: query.globalDescriptionType method: generated generated: '2026-09-26' - target: $.paths['/channels/rooms/globalDescriptions'].put update: x-apievangelist-phrasing: intent: Update global room descriptions in bulk effect: write questions: - How do I change global room descriptions for many room types at once? - Can I bulk edit global room description text by hotel and room type? instructions: - text: Update global room descriptions with {channelGlobalDescriptions}. slots: channelGlobalDescriptions: requestBody.channelGlobalDescriptions - text: Rewrite global room description text in bulk for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/rooms/globalDescriptions'].post update: x-apievangelist-phrasing: intent: Add global room descriptions effect: write questions: - How do I add a global description to a room type for distribution? - Can I create new global room descriptions for a hotel? instructions: - text: Add global room descriptions {channelGlobalDescriptions}. slots: channelGlobalDescriptions: requestBody.channelGlobalDescriptions - text: Create a new global room description for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/channels/rooms/globalDescriptions'].delete update: x-apievangelist-phrasing: intent: Delete a global room description effect: destructive questions: - How do I remove the global description from a room type? - Can I delete a global room description for one hotel only? instructions: - text: Delete the global room description for room type {code} at hotel {hotelId}. slots: code: query.code hotelId: query.hotelId - text: Remove global room description type {globalDescType} for room {code}. slots: globalDescType: query.globalDescType code: query.code method: generated generated: '2026-09-26' - target: $.paths['/channels/subChannels'].delete update: x-apievangelist-phrasing: intent: Delete sub-channels (carriers) effect: destructive questions: - How do I remove a sub-channel carrier from a booking channel? - Can I delete carriers from several channels at once? instructions: - text: Delete carriers {carriers} from channels {bookingChannelCodes}. slots: carriers: query.carriers bookingChannelCodes: query.bookingChannelCodes - text: Remove sub-channel {carriers} under {bookingChannelCodes}. slots: carriers: query.carriers bookingChannelCodes: query.bookingChannelCodes method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}'].get update: x-apievangelist-phrasing: intent: Get details of one channel effect: read questions: - How do I see the full details of one booking channel code? - Can I view a channel's details even if it is inactive? instructions: - text: Show details for channel {channelCode}. slots: channelCode: path.channelCode - text: Get channel {channelCode}, including it if inactive. slots: channelCode: path.channelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/errorCodes'].put update: x-apievangelist-phrasing: intent: Update a channel's error code mappings effect: write questions: - How do I change the error code mappings for a channel? - Can I edit how a channel's error messages are mapped? instructions: - text: Update error code mappings for channel {channelCode}. slots: channelCode: path.channelCode - text: Replace channel {channelCode} error mappings with {errors}. slots: channelCode: path.channelCode errors: requestBody.errors method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/errorCodes'].post update: x-apievangelist-phrasing: intent: Add error code mappings to a channel effect: write questions: - How do I add new error code mappings to a channel? - Can I configure custom error codes for a booking channel? instructions: - text: Add error code mappings to channel {channelCode}. slots: channelCode: path.channelCode - text: Create error mappings {errors} for channel {channelCode}. slots: errors: requestBody.errors channelCode: path.channelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/hotels'].get update: x-apievangelist-phrasing: intent: Look up a channel's hotel code mappings effect: read questions: - Which OPERA hotel does a channel's hotel code map to? - Can I see all hotels mapped under one specific channel? instructions: - text: List hotel mappings for channel {channelCode}. slots: channelCode: path.channelCode - text: Find the OPERA hotel for channel hotel code {channelHotelCode} on channel {channelCode}. slots: channelHotelCode: query.channelHotelCode channelCode: path.channelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/parameters'].put update: x-apievangelist-phrasing: intent: Update a channel's control settings effect: write questions: - How do I activate or deactivate channel controls? - Can I change control settings for a single channel? instructions: - text: Update control settings for channel {channelCode}. slots: channelCode: path.channelCode - text: Set channel {channelCode} controls using {criteria}. slots: channelCode: path.channelCode criteria: requestBody.criteria method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/rateCategories'].put update: x-apievangelist-phrasing: intent: Update a channel's rate categories effect: write questions: - How do I edit the rate categories defined on a channel? - Can I change a rate category's description for one channel? instructions: - text: Update rate categories for channel {channelCode}. slots: channelCode: path.channelCode - text: Replace channel {channelCode} rate categories with {rateCategories}. slots: channelCode: path.channelCode rateCategories: requestBody.rateCategories method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/rateCategories'].post update: x-apievangelist-phrasing: intent: Add rate categories to a channel effect: write questions: - How do I add new rate categories to a channel? - Can I define a new rate category for one booking channel? instructions: - text: Add rate categories to channel {channelCode}. slots: channelCode: path.channelCode - text: Create rate categories {rateCategories} on channel {channelCode}. slots: rateCategories: requestBody.rateCategories channelCode: path.channelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/rateLevels'].put update: x-apievangelist-phrasing: intent: Update a channel's rate levels effect: write questions: - How do I change a channel rate level code's description? - Can I edit existing rate levels on one channel? instructions: - text: Update rate levels for channel {channelCode}. slots: channelCode: path.channelCode - text: Replace channel {channelCode} rate level descriptions with {rateLevels}. slots: channelCode: path.channelCode rateLevels: requestBody.rateLevels method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/rateLevels'].post update: x-apievangelist-phrasing: intent: Add rate levels to a channel effect: write questions: - How do I add a new rate level to a channel? - Can I configure additional rate level codes for one channel? instructions: - text: Add rate levels to channel {channelCode}. slots: channelCode: path.channelCode - text: Create rate levels {rateLevels} on channel {channelCode}. slots: rateLevels: requestBody.rateLevels channelCode: path.channelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/ratePlans'].put update: x-apievangelist-phrasing: intent: Publish rate plans to a channel effect: write questions: - How do I publish rate plan codes to one channel? - Can I push updated rate plans to a specific booking channel? instructions: - text: Publish rate plans to channel {channelCode}. slots: channelCode: path.channelCode - text: Send rate plans {publishRatePlan} to channel {channelCode}. slots: publishRatePlan: requestBody.publishRatePlan channelCode: path.channelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/rateRoomSequences'].get update: x-apievangelist-phrasing: intent: View a channel's rate-room sequence effect: read questions: - In what order are rate and room combinations shown on a channel? - Can I check the sequence for one rate plan and room type on a channel? instructions: - text: Show the rate-room sequence for channel {channelCode}. slots: channelCode: path.channelCode - text: Get the sequence of rate {ratePlanCode} and room {roomType} on channel {channelCode}. slots: ratePlanCode: query.ratePlanCode roomType: query.roomType channelCode: path.channelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/rates/{channelRateCode}/globalDescription'].put update: x-apievangelist-phrasing: intent: Update one channel rate's global description effect: write questions: - How do I update the global description for one channel rate code? - Can I change what a GDS shows for a single rate on a channel? instructions: - text: Update the global description of rate {channelRateCode} on channel {channelCode}. slots: channelRateCode: path.channelRateCode channelCode: path.channelCode - text: Set channel {channelCode} rate {channelRateCode} description to {channelRoomDescription}. slots: channelCode: path.channelCode channelRateCode: path.channelRateCode channelRoomDescription: requestBody.channelRoomDescription method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/roomTypes'].put update: x-apievangelist-phrasing: intent: Update a channel's room types effect: write questions: - How do I edit the room type descriptions defined on a channel? - Can I change a channel room type's description for one channel? instructions: - text: Update room types for channel {channelCode}. slots: channelCode: path.channelCode - text: Replace channel {channelCode} room type descriptions with {roomTypes}. slots: channelCode: path.channelCode roomTypes: requestBody.roomTypes method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/roomTypes'].post update: x-apievangelist-phrasing: intent: Add room types to a channel effect: write questions: - How do I add new room types to a channel's configuration? - Can I define an extra channel room type for one booking channel? instructions: - text: Add room types to channel {channelCode}. slots: channelCode: path.channelCode - text: Create channel room types {roomTypes} on channel {channelCode}. slots: roomTypes: requestBody.roomTypes channelCode: path.channelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/subChannels'].put update: x-apievangelist-phrasing: intent: Update a channel's sub-channels effect: write questions: - How do I edit the sub-channel carriers under a channel? - Can I change a carrier's configuration for one channel? instructions: - text: Update sub-channels for channel {channelCode}. slots: channelCode: path.channelCode - text: Replace channel {channelCode} carriers with {carriers}. slots: channelCode: path.channelCode carriers: requestBody.carriers method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/subChannels'].post update: x-apievangelist-phrasing: intent: Add sub-channels to a channel effect: write questions: - How do I add a sub-channel carrier under a booking channel? - Can I register new carriers for one channel? instructions: - text: Add sub-channels to channel {channelCode}. slots: channelCode: path.channelCode - text: Create carriers {carriers} under channel {channelCode}. slots: carriers: requestBody.carriers channelCode: path.channelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/tenants'].post update: x-apievangelist-phrasing: intent: Add tenant mappings to a channel effect: write questions: - How do I map a tenant to a booking channel? - Can I add tenant organization mappings for one channel? instructions: - text: Add tenant mappings to channel {channelCode}. slots: channelCode: path.channelCode - text: Create tenant mapping {channelOrgMappingDetails} for channel {channelCode}. slots: channelOrgMappingDetails: requestBody.channelOrgMappingDetails channelCode: path.channelCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/tenants/{tenantCode}'].get update: x-apievangelist-phrasing: intent: Get a channel's tenant mapping effect: read questions: - How is a tenant mapped to a particular channel? - Can I look up a channel tenant mapping for a specific chain? instructions: - text: Show tenant {tenantCode} mapping on channel {channelCode}. slots: tenantCode: path.tenantCode channelCode: path.channelCode - text: Get the mapping of tenant {tenantCode} to channel {channelCode} for chain {chainCode}. slots: tenantCode: path.tenantCode channelCode: path.channelCode chainCode: query.chainCode method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/tenants/{tenantCode}'].put update: x-apievangelist-phrasing: intent: Update a channel's tenant mapping effect: write questions: - How do I change an existing tenant mapping on a channel? - Can I edit the details of one channel tenant mapping? instructions: - text: Update tenant {tenantCode} mapping on channel {channelCode}. slots: tenantCode: path.tenantCode channelCode: path.channelCode - text: Change channel {channelCode} tenant {tenantCode} details to {channelOrgMappingDetails}. slots: channelCode: path.channelCode tenantCode: path.tenantCode channelOrgMappingDetails: requestBody.channelOrgMappingDetails method: generated generated: '2026-09-26' - target: $.paths['/channels/{channelCode}/tenants/{tenantCode}'].delete update: x-apievangelist-phrasing: intent: Delete a channel's tenant mapping effect: destructive questions: - How do I remove a tenant mapping from a channel? - Can I delete a channel tenant mapping for only one chain? instructions: - text: Delete tenant {tenantCode} mapping from channel {channelCode}. slots: tenantCode: path.tenantCode channelCode: path.channelCode - text: Remove the tenant {tenantCode} to channel {channelCode} link for chain {chainCode}. slots: tenantCode: path.tenantCode channelCode: path.channelCode chainCode: query.chainCode method: generated generated: '2026-09-26' - target: $.paths['/clusters/{clusterId}/channels/negotiatedRates'].get update: x-apievangelist-phrasing: intent: List cluster-wide channel negotiated rates effect: read questions: - Which channel negotiated rates exist across the hotels in a cluster? - Can I show only internal channels' negotiated rates for a cluster? instructions: - text: List channel negotiated rates in cluster {clusterId} for hotels {hotelIds}. slots: clusterId: path.clusterId hotelIds: query.hotelIds - text: Find cluster {clusterId} negotiated rates with access code {accessCode} at hotels {hotelIds}. slots: clusterId: path.clusterId accessCode: query.accessCode hotelIds: query.hotelIds method: generated generated: '2026-09-26' - target: $.paths['/clusters/{clusterId}/channels/profileRatesAccess'].put update: x-apievangelist-phrasing: intent: Initiate profile rate access codes for a cluster effect: write questions: - How do I set up profile negotiated rate access codes across a cluster? - Can I initiate channel rate access for profiles at cluster level? instructions: - text: Initiate profile rate access codes in cluster {clusterId}. slots: clusterId: path.clusterId - text: Set up rate access items {items} for cluster {clusterId}. slots: items: requestBody.items clusterId: path.clusterId method: generated generated: '2026-09-26' - target: $.paths['/clusters/{clusterId}/channels/profileRatesAccessDeletes'].post update: x-apievangelist-phrasing: intent: Delete cluster-level channel rate access effect: destructive questions: - How do I remove profile rate access codes from a whole cluster? - Can I delete channel rates access at cluster level? instructions: - text: Delete profile rate access codes in cluster {clusterId}. slots: clusterId: path.clusterId - text: Remove channel rate access items {items} from cluster {clusterId}. slots: items: requestBody.items clusterId: path.clusterId method: generated generated: '2026-09-26' - target: $.paths['/clusters/{clusterId}/channels/syncProfileRatesAccess'].put update: x-apievangelist-phrasing: intent: Sync profile rate access codes in a cluster effect: write questions: - How do I sync profile rate access codes to target hotels in a cluster? - Can I swap old channel rate access for new across a cluster's hotels? instructions: - text: Sync profile rate access codes in cluster {clusterId}. slots: clusterId: path.clusterId - text: Sync cluster {clusterId} rate access to hotels {targetHotels}. slots: clusterId: path.clusterId targetHotels: requestBody.targetHotels method: generated generated: '2026-09-26' - target: $.paths['/hotels/totalPricing'].put update: x-apievangelist-phrasing: intent: Update total pricing tax and fee types effect: write questions: - How do I change the tax and fee types sent to global distribution channels? - Can I edit an existing total pricing fee configuration? instructions: - text: Update total pricing tax and fee types with {totalPricingElements}. slots: totalPricingElements: requestBody.totalPricingElements - text: Change the existing total pricing fees for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/hotels/totalPricing'].post update: x-apievangelist-phrasing: intent: Add total pricing tax and fee types effect: write questions: - How do I add a new tax or fee type for total pricing on GDS channels? - Can I configure additional fees to include in total pricing? instructions: - text: Add total pricing tax and fee types {totalPricingElements}. slots: totalPricingElements: requestBody.totalPricingElements - text: Create a new total pricing fee type for hotel {hotel}. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/hotels/totalPricing'].delete update: x-apievangelist-phrasing: intent: Delete a total pricing tax or fee type effect: destructive questions: - How do I remove a tax or fee type from total pricing? - Can I delete a total pricing element for just one hotel? instructions: - text: Delete total pricing element {code} for hotel {hotelId}. slots: code: query.code hotelId: query.hotelId - text: Remove the total pricing fee type {code}. slots: code: query.code method: generated generated: '2026-09-26' - target: $.paths['/hotels/totalPricing/copy'].put update: x-apievangelist-phrasing: intent: Copy total pricing taxes to another hotel effect: write questions: - Can I copy total pricing tax and fee setup from one hotel to another? - How do I reuse a hotel's GDS fee configuration at a sister property? instructions: - text: Copy total pricing taxes and fees using {copyInstructions}. slots: copyInstructions: requestBody.copyInstructions - text: Duplicate hotel {hotel} total pricing configuration to another hotel. slots: hotel: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/guarantees'].get update: x-apievangelist-phrasing: intent: List a hotel's channel guarantee mappings effect: read questions: - Which guarantee codes are mapped to channels at a specific hotel? - Can I list guarantee codes a hotel has not mapped to a channel yet? instructions: - text: List channel guarantee code mappings for hotel {hotelId}. slots: hotelId: path.hotelId - text: Show unmapped guarantee codes at hotel {hotelId} for channel {bookingChannelCodes}. slots: hotelId: path.hotelId bookingChannelCodes: query.bookingChannelCodes method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/ratePlans'].put update: x-apievangelist-phrasing: intent: Publish a hotel's channel rate plans effect: write questions: - How do I publish all channel rate plans for one hotel? - Can I push a property's rate plans to channels in one call? instructions: - text: Publish channel rate plans for hotel {hotelId}. slots: hotelId: path.hotelId - text: Send rate plans {publishRatePlan} to channels for hotel {hotelId}. slots: publishRatePlan: requestBody.publishRatePlan hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/rates'].post update: x-apievangelist-phrasing: intent: Distribute a channel rate to room types effect: write questions: - How do I link a channel rate code to several channel room types? - Can I distribute one channel rate across room types at a hotel? instructions: - text: Distribute channel rates to room types at hotel {hotelId}. slots: hotelId: path.hotelId - text: Link channel rate mappings {distributeChannelRates} to room types at hotel {hotelId}. slots: distributeChannelRates: requestBody.distributeChannelRates hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/totalPricing'].get update: x-apievangelist-phrasing: intent: View a hotel's total pricing tax and fees effect: read questions: - What tax and fee types does my hotel include in GDS total pricing? - Can I filter total pricing elements by transaction code? instructions: - text: Show total pricing tax and fee types for hotel {hotelId}. slots: hotelId: path.hotelId - text: List total pricing elements {elementCodes} at hotel {hotelId}. slots: elementCodes: query.elementCodes hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/cardType/{cardTypeCode}'].put update: x-apievangelist-phrasing: intent: Update a hotel's card mapping on a channel effect: write questions: - How do I change which channel card type an OPERA card maps to at one hotel? - Can I edit a single credit card mapping for a hotel and channel? instructions: - text: Update card {cardTypeCode} mapping on channel {channelCode} at hotel {hotelId}. slots: cardTypeCode: path.cardTypeCode channelCode: path.channelCode hotelId: path.hotelId - text: Set hotel {hotelId} card {cardTypeCode} on {channelCode} to {channelCardTypeMapping}. slots: hotelId: path.hotelId cardTypeCode: path.cardTypeCode channelCode: path.channelCode channelCardTypeMapping: requestBody.channelCardTypeMapping method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/cardType/{cardTypeCode}'].post update: x-apievangelist-phrasing: intent: Map a hotel's card type to a channel effect: write questions: - How do I map one OPERA credit card type to a channel for a specific hotel? - Can I add a card type mapping for a single hotel and channel? instructions: - text: Map card {cardTypeCode} to channel {channelCode} at hotel {hotelId}. slots: cardTypeCode: path.cardTypeCode channelCode: path.channelCode hotelId: path.hotelId - text: Add mapping {channelCardTypeMapping} for card {cardTypeCode} on {channelCode} at hotel {hotelId}. slots: channelCardTypeMapping: requestBody.channelCardTypeMapping cardTypeCode: path.cardTypeCode channelCode: path.channelCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/cardType/{cardTypeCode}'].delete update: x-apievangelist-phrasing: intent: Remove a hotel's card mapping on a channel effect: destructive questions: - How do I unmap an OPERA credit card type from a channel at one hotel? - Can I delete a single card type mapping for a hotel and channel? instructions: - text: Delete card {cardTypeCode} mapping on channel {channelCode} at hotel {hotelId}. slots: cardTypeCode: path.cardTypeCode channelCode: path.channelCode hotelId: path.hotelId - text: Unmap channel card type {channelCardType} from card {cardTypeCode} on {channelCode} at hotel {hotelId}. slots: channelCardType: query.channelCardType cardTypeCode: path.cardTypeCode channelCode: path.channelCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/guarantees/{guaranteeCode}'].put update: x-apievangelist-phrasing: intent: Update a hotel's guarantee mapping on a channel effect: write questions: - How do I change one guarantee code mapping for a channel at a hotel? - Can I edit a single guarantee mapping for a property and channel? instructions: - text: Update guarantee {guaranteeCode} mapping on channel {channelCode} at hotel {hotelId}. slots: guaranteeCode: path.guaranteeCode channelCode: path.channelCode hotelId: path.hotelId - text: Set hotel {hotelId} guarantee {guaranteeCode} on {channelCode} to {channelGuaranteeCodeMapping}. slots: hotelId: path.hotelId guaranteeCode: path.guaranteeCode channelCode: path.channelCode channelGuaranteeCodeMapping: requestBody.channelGuaranteeCodeMapping method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/guarantees/{guaranteeCode}'].post update: x-apievangelist-phrasing: intent: Map a hotel's guarantee code to a channel effect: write questions: - How do I map one OPERA guarantee code to a channel for a specific hotel? - Can I add a guarantee mapping for a single hotel and channel? instructions: - text: Map guarantee {guaranteeCode} to channel {channelCode} at hotel {hotelId}. slots: guaranteeCode: path.guaranteeCode channelCode: path.channelCode hotelId: path.hotelId - text: Add mapping {channelGuaranteeCodeMapping} for guarantee {guaranteeCode} on {channelCode} at hotel {hotelId}. slots: channelGuaranteeCodeMapping: requestBody.channelGuaranteeCodeMapping guaranteeCode: path.guaranteeCode channelCode: path.channelCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/guarantees/{guaranteeCode}'].delete update: x-apievangelist-phrasing: intent: Remove a hotel's guarantee mapping on a channel effect: destructive questions: - How do I unmap a guarantee code from a channel at one property? - Can I delete a single guarantee mapping for a hotel and channel? instructions: - text: Delete guarantee {guaranteeCode} mapping on channel {channelCode} at hotel {hotelId}. slots: guaranteeCode: path.guaranteeCode channelCode: path.channelCode hotelId: path.hotelId - text: Unmap channel guarantee {channelGuaranteeCode} from {guaranteeCode} on {channelCode} at hotel {hotelId}. slots: channelGuaranteeCode: query.channelGuaranteeCode guaranteeCode: path.guaranteeCode channelCode: path.channelCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/parameters'].get update: x-apievangelist-phrasing: intent: View a channel's parameters at a hotel effect: read questions: - What parameter settings does a channel have at my hotel? - Can I search channel parameters by a name pattern? instructions: - text: List channel {channelCode} parameters at hotel {hotelId}. slots: channelCode: path.channelCode hotelId: path.hotelId - text: Find parameters matching {parameterNameWildCard} for channel {channelCode} at hotel {hotelId}. slots: parameterNameWildCard: query.parameterNameWildCard channelCode: path.channelCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/policies'].get update: x-apievangelist-phrasing: intent: Retrieve a channel's policies at a hotel effect: read questions: - What cancellation and deposit policies does a channel receive for my hotel? - Can I check channel policies for a specific rate and room over a date range? instructions: - text: Show channel {channelCode} policies at hotel {hotelId}. slots: channelCode: path.channelCode hotelId: path.hotelId - text: Get channel {channelCode} policies at hotel {hotelId} for rate {ratePlanCode} from {startDate} to {endDate}. slots: channelCode: path.channelCode hotelId: path.hotelId ratePlanCode: query.ratePlanCode startDate: query.startDate endDate: query.endDate method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/rooms/{channelRoomType}/rates'].post update: x-apievangelist-phrasing: intent: Distribute a channel room type to rates effect: write questions: - How do I link one channel room type to several channel rate codes? - Can I distribute a channel room across rate codes at a hotel? instructions: - text: Distribute channel room {channelRoomType} to rate codes on {channelCode} at hotel {hotelId}. slots: channelRoomType: path.channelRoomType channelCode: path.channelCode hotelId: path.hotelId - text: Link room {channelRoomType} on channel {channelCode} at hotel {hotelId} to rates {distributeChannelRates}. slots: channelRoomType: path.channelRoomType channelCode: path.channelCode hotelId: path.hotelId distributeChannelRates: requestBody.distributeChannelRates method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/rooms/{roomTypeCode}'].get update: x-apievangelist-phrasing: intent: Get one room type's channel mapping effect: read questions: - Which channel room type is my OPERA room type mapped to on a channel? - Can I check a single room type's channel mapping as of a date? instructions: - text: Show the channel {channelCode} mapping for room type {roomTypeCode} at hotel {hotelId}. slots: channelCode: path.channelCode roomTypeCode: path.roomTypeCode hotelId: path.hotelId - text: Get room {roomTypeCode} mapping on {channelCode} at hotel {hotelId} starting {beginDate}. slots: roomTypeCode: path.roomTypeCode channelCode: path.channelCode hotelId: path.hotelId beginDate: query.beginDate method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/rooms/{roomTypeCode}'].put update: x-apievangelist-phrasing: intent: Update one room type's channel mapping effect: write questions: - How do I change the channel room code or dates for one OPERA room type? - Can I edit a single room type's mapping on one channel at a hotel? instructions: - text: Update room type {roomTypeCode} mapping on channel {channelCode} at hotel {hotelId}. slots: roomTypeCode: path.roomTypeCode channelCode: path.channelCode hotelId: path.hotelId - text: Set room {roomTypeCode} on {channelCode} at hotel {hotelId} to {channelRoomMapping}. slots: roomTypeCode: path.roomTypeCode channelCode: path.channelCode hotelId: path.hotelId channelRoomMapping: requestBody.channelRoomMapping method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/channels/{channelCode}/rooms/{roomTypeCode}'].delete update: x-apievangelist-phrasing: intent: Delete one room type's channel mapping effect: destructive questions: - How do I unmap an OPERA room type from a channel room type? - Can I delete a room mapping for only a certain date range? instructions: - text: Delete room type {roomTypeCode} mapping on channel {channelCode} at hotel {hotelId}. slots: roomTypeCode: path.roomTypeCode channelCode: path.channelCode hotelId: path.hotelId - text: Remove channel room {channelRoomType} mapping for {roomTypeCode} on {channelCode} at hotel {hotelId}. slots: channelRoomType: query.channelRoomType roomTypeCode: path.roomTypeCode channelCode: path.channelCode hotelId: path.hotelId method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/rates/{ratePlanCode}/globalDescription'].get update: x-apievangelist-phrasing: intent: Get one rate plan's global description effect: read questions: - What global description does a single rate plan have at my hotel? - Can I view the GDS description for one specific rate code? instructions: - text: Show the global description for rate plan {ratePlanCode} at hotel {hotelId}. slots: ratePlanCode: path.ratePlanCode hotelId: path.hotelId - text: Get hotel {hotelId} rate {ratePlanCode} global description text. slots: hotelId: path.hotelId ratePlanCode: path.ratePlanCode method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/rooms/mapping'].get update: x-apievangelist-phrasing: intent: List a hotel's channel room mappings effect: read questions: - Which OPERA room types at my hotel are mapped to channel room types? - Can I list only the room types not yet mapped to a channel? instructions: - text: List channel room mappings for hotel {hotelId}. slots: hotelId: path.hotelId - text: Show unmapped room types at hotel {hotelId} for channel {bookingChannelCodes}. slots: hotelId: path.hotelId bookingChannelCodes: query.bookingChannelCodes method: generated generated: '2026-09-26' - target: $.paths['/hotels/{hotelId}/rooms/{roomType}/globalDescription'].get update: x-apievangelist-phrasing: intent: Get one room type's global description effect: read questions: - What global description does a single room type have at my hotel? - Can I view the GDS description for one specific room type? instructions: - text: Show the global description for room type {roomType} at hotel {hotelId}. slots: roomType: path.roomType hotelId: path.hotelId - text: Get hotel {hotelId} room {roomType} global description text. slots: hotelId: path.hotelId roomType: path.roomType method: generated generated: '2026-09-26' - target: $.paths['/services/channels/status'].get update: x-apievangelist-phrasing: intent: Check the channel service version effect: read questions: - What version of the OPERA Cloud channel service is running? - Is the channel configuration service up and responding? instructions: - text: Check the channel service version for hotel {hotel}. slots: hotel: header.x-hotelid - text: Ping the channel service status endpoint. method: generated generated: '2026-09-26'