Oracle Hospitality · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for OPERA Cloud Rate Rate Plan API

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

$.info
$.paths['/controlSegmentTemplate/{controlSegmentCode}'].put
$.paths['/controlSegmentTemplate/{controlSegmentCode}'].post
$.paths['/controlSegmentTemplate/{controlSegmentCode}'].delete
$.paths['/controlSegmentTemplates'].get
$.paths['/controlSegments'].get
$.paths['/hotels/{hotelId}/bestavailablerates'].get
$.paths['/hotels/{hotelId}/bestavailablerates'].post
$.paths['/hotels/{hotelId}/bestavailablerates'].delete
$.paths['/hotels/{hotelId}/blocks/ratePlans'].get
$.paths['/hotels/{hotelId}/controlSegments/{controlSegmentCode}'].put
$.paths['/hotels/{hotelId}/controlSegments/{controlSegmentCode}'].post
$.paths['/hotels/{hotelId}/controlSegments/{controlSegmentCode}'].delete
$.paths['/hotels/{hotelId}/massRateChangeLog'].delete
$.paths['/hotels/{hotelId}/massRateChangeStatus'].get
$.paths['/hotels/{hotelId}/massRatePlanSchedules'].put

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 Rate Rate Plan API
  version: 1.0.0
extends: openapi/oracle-hospitality-rate-plan-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 112
- target: $.paths['/controlSegmentTemplate/{controlSegmentCode}'].put
  update:
    x-apievangelist-phrasing:
      intent: Modify a control segment template
      effect: write
      questions:
      - Can I edit a chain-level control segment template after it has been created?
      - Is it possible to update several control segment templates in one call?
      instructions:
      - text: Update the control segment template {code} with the new template settings.
        slots:
          code: path.controlSegmentCode
      - text: Change the rules on control segment template {code}.
        slots:
          code: path.controlSegmentCode
      method: generated
      generated: '2026-10-01'
