Oracle Hospitality · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Oracle Hospitality Profile Membership API

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

$.info
$.paths['/externalSystems/{extSystemCode}/chains/{chainCode}/enrollments'].post
$.paths['/externalSystems/{extSystemCode}/profiles/{externalProfileId}/profileAwards'].put
$.paths['/externalSystems/{extSystemCode}/profiles/{externalProfileId}/memberships'].get
$.paths['/airline/transactions'].get
$.paths['/availableAwardsBasedOnType'].get
$.paths['/awards'].delete
$.paths['/awardsToGrant'].get
$.paths['/enrollments'].post
$.paths['/hotels/{hotelId}/memberships/{membershipId}'].get
$.paths['/issueOtherAwards'].post
$.paths['/memberHistory'].get
$.paths['/membershipClaims'].get
$.paths['/membershipClaims'].post
$.paths['/membershipClaims/{claimId}'].get
$.paths['/membershipClaims/{claimId}'].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 Oracle Hospitality Profile Membership API
  version: 1.0.0
extends: openapi/oracle-hospitality-profilemembership-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: 45
- target: $.paths['/externalSystems/{extSystemCode}/chains/{chainCode}/enrollments'].post
  update:
    x-apievangelist-phrasing:
      intent: Enroll a guest in an external system's loyalty program
      effect: write
      questions:
      - How do I enroll a guest profile into a membership program run by an external loyalty system?
      - Can a chain push a new loyalty enrollment through an external system code rather than directly in OPERA?
      instructions:
      - text: Enroll the guest into the membership program of external system {ext_system} for chain {chain}.
        slots:
          ext_system: path.extSystemCode
          chain: path.chainCode
      - text: Send enrollment details {enrollment} to external system {ext_system} under chain {chain}.
        slots:
          enrollment: requestBody.enrollmentInfo
          ext_system: path.extSystemCode
          chain: path.chainCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/externalSystems/{extSystemCode}/profiles/{externalProfileId}/profileAwards'].put
  update:
    x-apievangelist-phrasing:
      intent: Redeem an award on an external system's profile
      effect: write
      questions:
      - How do I redeem a loyalty award for a guest identified by an external system's profile ID?
      - Can an external loyalty system redeem an award held on a profile it knows by its own ID?
      instructions:
      - text: Redeem an award on external profile {external_profile} in external system {ext_system}.
        slots:
          external_profile: path.externalProfileId
          ext_system: path.extSystemCode
      - text: Redeem award {award} for external system {ext_system} profile {external_profile}.
        slots:
          award: requestBody.memberAward
          ext_system: path.extSystemCode
          external_profile: path.externalProfileId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/externalSystems/{extSystemCode}/profiles/{externalProfileId}/memberships'].get
  update:
    x-apievangelist-phrasing:
      intent: Get memberships for an external system's profile
      effect: read
      questions:
      - What loyalty memberships does a guest have when I only know the external system's profile ID?
      - Can I filter an external profile's memberships by membership type and a date span of up to 90 days?
      instructions:
      - text: Show the memberships on external profile {external_profile} from external system {ext_system}.
        slots:
          external_profile: path.externalProfileId
          ext_system: path.extSystemCode
      - text: Get the {membership_type} membership for external profile {external_profile} in system {ext_system}.
        slots:
          membership_type: query.membershipType
          external_profile: path.externalProfileId
          ext_system: path.extSystemCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/airline/transactions'].get
  update:
    x-apievangelist-phrasing:
      intent: Check status of airline membership transactions
      effect: read
      questions:
      - Which membership transactions has the airline partner processed so far?
      - Can I look up airline-processed transactions by batch ID or import date?
      instructions:
      - text: Show the airline transaction status for batch {batch_id}.
        slots:
          batch_id: query.batchId
      - text: List airline-processed membership transactions imported on {import_date}.
        slots:
          import_date: query.importDate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/availableAwardsBasedOnType'].get
  update:
    x-apievangelist-phrasing:
      intent: Find loyalty awards available by award type
      effect: read
      questions:
      - Which rate, product or room upgrade awards can a member choose from?
      - Can I find awards that cost fewer than a given number of points for a stay?
      - What room upgrade awards are available from one room category to another?
      instructions:
      - text: Find available awards based on {award_based_on} for membership type {membership_type}.
        slots:
          award_based_on: query.awardBasedOn
          membership_type: query.membershipType
      - text: Show rate awards at hotel {hotel} for arrival {arrival} and departure {departure}.
        slots:
          hotel: query.rateCriteriaHotelId
          arrival: query.arrivalDate
          departure: query.departureDate
      - text: List awards available for under {points} points.
        slots:
          points: query.pointsBelow
      method: generated
      generated: '2026-09-26'
