Oracle Hospitality · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Oracle Hospitality Profile External API

12 actions 12 updates phrasing extends openapi/oracle-hospitality-profileexternal-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 12

$.info
$.paths['/externalSystems/{extSystemCode}/chains/{chainCode}/externalProfiles'].get
$.paths['/externalSystems/{extSystemCode}/chains/{chainCode}/externalProfiles/{profileExternalId}'].get
$.paths['/externalSystems/{extSystemCode}/playerStatistics/{profileId}'].get
$.paths['/externalSystems/{extSystemCode}/gamingOffers/{membershipNo}'].get
$.paths['/hotels/{hotelId}/travelAgents/{iataNumber}'].get
$.paths['/validatedAddresses'].get
$.paths['/validatedAddresses/{externalAddressId}'].get
$.paths['/externalSystems/{extSystemCode}/chains/{chainCode}/validateMembershipNumber'].get
$.paths['/services/profileExternal/status'].get
$.paths['/validateEmail'].post
$.paths['/validatePhone'].post

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 External API
  version: 1.0.0
extends: openapi/oracle-hospitality-profileexternal-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: 11
- target: $.paths['/externalSystems/{extSystemCode}/chains/{chainCode}/externalProfiles'].get
  update:
    x-apievangelist-phrasing:
      intent: Search guest profiles in an external system
      effect: read
      questions:
      - How do I look up a guest profile that lives in an external CRM or loyalty system?
      - Can I search external profiles by membership number or birth date?
      - Which fields can I filter on when searching profiles held outside OPERA?
      instructions:
      - text: Search external system {system} in chain {chain} for profiles named {name}.
        slots:
          system: path.extSystemCode
          chain: path.chainCode
          name: query.name
      - text: Find the external profile with membership number {membership} in {system} for chain {chain}.
        slots:
          membership: query.membershipNumber
          system: path.extSystemCode
          chain: path.chainCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/externalSystems/{extSystemCode}/chains/{chainCode}/externalProfiles/{profileExternalId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a guest profile from an external system
      effect: read
      questions:
      - Once I find a profile in the external system, how do I pull it into OPERA?
      - What ID do I need to download a single profile from an external database?
      instructions:
      - text: Download external profile {profile} from system {system} for chain {chain}.
        slots:
          profile: path.profileExternalId
          system: path.extSystemCode
          chain: path.chainCode
      - text: Bring external profile {profile} from {system} into hotel {hotel} for chain {chain}.
        slots:
          profile: path.profileExternalId
          system: path.extSystemCode
          hotel: query.hotelId
          chain: path.chainCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/externalSystems/{extSystemCode}/playerStatistics/{profileId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a guest's gaming player statistics
      effect: read
      questions:
      - Can I see casino player statistics for a hotel guest from the gaming system?
      - How do I look up player stats tied to a particular reservation?
      instructions:
      - text: Get player statistics for profile {profile} from gaming system {system}.
        slots:
          profile: path.profileId
          system: path.extSystemCode
      - text: Show player {player} statistics for profile {profile} on reservation {reservation} via {system}.
        slots:
          player: query.playerId
          profile: path.profileId
          reservation: query.reservationId
          system: path.extSystemCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/externalSystems/{extSystemCode}/gamingOffers/{membershipNo}'].get
  update:
    x-apievangelist-phrasing:
      intent: List gaming offers available to a member
      effect: read
      questions:
      - What casino offers can I attach to a guest's profile from the gaming system?
      - Can I limit gaming offers to a specific date window?
      instructions:
      - text: List gaming offers for membership {membership} from system {system}.
        slots:
          membership: path.membershipNo
          system: path.extSystemCode
      - text: Get offers for member {membership} in {system} valid between {start} and {end}.
        slots:
          membership: path.membershipNo
          system: path.extSystemCode
          start: query.startDate
          end: query.endDate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/hotels/{hotelId}/travelAgents/{iataNumber}'].get
  update:
    x-apievangelist-phrasing:
      intent: Validate a travel agent's IATA number
      effect: read
      questions:
      - How do I check whether a travel agent's IATA number is valid?
      - Is there a way to verify an IATA code before creating a travel agent profile?
      instructions:
      - text: Validate IATA number {iata} for hotel {hotel}.
        slots:
          iata: path.iataNumber
          hotel: path.hotelId
      - text: Check that travel agent IATA {iata} is real at {hotel}.
        slots:
          iata: path.iataNumber
          hotel: path.hotelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/validatedAddresses'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up address suggestions from a validation vendor
      effect: read
      questions:
      - How do I get validated address suggestions for a guest's partially typed address?
      - Can I set a timeout on the third-party address lookup?
      instructions:
      - text: Find validated address matches for {address} in country {country}.
        slots:
          address: query.addressText
          country: query.country
      - text: Suggest addresses for {address} in {country} in language {language}.
        slots:
          address: query.addressText
          country: query.country
          language: query.language
      method: generated
      generated: '2026-09-26'
- target: $.paths['/validatedAddresses/{externalAddressId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the full address for a validated address ID
      effect: read
      questions:
      - After picking an address suggestion, how do I get the complete address details?
      - What do I get back for one external address ID from the validation vendor?
      instructions:
      - text: Get the full address for validated address ID {address_id}.
        slots:
          address_id: path.externalAddressId
      - text: Expand address suggestion {address_id} into its complete address.
        slots:
          address_id: path.externalAddressId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/externalSystems/{extSystemCode}/chains/{chainCode}/validateMembershipNumber'].get
  update:
    x-apievangelist-phrasing:
      intent: Validate a loyalty membership number externally
      effect: read
      questions:
      - How can I check a guest's membership number against the external loyalty system?
      - Does membership validation need the membership type as well as the number?
      instructions:
      - text: Validate membership number {membership} of type {type} with {system} for chain {chain}.
        slots:
          membership: query.membershipNo
          type: query.membershipType
          system: path.extSystemCode
          chain: path.chainCode
      - text: Check if {type} member {membership} exists in external system {system} for chain {chain}.
        slots:
          type: query.membershipType
          membership: query.membershipNo
          system: path.extSystemCode
          chain: path.chainCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/services/profileExternal/status'].get
  update:
    x-apievangelist-phrasing:
      intent: Check the ProfileExternal service status
      effect: read
      questions:
      - Is the external profile service up and responding?
      - What version of the ProfileExternal service is running?
      instructions:
      - text: Ping the ProfileExternal service.
      - text: Check whether the external profile service is healthy for hotel {hotel}.
        slots:
          hotel: header.x-hotelid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/validateEmail'].post
  update:
    x-apievangelist-phrasing:
      intent: Validate an email address with a vendor
      effect: read
      questions:
      - Can OPERA check whether a guest's email address is valid before I save it?
      - How long will the third-party email validation wait before timing out?
      instructions:
      - text: Validate the email address {email}.
        slots:
          email: requestBody.emailAddress
      - text: Check {email} with the email validation vendor, timing out after {seconds} seconds.
        slots:
          email: requestBody.emailAddress
          seconds: requestBody.timeoutSeconds
      method: generated
      generated: '2026-09-26'
- target: $.paths['/validatePhone'].post
  update:
    x-apievangelist-phrasing:
      intent: Validate a phone number with a vendor
      effect: read
      questions:
      - How do I confirm a guest's phone number is valid through a third-party service?
      - Can I set a timeout on phone number validation?
      instructions:
      - text: Validate the phone number {phone}.
        slots:
          phone: requestBody.phone
      - text: Check phone {phone} with the validation vendor within {seconds} seconds.
        slots:
          phone: requestBody.phone
          seconds: requestBody.timeoutSeconds
      method: generated
      generated: '2026-09-26'