Oracle Hospitality · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for OPERA Cloud CRM Configuration Membership Config API

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

$.info
$.paths['/membershipAwards'].get
$.paths['/membershipAwards'].post
$.paths['/membershipAwards/{membershipAwardsId}'].put
$.paths['/membershipAwards/{membershipAwardsId}'].delete
$.paths['/upsert/membershipAwards/{membershipAwardsId}'].put
$.paths['/membershipBenefitPrograms'].get
$.paths['/membershipBenefitPrograms'].post
$.paths['/membershipBenefitPrograms/{membershipBenefitProgramsId}'].put
$.paths['/membershipBenefitPrograms/{membershipBenefitProgramsId}'].delete
$.paths['/upsert/membershipBenefitPrograms/{membershipBenefitProgramsId}'].put
$.paths['/membershipClasses'].get
$.paths['/membershipClasses'].post
$.paths['/membershipClasses/{membershipClassId}'].put
$.paths['/membershipClasses/{membershipClassId}'].delete
$.paths['/membershipEnrollmentGroups'].get

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 CRM Configuration Membership Config API
  version: 1.0.0
extends: openapi/oracle-hospitality-membershipconfig-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: 98
- target: $.paths['/membershipAwards'].get
  update:
    x-apievangelist-phrasing:
      intent: List loyalty membership awards
      effect: read
      questions:
      - Which membership awards are configured for our loyalty program?
      - Can I see only awards valid on a certain date, including inactive ones?
      instructions:
      - text: List membership awards for membership type {membershipType}.
        slots:
          membershipType: query.membershipType
      - text: Show awards with codes {awardCodes} valid on {validForDate}.
        slots:
          awardCodes: query.awardCodes
          validForDate: query.validForDate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipAwards'].post
  update:
    x-apievangelist-phrasing:
      intent: Create membership awards
      effect: write
      questions:
      - How do I add a new reward that loyalty members can redeem?
      - Can I define several new membership awards in one request?
      instructions:
      - text: 'Create these new membership awards: {membershipAwards}.'
        slots:
          membershipAwards: requestBody.membershipAwards
      - text: Add a brand-new award to the loyalty award catalog.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipAwards/{membershipAwardsId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change an existing membership award
      effect: write
      questions:
      - Can I edit the details of a membership award that already exists?
      - What's the way to update an award's configuration after it's been created?
      instructions:
      - text: Update existing membership award {membershipAwardsId} with {membershipAwards}.
        slots:
          membershipAwardsId: path.membershipAwardsId
          membershipAwards: requestBody.membershipAwards
      - text: Change the settings on award {membershipAwardsId}.
        slots:
          membershipAwardsId: path.membershipAwardsId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipAwards/{membershipAwardsId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a membership award
      effect: destructive
      questions:
      - Can I remove a loyalty award we no longer offer?
      - What happens if I delete an award tied to a membership type?
      instructions:
      - text: Delete membership award {membershipAwardsId}.
        slots:
          membershipAwardsId: path.membershipAwardsId
      - text: Remove award {membershipAwardsId} from membership type {membershipType}.
        slots:
          membershipAwardsId: path.membershipAwardsId
          membershipType: query.membershipType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/upsert/membershipAwards/{membershipAwardsId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Create or update a membership award by id
      effect: write
      questions:
      - Is there one call that creates a membership award if missing or updates it if it exists?
      - Can I upsert an award without checking first whether it's already there?
      instructions:
      - text: Upsert membership award {membershipAwardsId} with {membershipAwards}.
        slots:
          membershipAwardsId: path.membershipAwardsId
          membershipAwards: requestBody.membershipAwards
      - text: Create or overwrite award {membershipAwardsId}.
        slots:
          membershipAwardsId: path.membershipAwardsId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipBenefitPrograms'].get
  update:
    x-apievangelist-phrasing:
      intent: List benefit programs of a membership type
      effect: read
      questions:
      - Which benefit programs are set up for a given membership type?
      - Can I find benefit programs that start at a minimum membership level?
      - What limits the date range when searching benefit programs?
      instructions:
      - text: List benefit programs for membership type {membershipType}.
        slots:
          membershipType: query.membershipType
      - text: Show benefit program {code} active between {start} and {end}.
        slots:
          code: query.code
          start: query.start
          end: query.end
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipBenefitPrograms'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a membership benefit program
      effect: write
      questions:
      - How do I set up a new benefit program for a membership type?
      - Why can't I configure a benefit program on a membership type that is externally controlled?
      instructions:
      - text: Create benefit programs {membershipBenefitPrograms}.
        slots:
          membershipBenefitPrograms: requestBody.membershipBenefitPrograms
      - text: Add a new benefit program to our loyalty membership type.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipBenefitPrograms/{membershipBenefitProgramsId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change an existing benefit program
      effect: write
      questions:
      - Can I modify the rules of a benefit program that already exists?
      - What's needed to edit an existing membership benefit program?
      instructions:
      - text: Update benefit program {membershipBenefitProgramsId} with {membershipBenefitPrograms}.
        slots:
          membershipBenefitProgramsId: path.membershipBenefitProgramsId
          membershipBenefitPrograms: requestBody.membershipBenefitPrograms
      - text: Change the settings of existing benefit program {membershipBenefitProgramsId}.
        slots:
          membershipBenefitProgramsId: path.membershipBenefitProgramsId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipBenefitPrograms/{membershipBenefitProgramsId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a membership benefit program
      effect: destructive
      questions:
      - Can I remove a benefit program we've retired?
      - Does deleting a benefit program need the membership type too?
      instructions:
      - text: Delete benefit program {membershipBenefitProgramsId}.
        slots:
          membershipBenefitProgramsId: path.membershipBenefitProgramsId
      - text: Remove benefit program {membershipBenefitProgramsId} from membership type {membershipType}.
        slots:
          membershipBenefitProgramsId: path.membershipBenefitProgramsId
          membershipType: query.membershipType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/upsert/membershipBenefitPrograms/{membershipBenefitProgramsId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Create or update a benefit program by id
      effect: write
      questions:
      - Is there an upsert for benefit programs that creates or modifies in one step?
      - Can I push a benefit program definition whether or not it exists yet?
      instructions:
      - text: Upsert benefit program {membershipBenefitProgramsId} with {membershipBenefitPrograms}.
        slots:
          membershipBenefitProgramsId: path.membershipBenefitProgramsId
          membershipBenefitPrograms: requestBody.membershipBenefitPrograms
      - text: Create or overwrite benefit program {membershipBenefitProgramsId}.
        slots:
          membershipBenefitProgramsId: path.membershipBenefitProgramsId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipClasses'].get
  update:
    x-apievangelist-phrasing:
      intent: List membership classes
      effect: read
      questions:
      - What membership classes are configured?
      - Can I search membership classes by code or a wildcard description, including inactive ones?
      instructions:
      - text: List all membership classes.
      - text: Find membership classes with codes {codes}.
        slots:
          codes: query.codes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipClasses'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a membership class
      effect: write
      questions:
      - How do I add a new membership class to group membership types?
      - Can I create more than one membership class at once?
      instructions:
      - text: Create membership classes {membershipClasses}.
        slots:
          membershipClasses: requestBody.membershipClasses
      - text: Add a new membership class.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipClasses/{membershipClassId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a membership class
      effect: write
      questions:
      - Can I rename or edit an existing membership class?
      - What's involved in updating a membership class definition?
      instructions:
      - text: Update membership class {membershipClassId} with {membershipClasses}.
        slots:
          membershipClassId: path.membershipClassId
          membershipClasses: requestBody.membershipClasses
      - text: Change the description of membership class {membershipClassId}.
        slots:
          membershipClassId: path.membershipClassId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipClasses/{membershipClassId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a membership class
      effect: destructive
      questions:
      - Can I delete a membership class we no longer use?
      - Is removing a membership class permanent?
      instructions:
      - text: Delete membership class {membershipClassId}.
        slots:
          membershipClassId: path.membershipClassId
      - text: Remove class {membershipClassId} from the membership configuration.
        slots:
          membershipClassId: path.membershipClassId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipEnrollmentGroups'].get
  update:
    x-apievangelist-phrasing:
      intent: List membership enrollment groups
      effect: read
      questions:
      - Which enrollment groups exist for signing up members?
      - Can I page through enrollment groups, and what's the maximum page size?
      instructions:
      - text: List membership enrollment groups, {limit} at a time.
        slots:
          limit: query.limit
      - text: Find enrollment groups with codes {enrollmentCodes}.
        slots:
          enrollmentCodes: query.enrollmentCodes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipEnrollmentGroups'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a membership enrollment group
      effect: write
      questions:
      - How do I set up a new enrollment group for membership sign-ups?
      - Can I add several enrollment groups in one call?
      instructions:
      - text: Create enrollment groups {membershipEnrollmentGroups}.
        slots:
          membershipEnrollmentGroups: requestBody.membershipEnrollmentGroups
      - text: Add a new membership enrollment group.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipEnrollmentGroups/{membershipEnrollmentGroupsId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a membership enrollment group
      effect: write
      questions:
      - Can I edit an enrollment group after it's been created?
      - What do I send to update an existing enrollment group?
      instructions:
      - text: Update enrollment group {membershipEnrollmentGroupsId} with {membershipEnrollmentGroups}.
        slots:
          membershipEnrollmentGroupsId: path.membershipEnrollmentGroupsId
          membershipEnrollmentGroups: requestBody.membershipEnrollmentGroups
      - text: Change enrollment group {membershipEnrollmentGroupsId}.
        slots:
          membershipEnrollmentGroupsId: path.membershipEnrollmentGroupsId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipEnrollmentGroups/{membershipEnrollmentGroupsId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a membership enrollment group
      effect: destructive
      questions:
      - Can I remove an enrollment group that's obsolete?
      - Is there a way to delete one membership enrollment group?
      instructions:
      - text: Delete enrollment group {membershipEnrollmentGroupsId}.
        slots:
          membershipEnrollmentGroupsId: path.membershipEnrollmentGroupsId
      - text: Remove the enrollment group {membershipEnrollmentGroupsId}.
        slots:
          membershipEnrollmentGroupsId: path.membershipEnrollmentGroupsId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipFolioTexts'].post
  update:
    x-apievangelist-phrasing:
      intent: Set membership folio texts
      effect: write
      questions:
      - How do I set the text that prints on guest folios for a membership?
      - Can I configure membership folio text messages?
      instructions:
      - text: Set membership folio texts to {membershipFolioTexts}.
        slots:
          membershipFolioTexts: requestBody.membershipFolioTexts
      - text: Save the folio text shown for our loyalty members.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipLevelRules'].get
  update:
    x-apievangelist-phrasing:
      intent: List membership level rules
      effect: read
      questions:
      - What rules decide when a member moves between levels?
      - Can I look up level rules for one membership type and level?
      instructions:
      - text: List level rules for membership type {membershipType} at level {membershipLevel}.
        slots:
          membershipType: query.membershipType
          membershipLevel: query.membershipLevel
      - text: Show membership level rule number {ruleNo}.
        slots:
          ruleNo: query.ruleNo
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipLevelRules'].post
  update:
    x-apievangelist-phrasing:
      intent: Create membership level rules
      effect: write
      questions:
      - How do I add a new rule for upgrading or downgrading member levels?
      - Can I define level rules for a membership tier?
      instructions:
      - text: Create membership level rules {membershipLevelRules}.
        slots:
          membershipLevelRules: requestBody.membershipLevelRules
      - text: Add a new tier qualification rule for a membership level.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipLevelRules/{membershipLevelRulesID}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change membership level rules
      effect: write
      questions:
      - Can I edit an existing membership level rule's thresholds?
      - What's the process for updating a level rule that's already defined?
      instructions:
      - text: Update level rule {membershipLevelRulesID} with {membershipLevelRules}.
        slots:
          membershipLevelRulesID: path.membershipLevelRulesID
          membershipLevelRules: requestBody.membershipLevelRules
      - text: Change membership level rule {membershipLevelRulesID}.
        slots:
          membershipLevelRulesID: path.membershipLevelRulesID
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipLevels'].get
  update:
    x-apievangelist-phrasing:
      intent: List levels of a membership type
      effect: read
      questions:
      - What tiers like silver or gold exist for a membership type?
      - Can I include folio texts and inactive levels when listing membership levels?
      instructions:
      - text: List membership levels for membership type {membershipTypeCode}.
        slots:
          membershipTypeCode: query.membershipTypeCode
      - text: Show levels of {membershipTypeCode} used at hotels {hotelIds}.
        slots:
          membershipTypeCode: query.membershipTypeCode
          hotelIds: query.hotelIds
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipLevels'].post
  update:
    x-apievangelist-phrasing:
      intent: Create membership levels
      effect: write
      questions:
      - How do I add a new tier to a loyalty membership type?
      - Can I create several membership levels together?
      instructions:
      - text: Create membership levels {membershipLevels}.
        slots:
          membershipLevels: requestBody.membershipLevels
      - text: Add a new tier level to our membership program.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipLevels/{membershipLevelsId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a membership level
      effect: write
      questions:
      - Can I edit an existing membership tier's settings?
      - What's the way to update a level after it's in use?
      instructions:
      - text: Update membership level {membershipLevelsId} with {membershipLevels}.
        slots:
          membershipLevelsId: path.membershipLevelsId
          membershipLevels: requestBody.membershipLevels
      - text: Change tier level {membershipLevelsId}.
        slots:
          membershipLevelsId: path.membershipLevelsId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipLevels/{membershipLevelsId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a membership level
      effect: destructive
      questions:
      - Can I remove a tier from a membership type?
      - Does deleting a membership level need the membership type specified?
      instructions:
      - text: Delete membership level {membershipLevelsId}.
        slots:
          membershipLevelsId: path.membershipLevelsId
      - text: Remove level {membershipLevelsId} from membership type {type}.
        slots:
          membershipLevelsId: path.membershipLevelsId
          type: query.type
      method: generated
      generated: '2026-09-26'
- target: $.paths['/upsert/membershipLevels/{membershipLevelsId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Create or update a membership level by id
      effect: write
      questions:
      - Is there an upsert for membership levels so I don't need separate create and change calls?
      - Can I sync a tier level definition whether or not it exists?
      instructions:
      - text: Upsert membership level {membershipLevelsId} with {membershipLevels}.
        slots:
          membershipLevelsId: path.membershipLevelsId
          membershipLevels: requestBody.membershipLevels
      - text: Create or overwrite tier level {membershipLevelsId}.
        slots:
          membershipLevelsId: path.membershipLevelsId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipMarketGroups'].get
  update:
    x-apievangelist-phrasing:
      intent: List membership market groups
      effect: read
      questions:
      - Which membership market groups are configured?
      - Can I search market groups by wildcard description?
      instructions:
      - text: List membership market groups.
      - text: Find membership market groups with codes {codes}.
        slots:
          codes: query.codes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipMarketGroups'].post
  update:
    x-apievangelist-phrasing:
      intent: Create membership market groups
      effect: write
      questions:
      - How do I add a market group for membership point calculations?
      - Can I create multiple membership market groups at once?
      instructions:
      - text: Create membership market groups {membershipMarketGroups}.
        slots:
          membershipMarketGroups: requestBody.membershipMarketGroups
      - text: Add a new membership market group.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipMarketGroups/{membershipMarketGroupId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a membership market group
      effect: write
      questions:
      - Can I change which market codes belong to an existing membership market group?
      - What do I send to edit a membership market group?
      instructions:
      - text: Update membership market group {membershipMarketGroupId} with {membershipMarketGroups}.
        slots:
          membershipMarketGroupId: path.membershipMarketGroupId
          membershipMarketGroups: requestBody.membershipMarketGroups
      - text: Change market group {membershipMarketGroupId}.
        slots:
          membershipMarketGroupId: path.membershipMarketGroupId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipMarketGroups/{membershipMarketGroupId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a membership market group
      effect: destructive
      questions:
      - Can I delete a membership market group?
      - Is it possible to remove a market group we no longer use for membership?
      instructions:
      - text: Delete membership market group {membershipMarketGroupId}.
        slots:
          membershipMarketGroupId: path.membershipMarketGroupId
      - text: Remove market group {membershipMarketGroupId} from membership setup.
        slots:
          membershipMarketGroupId: path.membershipMarketGroupId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/upsert/membershipMarketGroups/{membershipMarketGroupId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Create or update a membership market group
      effect: write
      questions:
      - Is there an upsert for membership market groups?
      - Can I create-or-change a market group by id in one request?
      instructions:
      - text: Upsert membership market group {membershipMarketGroupId} with {membershipMarketGroups}.
        slots:
          membershipMarketGroupId: path.membershipMarketGroupId
          membershipMarketGroups: requestBody.membershipMarketGroups
      - text: Create or overwrite market group {membershipMarketGroupId}.
        slots:
          membershipMarketGroupId: path.membershipMarketGroupId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipOriginGroups'].get
  update:
    x-apievangelist-phrasing:
      intent: List membership origin groups
      effect: read
      questions:
      - What membership origin groups do we have?
      - Can I filter origin groups by code or description?
      instructions:
      - text: List membership origin groups.
      - text: Find membership origin groups with codes {codes}.
        slots:
          codes: query.codes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipOriginGroups'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a membership origin group
      effect: write
      questions:
      - How do I create a membership origin group?
      - Can I group booking origin codes for membership purposes?
      instructions:
      - text: Create membership origin group {membershipOriginGroup}.
        slots:
          membershipOriginGroup: requestBody.membershipOriginGroup
      - text: Add a new membership origin group.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipOriginGroups/{membershipOriginGroupId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a membership origin group
      effect: write
      questions:
      - Can I edit an existing membership origin group?
      - What's needed to update the codes in an origin group?
      instructions:
      - text: Update membership origin group {membershipOriginGroupId} with {membershipOriginGroup}.
        slots:
          membershipOriginGroupId: path.membershipOriginGroupId
          membershipOriginGroup: requestBody.membershipOriginGroup
      - text: Change origin group {membershipOriginGroupId}.
        slots:
          membershipOriginGroupId: path.membershipOriginGroupId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipOriginGroups/{membershipOriginGroupId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a membership origin group
      effect: destructive
      questions:
      - Can I delete a membership origin group?
      - Is there a way to remove an unused origin group?
      instructions:
      - text: Delete membership origin group {membershipOriginGroupId}.
        slots:
          membershipOriginGroupId: path.membershipOriginGroupId
      - text: Remove origin group {membershipOriginGroupId}.
        slots:
          membershipOriginGroupId: path.membershipOriginGroupId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipPropertyGroups'].get
  update:
    x-apievangelist-phrasing:
      intent: List membership property groups
      effect: read
      questions:
      - Which groups of hotels are set up for membership rules?
      - Can I list property groups including inactive ones?
      instructions:
      - text: List membership property groups.
      - text: Find membership property groups with codes {codes}.
        slots:
          codes: query.codes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipPropertyGroups'].post
  update:
    x-apievangelist-phrasing:
      intent: Create membership property groups
      effect: write
      questions:
      - How do I group several hotels together for membership purposes?
      - Can I create more than one membership property group per call?
      instructions:
      - text: Create membership property groups {membershipPropertyGroups}.
        slots:
          membershipPropertyGroups: requestBody.membershipPropertyGroups
      - text: Add a new group of properties for membership.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipPropertyGroups/{membershipPropertyGroupsId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a membership property group
      effect: write
      questions:
      - Can I add or remove hotels in an existing membership property group?
      - What do I send to edit a property group?
      instructions:
      - text: Update membership property group {membershipPropertyGroupsId} with {membershipPropertyGroups}.
        slots:
          membershipPropertyGroupsId: path.membershipPropertyGroupsId
          membershipPropertyGroups: requestBody.membershipPropertyGroups
      - text: Change property group {membershipPropertyGroupsId}.
        slots:
          membershipPropertyGroupsId: path.membershipPropertyGroupsId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipPropertyGroups/{membershipPropertyGroupsId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a membership property group
      effect: destructive
      questions:
      - Can I delete a membership property group?
      - Is removing a group of hotels from membership config allowed?
      instructions:
      - text: Delete membership property group {membershipPropertyGroupsId}.
        slots:
          membershipPropertyGroupsId: path.membershipPropertyGroupsId
      - text: Remove property group {membershipPropertyGroupsId}.
        slots:
          membershipPropertyGroupsId: path.membershipPropertyGroupsId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipRateGroups'].get
  update:
    x-apievangelist-phrasing:
      intent: List membership rate groups
      effect: read
      questions:
      - Which membership rate groups are configured?
      - Can I search rate groups by code with a wildcard?
      instructions:
      - text: List membership rate groups.
      - text: Find membership rate groups with codes {codes}.
        slots:
          codes: query.codes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipRateGroups'].post
  update:
    x-apievangelist-phrasing:
      intent: Create membership rate groups
      effect: write
      questions:
      - How do I group rate codes for membership point earning?
      - Can I create several membership rate groups at once?
      instructions:
      - text: Create membership rate groups {membershipRateGroups}.
        slots:
          membershipRateGroups: requestBody.membershipRateGroups
      - text: Add a new membership rate group.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipRateGroups/{membershipRateGroupId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a membership rate group
      effect: write
      questions:
      - Can I edit which rates are in an existing membership rate group?
      - What's needed to update a rate group?
      instructions:
      - text: Update membership rate group {membershipRateGroupId} with {membershipRateGroups}.
        slots:
          membershipRateGroupId: path.membershipRateGroupId
          membershipRateGroups: requestBody.membershipRateGroups
      - text: Change rate group {membershipRateGroupId}.
        slots:
          membershipRateGroupId: path.membershipRateGroupId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipRateGroups/{membershipRateGroupId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a membership rate group
      effect: destructive
      questions:
      - Can I delete a membership rate group?
      - Is there a way to remove a rate group we stopped using?
      instructions:
      - text: Delete membership rate group {membershipRateGroupId}.
        slots:
          membershipRateGroupId: path.membershipRateGroupId
      - text: Remove rate group {membershipRateGroupId}.
        slots:
          membershipRateGroupId: path.membershipRateGroupId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipRates'].get
  update:
    x-apievangelist-phrasing:
      intent: List membership rates
      effect: read
      questions:
      - Which rate plans are linked to membership types at our hotels?
      - Can I filter membership rates by hotel, membership type or rate plan code?
      instructions:
      - text: List membership rates for hotels {hotelIds}.
        slots:
          hotelIds: query.hotelIds
      - text: Show membership rates for rate plan codes {ratePlanCodes} and membership types {membershipTypes}.
        slots:
          ratePlanCodes: query.ratePlanCodes
          membershipTypes: query.membershipTypes
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipRates'].post
  update:
    x-apievangelist-phrasing:
      intent: Create membership rates
      effect: write
      questions:
      - How do I link a rate plan to a membership type?
      - Can I create multiple membership rates at once?
      instructions:
      - text: Create membership rates {membershipRates}.
        slots:
          membershipRates: requestBody.membershipRates
      - text: Add a new membership rate.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/membershipRates/{membershipRatesId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a membership rate
      effect: write
      questions:
      - Can I edit an existing membership rate setup?
      - What do I send to update a membership rate?
      instructions:
      - text: Update membership rate {membershipRatesId} with {membershipRates}.
        slots:
          membershipRatesId: path.membershipRatesId
          membershipRates: requestBody.membershipRates
      - text: Change membership rate {membershipRatesId}.
        slots:
          membershipRatesId: path.membershipRatesId
      method: generated
      generated: '2026-09-26'


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