- target: $.paths['/awards'].delete
  update:
    x-apievangelist-phrasing:
      intent: Cancel an award granted to a member
      effect: destructive
      questions:
      - How do I cancel a loyalty award that was already granted to a member?
      - Can I set how many points to charge back when an award is cancelled?
      instructions:
      - text: Cancel award {award_number}.
        slots:
          award_number: query.awardNumber
      - text: Cancel award {award_number} with {cancel_points} cancellation points.
        slots:
          award_number: query.awardNumber
          cancel_points: query.actualCancelPoints
      method: generated
      generated: '2026-09-26'
- target: $.paths['/awardsToGrant'].get
  update:
    x-apievangelist-phrasing:
      intent: List awards that can be granted to a member
      effect: read
      questions:
      - Which awards could I grant to this member right now?
      - Can I narrow grantable awards by the points required or the rate code?
      instructions:
      - text: Show the awards I can grant to membership {membership_id}.
        slots:
          membership_id: query.membershipId
      - text: List grantable awards requiring {points} points at hotel {hotel}.
        slots:
          points: query.totalPointsRequired
          hotel: query.grantAwardInfoHotelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/enrollments'].post
  update:
    x-apievangelist-phrasing:
      intent: Enroll a guest profile in a membership program
      effect: write
      questions:
      - How do I sign an existing guest profile up for our loyalty program in OPERA?
      - Can I enroll a guest into a membership program directly without going through an external system code?
      instructions:
      - text: Enroll the guest into the membership program using {enrollment}.
        slots:
          enrollment: requestBody.enrollmentInfo
      - text: Create a loyalty enrollment for this guest profile in OPERA.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/memberships/{membershipId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a member's issued award points at one hotel
      effect: read
      questions:
      - How many award points has a member been issued at a particular property?
      - What award points were issued per property for one membership?
      instructions:
      - text: Show the issued award points for membership {membership_id} at hotel {hotel}.
        slots:
          membership_id: path.membershipId
          hotel: path.hotelId
      - text: Get hotel {hotel} award points issued to member {membership_id}.
        slots:
          hotel: path.hotelId
          membership_id: path.membershipId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/issueOtherAwards'].post
  update:
    x-apievangelist-phrasing:
      intent: Issue an OTHER-type award to a member
      effect: write
      questions:
      - How do I issue a gift or other non-rate award to a loyalty member?
      - Can I issue an OTHER award by membership type and card number instead of membership ID?
      instructions:
      - text: Issue an OTHER type award using {award_info}.
        slots:
          award_info: requestBody.issueAwardsInfo
      - text: Give this member a non-rate OTHER award.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberHistory'].get
  update:
    x-apievangelist-phrasing:
      intent: View a guest's primary membership history
      effect: read
      questions:
      - What changes have been made to a guest's primary membership over time?
      - Can I filter membership history by action type, user or date range?
      instructions:
      - text: Show the primary membership history for membership {membership_id}.
        slots:
          membership_id: query.membershipId
      - text: List membership history actions for {membership_id} between {from} and {to}.
        slots:
          membership_id: query.membershipId
          from: query.fromDate
          to: query.toDate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipClaims'].get
  update:
    x-apievangelist-phrasing:
      intent: Search membership claims across all members
      effect: read
      questions:
      - Which missing-points claims are open across all members right now?
      - Can I search membership claims by status, hotel or claim date without a membership ID?
      instructions:
      - text: Search all membership claims with status {status}.
        slots:
          status: query.claimStatus
      - text: Find membership claims at hotel {hotel} filed between {start} and {end}.
        slots:
          hotel: query.hotelId
          start: query.claimDateStart
          end: query.claimDateEnd
      - text: Look up the membership claim for confirmation number {confirmation}.
        slots:
          confirmation: query.confirmationNo
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipClaims'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a membership claim
      effect: write
      questions:
      - How do I file a claim for loyalty points a member says they are missing?
      - Can I open a new membership claim with instructions attached?
      instructions:
      - text: Create a membership claim with details {claim}.
        slots:
          claim: requestBody.membershipClaimDetails
      - text: Open a new missing-points claim for this member.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipClaims/{claimId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one membership claim
      effect: read
      questions:
      - What are the details and status of a specific membership claim?
      - Can I fetch a single claim by its claim ID?
      instructions:
      - text: Show membership claim {claim_id}.
        slots:
          claim_id: path.claimId
      - text: Get claim {claim_id} with instructions {instructions}.
        slots:
          claim_id: path.claimId
          instructions: query.fetchInstructions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipClaims/{claimId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an existing membership claim
      effect: write
      questions:
      - How do I change the details of a membership claim that has already been filed?
      - Can I update a claim's status after reviewing it?
      instructions:
      - text: Update membership claim {claim_id} with {claim}.
        slots:
          claim_id: path.claimId
          claim: requestBody.membershipClaimDetails
      - text: Change the details of existing claim {claim_id}.
        slots:
          claim_id: path.claimId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipPoints/calculations'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a membership points calculation
      effect: write
      questions:
      - How do I kick off the loyalty points calculation process?
      - Can I trigger points to be recalculated for stays?
      instructions:
      - text: Start membership points calculation with {calculation}.
        slots:
          calculation: requestBody.membershipPointsCalculation
      - text: Run the membership points calculation process now.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipPointsExceptions'].get
  update:
    x-apievangelist-phrasing:
      intent: List membership points exceptions
      effect: read
      questions:
      - Which stays failed to earn points and are sitting as points exceptions?
      - Can I filter points exceptions by hotel, membership level or arrival date?
      instructions:
      - text: List membership points exceptions with status {status}.
        slots:
          status: query.exceptionStatus
      - text: Show {status} points exceptions at hotel {hotel} for membership type {membership_type}.
        slots:
          status: query.exceptionStatus
          hotel: query.hotelId
          membership_type: query.membershipType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipPointsExceptions'].put
  update:
    x-apievangelist-phrasing:
      intent: Update membership points exceptions
      effect: write
      questions:
      - How do I resolve or update points exceptions after reviewing them?
      - Can I change several membership points exceptions in one request?
      instructions:
      - text: Update membership points exceptions with {exceptions}.
        slots:
          exceptions: requestBody.membershipPointsExceptions
      - text: Mark the reviewed points exceptions as resolved.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipReservationActivity'].get
  update:
    x-apievangelist-phrasing:
      intent: Get today's reservation activity for members
      effect: read
      questions:
      - How many loyalty members are arriving, departing or in-house today?
      - What projected room revenue comes from members at my hotels on a given date?
      instructions:
      - text: Show member reservation activity for hotels {hotels}.
        slots:
          hotels: query.hotelIds
      - text: Get {membership_type} member arrivals, departures and in-house for hotels {hotels} on {date}.
        slots:
          membership_type: query.membershipType
          hotels: query.hotelIds
          date: query.propertyDate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipTransactions/{membershipTransactionId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a membership points transaction
      effect: read
      questions:
      - What are the details of one membership transaction?
      - Can I retrieve a specific loyalty transaction by its ID?
      instructions:
      - text: Show membership transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      - text: Get the full record of loyalty transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipTransactions/{membershipTransactionId}/awardPoints'].get
  update:
    x-apievangelist-phrasing:
      intent: Get award points accrued on a transaction
      effect: read
      questions:
      - How many award points did a points transaction earn, and under which rule?
      - What cost per point was applied to the award points on a transaction?
      instructions:
      - text: Show the award points accrued on transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      - text: List the award point rules applied to transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipTransactions/{membershipTransactionId}/pointRejectionReasons'].get
  update:
    x-apievangelist-phrasing:
      intent: See why points were not awarded on a transaction
      effect: read
      questions:
      - Why didn't a guest earn points for their stay?
      - Which rule rejected points on a transaction, such as membership level requirements not met?
      instructions:
      - text: Explain why points were rejected on transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      - text: List the points rejection reasons for transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipTransactions/{membershipTransactionId}/rates'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the stay rates behind a points transaction
      effect: read
      questions:
      - Which rate code and rate amount were used for the stay on a points transaction?
      - Can I compare the PMS rate with the central rate for a loyalty transaction?
      instructions:
      - text: Show the rate details for points transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      - text: List stay dates, rate codes and market codes for transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipTransactions/{membershipTransactionId}/revenue'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the stay revenue behind a points transaction
      effect: read
      questions:
      - What revenue was recognized for the stay tied to a points transaction?
      - Which revenue types and PMS revenue amounts count toward a member's points?
      instructions:
      - text: Show the revenue details for points transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      - text: Break down stay revenue by type for transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipTransactions/{membershipTransactionId}/tierPoints'].get
  update:
    x-apievangelist-phrasing:
      intent: Get tier points accrued on a transaction
      effect: read
      questions:
      - How many tier points toward status did a points transaction earn?
      - Which rule generated the tier points on a loyalty transaction?
      instructions:
      - text: Show the tier points accrued on transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      - text: List tier point rules applied to transaction {transaction_id}.
        slots:
          transaction_id: path.membershipTransactionId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/award'].get
  update:
    x-apievangelist-phrasing:
      intent: Export a member's award for fulfillment
      effect: read
      questions:
      - How do I export a member's award details to a fulfillment house?
      - Can I include the award number and stay dates in a fulfillment export?
      instructions:
      - text: Export award {award_number} for membership {membership_id} for fulfillment processing.
        slots:
          award_number: query.awardNumber
          membership_id: path.membershipId
      - text: Produce the fulfillment house export for member {membership_id}.
        slots:
          membership_id: path.membershipId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/awardExports'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a member's award export information
      effect: read
      questions:
      - What award information was prepared for the fulfillment house for this member?
      - Can I look up previously generated award export info by award number?
      instructions:
      - text: Show award export information for membership {membership_id}.
        slots:
          membership_id: path.membershipId
      - text: Get the export info for award {award_number} on member {membership_id}.
        slots:
          award_number: query.awardNumber
          membership_id: path.membershipId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/awards'].get
  update:
    x-apievangelist-phrasing:
      intent: List awards issued to a member
      effect: read
      questions:
      - Which awards has a loyalty member already been issued?
      - Can I filter a member's issued awards by hotel or booking number?
      instructions:
      - text: List the awards issued to membership {membership_id}.
        slots:
          membership_id: path.membershipId
      - text: Show awards issued to member {membership_id} at hotel {hotel}.
        slots:
          membership_id: path.membershipId
          hotel: query.hotelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/claims'].get
  update:
    x-apievangelist-phrasing:
      intent: List claims filed for one membership
      effect: read
      questions:
      - What missing-points claims has a specific member filed?
      - Can I see only one member's claims that are still pending approval?
      instructions:
      - text: List claims for membership {membership_id}.
        slots:
          membership_id: path.membershipId
      - text: Show claims for member {membership_id} with status {status}.
        slots:
          membership_id: path.membershipId
          status: query.claimStatus
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/pointsToExpire'].get
  update:
    x-apievangelist-phrasing:
      intent: See a member's points about to expire
      effect: read
      questions:
      - How many of a member's points are about to expire, and when?
      - Which points will lapse soon for a given membership ID?
      instructions:
      - text: Show points to expire for membership {membership_id}.
        slots:
          membership_id: path.membershipId
      - text: List the expiring point balances on member {membership_id}.
        slots:
          membership_id: path.membershipId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/pointsToExpire'].put
  update:
    x-apievangelist-phrasing:
      intent: Extend expiring member points
      effect: write
      questions:
      - Can I extend the expiration date on points a member is about to lose?
      - How does the grace period in months apply when extending expiring points?
      instructions:
      - text: Extend expiring points for membership {membership_id}.
        slots:
          membership_id: path.membershipId
      - text: Extend member {membership_id}'s expiring points to {expiration}.
        slots:
          membership_id: path.membershipId
          expiration: requestBody.expirationDate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/promotions'].get
  update:
    x-apievangelist-phrasing:
      intent: List a member's promotions
      effect: read
      questions:
      - Which loyalty promotions is a member signed up for?
      - Can I include inactive promotions when listing a member's promotions?
      instructions:
      - text: List promotions for membership {membership_id}.
        slots:
          membership_id: path.membershipId
      - text: Show all promotions, including inactive, for member {membership_id}.
        slots:
          membership_id: path.membershipId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/promotions'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a promotion to a member
      effect: write
      questions:
      - How do I register a member for a loyalty promotion?
      - Can I attach a new promotion code to a guest's membership?
      instructions:
      - text: Add promotion {promotion} to membership {membership_id}.
        slots:
          promotion: requestBody.membershipPromotion
          membership_id: path.membershipId
      - text: Sign member {membership_id} up for a new promotion.
        slots:
          membership_id: path.membershipId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/promotions/{promotionCode}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a member's existing promotion
      effect: write
      questions:
      - How do I edit a promotion a member is already enrolled in?
      - Can I update the details of promotion code on an existing membership?
      instructions:
      - text: Update promotion {promotion_code} on membership {membership_id}.
        slots:
          promotion_code: path.promotionCode
          membership_id: path.membershipId
      - text: Change member {membership_id}'s promotion {promotion_code} to {promotion}.
        slots:
          membership_id: path.membershipId
          promotion_code: path.promotionCode
          promotion: requestBody.membershipPromotion
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/promotions/{promotionCode}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a promotion from a member
      effect: destructive
      questions:
      - How do I take a member out of a promotion they joined by mistake?
      - Does deleting a membership promotion just inactivate it?
      instructions:
      - text: Remove promotion {promotion_code} from membership {membership_id}.
        slots:
          promotion_code: path.promotionCode
          membership_id: path.membershipId
      - text: Inactivate member {membership_id}'s promotion {promotion_code}.
        slots:
          membership_id: path.membershipId
          promotion_code: path.promotionCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/transactions'].get
  update:
    x-apievangelist-phrasing:
      intent: Summarize a member's transactions by membership ID
      effect: read
      questions:
      - What does a member's points transaction summary look like?
      - Can I get a transaction summary using the membership ID?
      instructions:
      - text: Show the transaction summary for membership {membership_id}.
        slots:
          membership_id: path.membershipId
      - text: Summarize loyalty transactions posted to member {membership_id}.
        slots:
          membership_id: path.membershipId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/memberships/{membershipId}/transactions'].post
  update:
    x-apievangelist-phrasing:
      intent: Post a new membership transaction
      effect: write
      questions:
      - How do I post a points transaction to a member's account?
      - Can I record a manual loyalty transaction for a member?
      instructions:
      - text: Post transaction {transaction} to membership {membership_id}.
        slots:
          transaction: requestBody.membershipTransactionDetails
          membership_id: path.membershipId
      - text: Record a new points transaction for member {membership_id}.
        slots:
          membership_id: path.membershipId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipsCard/{membershipCardNo}/membershipType/{membershipCardType}/pointsToExpire'].get
  update:
    x-apievangelist-phrasing:
      intent: See expiring points by membership card number
      effect: read
      questions:
      - Which points are about to expire when I only have the guest's membership card number?
      - Can a card number lookup of expiring points return more than one membership?
      instructions:
      - text: Show points to expire for card {card_no} of type {card_type}.
        slots:
          card_no: path.membershipCardNo
          card_type: path.membershipCardType
      - text: Look up expiring points by card number {card_no} and card type {card_type}.
        slots:
          card_no: path.membershipCardNo
          card_type: path.membershipCardType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipsCard/{membershipCardNo}/membershipType/{membershipCardType}/transactions'].get
  update:
    x-apievangelist-phrasing:
      intent: Summarize member transactions by card number
      effect: read
      questions:
      - Can I get a transaction summary using a membership card number instead of the membership ID?
      - What transactions are on the membership tied to a given card number and card type?
      instructions:
      - text: Show the transaction summary for card {card_no} of type {card_type}.
        slots:
          card_no: path.membershipCardNo
          card_type: path.membershipCardType
      - text: Summarize transactions by membership card number {card_no}, card type {card_type}.
        slots:
          card_no: path.membershipCardNo
          card_type: path.membershipCardType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/profileForEnrollment'].get
  update:
    x-apievangelist-phrasing:
      intent: Find matching profiles before enrollment
      effect: read
      questions:
      - Does this guest already have a profile I should use before enrolling them in the loyalty program?
      - Can I match enrollment candidates by name, email or phone number?
      instructions:
      - text: Find profiles matching {given_name} {surname} for enrollment.
        slots:
          given_name: query.givenName
          surname: query.surname
      - text: Search enrollment match profiles by email {email}.
        slots:
          email: query.emailAddress
      method: generated
      generated: '2026-09-26'
- target: $.paths['/profiles/{profileId}/awards/redeem'].put
  update:
    x-apievangelist-phrasing:
      intent: Redeem an award on an OPERA profile
      effect: write
      questions:
      - How do I redeem an award that sits on a guest's OPERA profile?
      - Can I redeem a member award using the OPERA profile ID?
      instructions:
      - text: Redeem an award on OPERA profile {profile_id}.
        slots:
          profile_id: path.profileId
      - text: Redeem award {award} for profile {profile_id}.
        slots:
          award: requestBody.memberAward
          profile_id: path.profileId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/profiles/{profileId}/membershipTransactionExceptions'].get
  update:
    x-apievangelist-phrasing:
      intent: List a profile's membership transaction exceptions
      effect: read
      questions:
      - Which of a guest's membership transactions ended up as exceptions?
      - Can I filter a profile's transaction exceptions by hotel and date range?
      instructions:
      - text: Show membership transaction exceptions for profile {profile_id}.
        slots:
          profile_id: path.profileId
      - text: List transaction exceptions for profile {profile_id} at hotel {hotel} from {start} to {end}.
        slots:
          profile_id: path.profileId
          hotel: query.hotelId
          start: query.start
          end: query.end
      method: generated
      generated: '2026-09-26'
- target: $.paths['/profiles/{profileId}/memberships/history'].get
  update:
    x-apievangelist-phrasing:
      intent: View membership card history on a profile
      effect: read
      questions:
      - What membership cards has a guest held over time?
      - Can I see the card history for a profile's memberships?
      instructions:
      - text: Show membership card history for profile {profile_id}.
        slots:
          profile_id: path.profileId
      - text: List past membership cards issued to profile {profile_id}.
        slots:
          profile_id: path.profileId
      method: generated
      generated: '2026-09-26'


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