- target: $.paths['/controlSegmentTemplate/{controlSegmentCode}'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a control segment template
      effect: write
      questions:
      - How do I set up a new control segment template at the chain level?
      - Can I add a brand-new control segment template that properties can inherit?
      instructions:
      - text: Create a new control segment template with code {code}.
        slots:
          code: path.controlSegmentCode
      - text: Add control segment template {code} to the template library.
        slots:
          code: path.controlSegmentCode
      method: generated
      generated: '2026-10-01'
- target: $.paths['/controlSegmentTemplate/{controlSegmentCode}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a control segment template
      effect: destructive
      questions:
      - Can I remove a control segment template that we no longer use?
      - What happens when I delete a control segment template from the chain setup?
      instructions:
      - text: Delete the control segment template {code}.
        slots:
          code: path.controlSegmentCode
      - text: Remove template-level control segment {code} permanently.
        slots:
          code: path.controlSegmentCode
      method: generated
      generated: '2026-10-01'
- target: $.paths['/controlSegmentTemplates'].get
  update:
    x-apievangelist-phrasing:
      intent: List control segment templates
      effect: read
      questions:
      - Which control segment templates are defined for our chain?
      - Can I filter control segment templates by membership type, including inactive ones?
      instructions:
      - text: List all control segment templates, including inactive ones.
      - text: Show control segment templates for membership type {type}.
        slots:
          type: query.membershipType
      method: generated
      generated: '2026-10-01'
- target: $.paths['/controlSegments'].get
  update:
    x-apievangelist-phrasing:
      intent: Search property control segments
      effect: read
      questions:
      - Which control segments are configured at a specific hotel?
      - Can I search property control segments by membership level?
      instructions:
      - text: Find the control segments configured at hotel {hotel}.
        slots:
          hotel: query.hotelIds
      - text: Search control segments at hotel {hotel} for membership type {type} and level {level}.
        slots:
          hotel: query.hotelIds
          type: query.membershipType
          level: query.membershipLevel
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/bestavailablerates'].get
  update:
    x-apievangelist-phrasing:
      intent: Fetch best available rates for a hotel
      effect: read
      questions:
      - What are the best available rates set up at my hotel starting next week?
      - Can I look up best available rates for a particular rate code and length of stay?
      instructions:
      - text: Show best available rates at hotel {hotelId} from {startDay}.
        slots:
          hotelId: path.hotelId
          startDay: query.startDay
      - text: Get the best available rates for rate code {rateCode} at hotel {hotelId} between {startDay} and {endDay}.
        slots:
          rateCode: query.rateCode
          hotelId: path.hotelId
          startDay: query.startDay
          endDay: query.endDay
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/bestavailablerates'].post
  update:
    x-apievangelist-phrasing:
      intent: Create best available rates
      effect: write
      questions:
      - How do I load best available rates for a rate code into the property?
      - Can I define new BAR entries for several rate codes at once?
      instructions:
      - text: Create best available rates at hotel {hotelId} from the rates I provide.
        slots:
          hotelId: path.hotelId
      - text: Add these new BAR entries to hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/bestavailablerates'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete best available rates for a date range
      effect: destructive
      questions:
      - Can I clear best available rates for a rate code over a date range?
      - Is it possible to delete BAR only for weekends or certain lengths of stay?
      instructions:
      - text: Delete best available rates for rate code {code} at hotel {hotelId} from {start} to {end}.
        slots:
          code: query.code
          hotelId: path.hotelId
          start: query.start
          end: query.end
      - text: Remove the Saturday best available rates for {code} at hotel {hotelId} between {start} and {end}.
        slots:
          code: query.code
          hotelId: path.hotelId
          start: query.start
          end: query.end
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/blocks/ratePlans'].get
  update:
    x-apievangelist-phrasing:
      intent: Find rate plans usable on a group block
      effect: read
      questions:
      - Which rate plans can I attach to a group block at my hotel?
      - Can I list only negotiated rate plans available to a company's block?
      instructions:
      - text: Show the rate plans available for blocks at hotel {hotelId} from {beginDate} to {endDate}.
        slots:
          hotelId: path.hotelId
          beginDate: query.beginDate
          endDate: query.endDate
      - text: List block rate plans at hotel {hotelId} negotiated for company {companyId}.
        slots:
          hotelId: path.hotelId
          companyId: query.companyId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/controlSegments/{controlSegmentCode}'].put
  update:
    x-apievangelist-phrasing:
      intent: Modify a hotel control segment
      effect: write
      questions:
      - Can I change the rules on a control segment at one hotel?
      - Is it possible to switch a property control segment to require membership?
      instructions:
      - text: Update control segment {code} at hotel {hotelId} with new rules.
        slots:
          code: path.controlSegmentCode
          hotelId: path.hotelId
      - text: Deactivate control segment {code} at hotel {hotelId}.
        slots:
          code: path.controlSegmentCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/controlSegments/{controlSegmentCode}'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a hotel control segment
      effect: write
      questions:
      - How do I add a control segment with rate rules to a single property?
      - Can a new property control segment be restricted to a membership type?
      instructions:
      - text: Create control segment {code} at hotel {hotelId} with the rules I give you.
        slots:
          code: path.controlSegmentCode
          hotelId: path.hotelId
      - text: Set up a membership-only control segment {code} at hotel {hotelId} for membership type {type}.
        slots:
          code: path.controlSegmentCode
          hotelId: path.hotelId
          type: requestBody.membershipTypeCode
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/controlSegments/{controlSegmentCode}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a hotel control segment
      effect: destructive
      questions:
      - Can I delete a control segment from one hotel without touching the template?
      - What does removing a property control segment do to its rules?
      instructions:
      - text: Delete control segment {code} at hotel {hotelId}.
        slots:
          code: path.controlSegmentCode
          hotelId: path.hotelId
      - text: Remove the property control segment {code} from hotel {hotelId}.
        slots:
          code: path.controlSegmentCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/massRateChangeLog'].delete
  update:
    x-apievangelist-phrasing:
      intent: Clear the mass rate change log
      effect: destructive
      questions:
      - Can I wipe the mass rate change log for a hotel?
      - Is there a way to reset the log left behind by mass rate changes?
      instructions:
      - text: Delete the mass rate change log for hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: Clear out hotel {hotelId}'s mass rate change history log.
        slots:
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/massRateChangeStatus'].get
  update:
    x-apievangelist-phrasing:
      intent: Check the status of a mass rate change
      effect: read
      questions:
      - Has the mass rate change I started at my hotel finished?
      - Can I see detailed status for a running mass rate update?
      instructions:
      - text: Check the mass rate change status for hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: Show mass rate change progress at hotel {hotelId} with detail status {detail}.
        slots:
          hotelId: path.hotelId
          detail: query.detailStatus
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/massRatePlanSchedules'].put
  update:
    x-apievangelist-phrasing:
      intent: Update rate plan schedules in bulk
      effect: write
      questions:
      - How do I change pricing schedules across many rate plans in one go?
      - Can I apply a mass update to rate plan schedules using criteria?
      instructions:
      - text: Run a mass rate plan schedule update at hotel {hotelId} using these criteria.
        slots:
          hotelId: path.hotelId
      - text: Apply the mass rate change criteria {criteria} to schedules at hotel {hotelId}.
        slots:
          criteria: requestBody.criteria
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/negotiatedRates'].get
  update:
    x-apievangelist-phrasing:
      intent: List a hotel's negotiated rates and profiles
      effect: read
      questions:
      - Which companies have negotiated rates at my hotel?
      - Can I include inactive negotiated rates when listing a property's corporate deals?
      instructions:
      - text: List every negotiated rate and its profile at hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: Show negotiated rates at hotel {hotelId} valid between {startDate} and {endDate}.
        slots:
          hotelId: path.hotelId
          startDate: query.startDate
          endDate: query.endDate
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/negotiatedRates'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a negotiated rate for a profile
      effect: write
      questions:
      - How do I give a corporate account a negotiated rate at my property?
      - Can I attach a new negotiated rate code to a travel agent profile?
      instructions:
      - text: Create a negotiated rate at hotel {hotelId} for the profile I specify.
        slots:
          hotelId: path.hotelId
      - text: Add these negotiated rates {rates} at hotel {hotelId}.
        slots:
          rates: requestBody.negotiatedRates
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/negotiatedRates/distributions'].put
  update:
    x-apievangelist-phrasing:
      intent: Distribute negotiated rates to other hotels
      effect: write
      questions:
      - Can I push a negotiated rate out to several other properties?
      - Which hotels can a negotiated rate be distributed to from this property?
      instructions:
      - text: Distribute negotiated rates from hotel {hotelId} to hotels {hotels}.
        slots:
          hotelId: path.hotelId
          hotels: requestBody.hotelCodeList
      - text: Share the negotiated rate list {rates} from hotel {hotelId} across our other properties.
        slots:
          rates: requestBody.negotiatedRateList
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/negotiatedRates/{rateCode}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a negotiated rate for a profile
      effect: write
      questions:
      - Can I extend the dates on a company's existing negotiated rate?
      - How can I edit a negotiated rate code that's already linked to a profile?
      instructions:
      - text: Update negotiated rate {rateCode} at hotel {hotelId}.
        slots:
          rateCode: path.rateCode
          hotelId: path.hotelId
      - text: Change the dates on negotiated rate {rateCode} at hotel {hotelId} for the profile I name.
        slots:
          rateCode: path.rateCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/negotiatedRates/{rateCode}/profiles'].get
  update:
    x-apievangelist-phrasing:
      intent: List profiles holding a negotiated rate code
      effect: read
      questions:
      - Which profiles have been given a specific negotiated rate code at my hotel?
      - Who is entitled to a particular corporate rate code at this property?
      instructions:
      - text: Show the profiles linked to negotiated rate {rateCode} at hotel {hotelId}.
        slots:
          rateCode: path.rateCode
          hotelId: path.hotelId
      - text: List accounts on rate code {rateCode} at hotel {hotelId}, include inactive set to {inactive}.
        slots:
          rateCode: path.rateCode
          hotelId: path.hotelId
          inactive: query.includeInactiveNegotiatedRates
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageForecastGroups'].get
  update:
    x-apievangelist-phrasing:
      intent: List a hotel's package forecast groups
      effect: read
      questions:
      - Which package forecast groups exist at my property?
      - Can I search a hotel's package forecast groups by a partial code?
      instructions:
      - text: List the package forecast groups at hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: Find package forecast groups at hotel {hotelId} with code {code}.
        slots:
          hotelId: path.hotelId
          code: query.PackageForecastGroupCodes
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageForecastGroups'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a hotel's package forecast groups
      effect: write
      questions:
      - Can I rename a package forecast group at one property?
      - Is it possible to edit existing hotel-level package forecast groups in bulk?
      instructions:
      - text: Update the package forecast groups at hotel {hotelId} with these changes.
        slots:
          hotelId: path.hotelId
      - text: Change hotel {hotelId}'s package forecast group descriptions.
        slots:
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageForecastGroups'].post
  update:
    x-apievangelist-phrasing:
      intent: Create package forecast groups at a hotel
      effect: write
      questions:
      - How do I add a new package forecast group for one hotel?
      - Can I group packages for forecasting at a single property?
      instructions:
      - text: Create new package forecast groups at hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: Add package forecast group {groups} to hotel {hotelId}.
        slots:
          groups: requestBody.hotelPackageForecastGroups
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageForecastGroups'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a hotel's package forecast groups
      effect: destructive
      questions:
      - Can I remove a package forecast group from one property?
      - What's the way to drop an unused hotel package forecast group?
      instructions:
      - text: Delete package forecast group {code} at hotel {hotelId}.
        slots:
          code: query.code
          hotelId: path.hotelId
      - text: Remove the hotel-level forecast group {code} from hotel {hotelId}.
        slots:
          code: query.code
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageFormulaRanges'].get
  update:
    x-apievangelist-phrasing:
      intent: Get package formula ranges
      effect: read
      questions:
      - What package formula ranges are defined at my hotel?
      - Can I filter package formula ranges by tax range type?
      instructions:
      - text: Show the package formula ranges at hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: List package formula ranges at hotel {hotelId} of tax range type {type}.
        slots:
          hotelId: path.hotelId
          type: query.taxRangeType
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageFormulaRanges'].post
  update:
    x-apievangelist-phrasing:
      intent: Create package formula ranges
      effect: write
      questions:
      - How do I define new amount ranges for package formulas?
      - Can I add package formula ranges for a property?
      instructions:
      - text: Create package formula ranges at hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: Add these new formula ranges {ranges} to hotel {hotelId}.
        slots:
          ranges: requestBody.packageFormulaRanges
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageFormulaRanges/{packageFormulaRangeId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a package formula range
      effect: write
      questions:
      - Can I edit the amounts on a package formula range I already created?
      - Is there a way to modify a single package formula range by its ID?
      instructions:
      - text: Update package formula range {rangeId} at hotel {hotelId}.
        slots:
          rangeId: path.packageFormulaRangeId
          hotelId: path.hotelId
      - text: Change the limits on formula range {rangeId} at hotel {hotelId}.
        slots:
          rangeId: path.packageFormulaRangeId
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageFormulaRanges/{packageFormulaRangeId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a package formula range
      effect: destructive
      questions:
      - Can I delete a package formula range I no longer need?
      - Does deleting a formula range let me target a specific amount and currency?
      instructions:
      - text: Delete package formula range {rangeId} at hotel {hotelId}.
        slots:
          rangeId: path.packageFormulaRangeId
          hotelId: path.hotelId
      - text: Remove formula range {rangeId} at hotel {hotelId} for amount {amount} in {currency}.
        slots:
          rangeId: path.packageFormulaRangeId
          hotelId: path.hotelId
          amount: query.amount
          currency: query.currencyCode
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageGroups'].get
  update:
    x-apievangelist-phrasing:
      intent: List package groups at a hotel
      effect: read
      questions:
      - Which package groups are set up at my property?
      - Can I find package groups by a word in their description?
      instructions:
      - text: List the package bundles (package groups) defined at hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: Find package groups at hotel {hotelId} whose description contains {text}.
        slots:
          hotelId: path.hotelId
          text: query.descriptionWildCard
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageGroups'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a package group
      effect: write
      questions:
      - Can I change which packages belong to an existing package group?
      - How can I edit a package group's details at my hotel?
      instructions:
      - text: Edit the existing package bundles (package groups) at hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: Change the contents of existing package group {groups} at hotel {hotelId}.
        slots:
          groups: requestBody.packageGroups
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageGroups'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a package group
      effect: write
      questions:
      - How do I bundle several packages into a new package group?
      - Can I create a package group like a breakfast-and-parking bundle?
      instructions:
      - text: Create a new package group at hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: Add package group {groups} to hotel {hotelId}.
        slots:
          groups: requestBody.packageGroups
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packageGroups/{packageCode}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a package group
      effect: destructive
      questions:
      - Can I delete a package group without deleting the packages inside it?
      - What's involved in removing a package group from a hotel?
      instructions:
      - text: Delete package group {code} at hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      - text: Remove the package group with code {code} from hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packages/{packageCode}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one package's details
      effect: read
      questions:
      - What's included in a specific package code at my hotel?
      - Can I see the configuration of a single package, including its instructions?
      instructions:
      - text: Show the details of package {code} at hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      - text: Get package {code} at hotel {hotelId} with instructions {fetch}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
          fetch: query.fetchInstructions
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packages/{packageCode}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a package
      effect: write
      questions:
      - Can I change the price or posting of an existing package?
      - How do I edit a package that's already set up at my hotel?
      instructions:
      - text: Update package {code} at hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      - text: Change the settings of existing package {code} at hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packages/{packageCode}'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a package
      effect: write
      questions:
      - How do I create a new package like breakfast included at my property?
      - Can I add a package code that can later be attached to rate plans?
      instructions:
      - text: Create package {code} at hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      - text: Set up a new package with code {code} at hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packages/{packageCode}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a package
      effect: destructive
      questions:
      - Can I delete a package code we've stopped selling?
      - Is removing a package from a hotel permanent?
      instructions:
      - text: Delete package {code} at hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      - text: Remove package code {code} from hotel {hotelId} for good.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packages/{packageCode}/rates'].get
  update:
    x-apievangelist-phrasing:
      intent: List rate plans that include a package
      effect: read
      questions:
      - Which rate plans include a particular package?
      - What rate codes is a package attached to at my hotel?
      instructions:
      - text: List the rate plan codes that include package {code} at hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      - text: Show which rates package {code} is attached to at hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/packages/{packageCode}/text'].post
  update:
    x-apievangelist-phrasing:
      intent: Generate a package description with AI
      effect: write
      questions:
      - Can AI write a guest-facing description for one of my packages?
      - Could I give a prompt to shape an AI-generated package description?
      instructions:
      - text: Generate an AI description for package {code} at hotel {hotelId}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
      - text: Write a package description for {code} at hotel {hotelId} using the prompt {prompt}.
        slots:
          code: path.packageCode
          hotelId: path.hotelId
          prompt: requestBody.userPrompt
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/profiles/{profileId}/startDate/{startDate}/negotiatedRates/{ratePlanId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a negotiated rate from a profile
      effect: destructive
      questions:
      - Can I take a negotiated rate away from a company profile?
      - What do I need to delete a negotiated rate that starts on a given date?
      instructions:
      - text: Delete negotiated rate {ratePlanId} for profile {profileId} at hotel {hotelId} starting {startDate}.
        slots:
          ratePlanId: path.ratePlanId
          profileId: path.profileId
          hotelId: path.hotelId
          startDate: path.startDate
      - text: Remove profile {profileId}'s negotiated rate {ratePlanId} at hotel {hotelId} effective {startDate}.
        slots:
          ratePlanId: path.ratePlanId
          profileId: path.profileId
          hotelId: path.hotelId
          startDate: path.startDate
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/promotionCodes'].get
  update:
    x-apievangelist-phrasing:
      intent: List a hotel's promotion codes
      effect: read
      questions:
      - Which promotion codes are active at my hotel?
      - Can I find promotion codes tied to a certain rate code?
      instructions:
      - text: List the promotion codes at hotel {hotelId}.
        slots:
          hotelId: path.hotelId
      - text: Find property promotion codes at hotel {hotelId} in promotion group {group}.
        slots:
          hotelId: path.hotelId
          group: query.promotionGroup
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/promotionCodes/{promotionCode}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a hotel promotion code
      effect: write
      questions:
      - Can I edit a promotion code that already exists at my property?
      - How do I update the rates a property promo code applies to?
      instructions:
      - text: Update promotion code {promo} at hotel {hotelId}.
        slots:
          promo: path.promotionCode
          hotelId: path.hotelId
      - text: Change the existing property promo {promo} at hotel {hotelId}.
        slots:
          promo: path.promotionCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/promotionCodes/{promotionCode}'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a hotel promotion code
      effect: write
      questions:
      - How do I create a new promo code guests can use at my hotel?
      - Can I add a promotion code to just one property?
      instructions:
      - text: Create promotion code {promo} at hotel {hotelId}.
        slots:
          promo: path.promotionCode
          hotelId: path.hotelId
      - text: Add a brand-new property promo {promo} to hotel {hotelId}.
        slots:
          promo: path.promotionCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/hotels/{hotelId}/promotionCodes/{promotionCode}/coupons'].get
  update:
    x-apievangelist-phrasing:
      intent: List coupon codes for a hotel promotion
      effect: read
      questions:
      - What coupon codes have been generated under a promotion at my hotel?
      - Can I list a promotion's coupons from a certain batch?
      instructions:
      - text: List coupon codes for promotion {promo} at hotel {hotelId}.
        slots:
          promo: path.promotionCode
          hotelId: path.hotelId
      - text: Show coupons in batch {batch} for promotion {promo} at hotel {hotelId}.
        slots:
          batch: query.batchCode
          promo: path.promotionCode
          hotelId: path.hotelId
      method: generated
      generated: '2026-10-01'


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