# 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' - target: $.paths['/membershipRates/{membershipRatesId}'].delete update: x-apievangelist-phrasing: intent: Delete a membership rate effect: destructive questions: - Can I delete a membership rate at one hotel? - Is removing a membership rate link permanent? instructions: - text: Delete membership rate {membershipRatesId}. slots: membershipRatesId: path.membershipRatesId - text: Remove membership rate {membershipRatesId} at hotel {hotelId}. slots: membershipRatesId: path.membershipRatesId hotelId: query.hotelId method: generated generated: '2026-09-26' - target: $.paths['/membershipRevenueTypes'].get update: x-apievangelist-phrasing: intent: List membership revenue types (deprecated) effect: read questions: - What membership revenue types are configured on the deprecated endpoint? - Can I still read membership revenue types even though that API is deprecated? instructions: - text: List membership revenue types from the deprecated endpoint. - text: Find membership revenue types with codes {codes}. slots: codes: query.codes method: generated generated: '2026-09-26' - target: $.paths['/membershipRevenueTypes'].post update: x-apievangelist-phrasing: intent: Create membership revenue types (deprecated) effect: write questions: - Can I still create membership revenue types with the deprecated API? - What does the deprecated create-revenue-type call expect? instructions: - text: Create membership revenue types {membershipRevenueTypes}. slots: membershipRevenueTypes: requestBody.membershipRevenueTypes - text: Add a membership revenue type using the deprecated endpoint. method: generated generated: '2026-09-26' - target: $.paths['/membershipRevenueTypes/{membershipRevenueTypesId}'].put update: x-apievangelist-phrasing: intent: Change a membership revenue type (deprecated) effect: write questions: - Can I edit an existing membership revenue type through the deprecated API? - Is updating membership revenue types still supported? instructions: - text: Update membership revenue type {membershipRevenueTypesId} with {membershipRevenueTypes}. slots: membershipRevenueTypesId: path.membershipRevenueTypesId membershipRevenueTypes: requestBody.membershipRevenueTypes - text: Change revenue type {membershipRevenueTypesId}. slots: membershipRevenueTypesId: path.membershipRevenueTypesId method: generated generated: '2026-09-26' - target: $.paths['/membershipRevenueTypes/{membershipRevenueTypesId}'].delete update: x-apievangelist-phrasing: intent: Delete a membership revenue type (deprecated) effect: destructive questions: - Can I delete a membership revenue type with the deprecated API? - Is there a way to remove an old membership revenue type? instructions: - text: Delete membership revenue type {membershipRevenueTypesId}. slots: membershipRevenueTypesId: path.membershipRevenueTypesId - text: Remove revenue type {membershipRevenueTypesId}. slots: membershipRevenueTypesId: path.membershipRevenueTypesId method: generated generated: '2026-09-26' - target: $.paths['/membershipRoomGroups'].get update: x-apievangelist-phrasing: intent: List membership room groups (deprecated) effect: read questions: - What membership room groups are configured on the deprecated endpoint? - Can I filter membership room groups by room group code? instructions: - text: List membership room groups from the deprecated endpoint. - text: Find membership room groups with codes {roomGroupCodes}. slots: roomGroupCodes: query.roomGroupCodes method: generated generated: '2026-09-26' - target: $.paths['/membershipRoomGroups'].post update: x-apievangelist-phrasing: intent: Create membership room groups (deprecated) effect: write questions: - Can I still create membership room groups with the deprecated API? - What does creating a membership room group expect? instructions: - text: Create membership room groups {membershipRoomGroups}. slots: membershipRoomGroups: requestBody.membershipRoomGroups - text: Add a membership room group using the deprecated endpoint. method: generated generated: '2026-09-26' - target: $.paths['/membershipRoomGroups/{membershipRoomGroupsId}'].put update: x-apievangelist-phrasing: intent: Change a membership room group (deprecated) effect: write questions: - Can I edit an existing membership room group through the deprecated API? - Is updating membership room groups still supported? instructions: - text: Update membership room group {membershipRoomGroupsId} with {membershipRoomGroups}. slots: membershipRoomGroupsId: path.membershipRoomGroupsId membershipRoomGroups: requestBody.membershipRoomGroups - text: Change room group {membershipRoomGroupsId}. slots: membershipRoomGroupsId: path.membershipRoomGroupsId method: generated generated: '2026-09-26' - target: $.paths['/membershipRoomGroups/{membershipRoomGroupsId}'].delete update: x-apievangelist-phrasing: intent: Delete a membership room group (deprecated) effect: destructive questions: - Can I delete a membership room group with the deprecated API? - Is there a way to remove an old membership room group? instructions: - text: Delete membership room group {membershipRoomGroupsId}. slots: membershipRoomGroupsId: path.membershipRoomGroupsId - text: Remove room group {membershipRoomGroupsId}. slots: membershipRoomGroupsId: path.membershipRoomGroupsId method: generated generated: '2026-09-26' - target: $.paths['/membershipSourceGroups'].get update: x-apievangelist-phrasing: intent: List membership source groups effect: read questions: - What membership source groups do we have? - Can I filter source groups by code or description? instructions: - text: List membership source groups. - text: Find membership source groups with codes {codes}. slots: codes: query.codes method: generated generated: '2026-09-26' - target: $.paths['/membershipSourceGroups'].post update: x-apievangelist-phrasing: intent: Create a membership source group effect: write questions: - How do I create a membership source group? - Can I group booking source codes for membership rules? instructions: - text: Create membership source group {membershipSourceGroup}. slots: membershipSourceGroup: requestBody.membershipSourceGroup - text: Add a new membership source group. method: generated generated: '2026-09-26' - target: $.paths['/membershipSourceGroups/{membershipSourceGroupId}'].put update: x-apievangelist-phrasing: intent: Change a membership source group effect: write questions: - Can I edit an existing membership source group? - What's needed to update the codes in a source group? instructions: - text: Update membership source group {membershipSourceGroupId} with {membershipSourceGroup}. slots: membershipSourceGroupId: path.membershipSourceGroupId membershipSourceGroup: requestBody.membershipSourceGroup - text: Change source group {membershipSourceGroupId}. slots: membershipSourceGroupId: path.membershipSourceGroupId method: generated generated: '2026-09-26' - target: $.paths['/membershipSourceGroups/{membershipSourceGroupId}'].delete update: x-apievangelist-phrasing: intent: Delete a membership source group effect: destructive questions: - Can I delete a membership source group? - Is there a way to remove an unused source group? instructions: - text: Delete membership source group {membershipSourceGroupId}. slots: membershipSourceGroupId: path.membershipSourceGroupId - text: Remove source group {membershipSourceGroupId}. slots: membershipSourceGroupId: path.membershipSourceGroupId method: generated generated: '2026-09-26' - target: $.paths['/membershipTypeRules'].get update: x-apievangelist-phrasing: intent: Search membership type rules effect: read questions: - Which point-earning rules are defined for our membership types? - Can I filter membership type rules by program type or what they're based on? instructions: - text: List membership type rules for membership types {membershipTypesCodes}. slots: membershipTypesCodes: query.membershipTypesCodes - text: Find membership type rules with rule code {ruleCode}. slots: ruleCode: query.ruleCode method: generated generated: '2026-09-26' - target: $.paths['/membershipTypeRules'].post update: x-apievangelist-phrasing: intent: Create membership type rules effect: write questions: - How do I add a new points rule to a membership type? - Can I create several membership type rules together? instructions: - text: Create membership type rules {membershipTypeRules}. slots: membershipTypeRules: requestBody.membershipTypeRules - text: Add a new earning rule for a membership type. method: generated generated: '2026-09-26' - target: $.paths['/membershipTypeRules/{membershipTypeRulesId}'].get update: x-apievangelist-phrasing: intent: Get one membership type rule's details effect: read questions: - Where can I see the full details of a single membership type rule? - Can I fetch one type rule by its points sequence? instructions: - text: Get details of membership type rule {membershipTypeRulesId}. slots: membershipTypeRulesId: path.membershipTypeRulesId - text: Show type rule {membershipTypeRulesId} for membership type {membershipType}. slots: membershipTypeRulesId: path.membershipTypeRulesId membershipType: query.membershipType method: generated generated: '2026-09-26' - target: $.paths['/membershipTypeRules/{membershipTypeRulesId}'].put update: x-apievangelist-phrasing: intent: Change a membership type rule effect: write questions: - Can I edit an existing membership type rule? - What do I send to update a points rule on a membership type? instructions: - text: Update membership type rule {membershipTypeRulesId} with {membershipTypeRules}. slots: membershipTypeRulesId: path.membershipTypeRulesId membershipTypeRules: requestBody.membershipTypeRules - text: Change type rule {membershipTypeRulesId}. slots: membershipTypeRulesId: path.membershipTypeRulesId method: generated generated: '2026-09-26' - target: $.paths['/membershipTypeRules/{membershipTypeRulesId}'].delete update: x-apievangelist-phrasing: intent: Delete a membership type rule effect: destructive questions: - Can I delete a points rule from a membership type? - Does removing a type rule need its points sequence? instructions: - text: Delete membership type rule {membershipTypeRulesId}. slots: membershipTypeRulesId: path.membershipTypeRulesId - text: Remove type rule {membershipTypeRulesId} with points sequence {membershipPointsSequence}. slots: membershipTypeRulesId: path.membershipTypeRulesId membershipPointsSequence: query.membershipPointsSequence method: generated generated: '2026-09-26' - target: $.paths['/upsert/membershipTypeRules/{membershipTypeRulesId}'].put update: x-apievangelist-phrasing: intent: Create or update a membership type rule effect: write questions: - Is there an upsert for membership type rules? - Can I create-or-change a points rule by id in one request? instructions: - text: Upsert membership type rule {membershipTypeRulesId} with {membershipTypeRules}. slots: membershipTypeRulesId: path.membershipTypeRulesId membershipTypeRules: requestBody.membershipTypeRules - text: Create or overwrite type rule {membershipTypeRulesId}. slots: membershipTypeRulesId: path.membershipTypeRulesId method: generated generated: '2026-09-26' - target: $.paths['/membershipTypes'].get update: x-apievangelist-phrasing: intent: List membership types effect: read questions: - What loyalty and membership programs are configured as membership types? - Can I filter membership types by membership class? instructions: - text: List all membership types. - text: Find membership types with codes {membershipTypesCodes}. slots: membershipTypesCodes: query.membershipTypesCodes - text: Show membership types in classes {membershipClassesCodes}. slots: membershipClassesCodes: query.membershipClassesCodes method: generated generated: '2026-09-26' - target: $.paths['/membershipTypes'].post update: x-apievangelist-phrasing: intent: Create a membership type effect: write questions: - How do I set up a new loyalty program as a membership type? - Can I create a membership type that awards based on revenue or number of stays? instructions: - text: Create membership types {membershipTypes}. slots: membershipTypes: requestBody.membershipTypes - text: Add a new guest loyalty program membership type. method: generated generated: '2026-09-26' - target: $.paths['/membershipTypes/{membershipTypeId}'].get update: x-apievangelist-phrasing: intent: Get a membership type's details effect: read questions: - Where do I see the full configuration of one membership type? - Can I fetch a single membership type by its code? instructions: - text: Get membership type {membershipTypeId}. slots: membershipTypeId: path.membershipTypeId - text: Show details of membership type {membershipTypeId} with code {membershipTypeCode}. slots: membershipTypeId: path.membershipTypeId membershipTypeCode: query.membershipTypeCode method: generated generated: '2026-09-26' - target: $.paths['/membershipTypes/{membershipTypeId}'].put update: x-apievangelist-phrasing: intent: Change a membership type effect: write questions: - Can I edit an existing membership type's settings? - What's the way to update a loyalty program's membership type? instructions: - text: Update membership type {membershipTypeId} with {membershipTypeChangeInstructions}. slots: membershipTypeId: path.membershipTypeId membershipTypeChangeInstructions: requestBody.membershipTypeChangeInstructions - text: Change membership type {membershipTypeId}. slots: membershipTypeId: path.membershipTypeId method: generated generated: '2026-09-26' - target: $.paths['/membershipTypes/{membershipTypeId}'].delete update: x-apievangelist-phrasing: intent: Delete a membership type effect: destructive questions: - Can I delete a membership type for a program we've discontinued? - Is deleting a membership type irreversible? instructions: - text: Delete membership type {membershipTypeId}. slots: membershipTypeId: path.membershipTypeId - text: Remove loyalty program membership type {membershipTypeId}. slots: membershipTypeId: path.membershipTypeId method: generated generated: '2026-09-26' - target: $.paths['/membershipTypes/{membershipType}/membershipLevels/{membershipLevel}/membershipLevelRules/{membershipLevelRulesID}'].delete update: x-apievangelist-phrasing: intent: Delete a membership level rule effect: destructive questions: - Can I delete a level rule under a specific membership type and level? - Which identifiers are needed to remove a membership level rule? instructions: - text: Delete level rule {membershipLevelRulesID} for membership type {membershipType} level {membershipLevel}. slots: membershipLevelRulesID: path.membershipLevelRulesID membershipType: path.membershipType membershipLevel: path.membershipLevel - text: Remove rule {membershipLevelRulesID} from level {membershipLevel} of {membershipType}. slots: membershipLevelRulesID: path.membershipLevelRulesID membershipLevel: path.membershipLevel membershipType: path.membershipType method: generated generated: '2026-09-26' - target: $.paths['/processTierManagement'].post update: x-apievangelist-phrasing: intent: Run tier management processing effect: write questions: - How do I run tier management to evaluate member upgrades and downgrades? - Can I kick off a tier management batch process? instructions: - text: Process tier management with {tierManagementProcess}. slots: tierManagementProcess: requestBody.tierManagementProcess - text: Run the tier management evaluation now. method: generated generated: '2026-09-26' - target: $.paths['/profiles/profileRegion'].get update: x-apievangelist-phrasing: intent: List profile regions effect: read questions: - Which profile regions are configured for matching guest profiles? - Can I filter profile regions by region or type? instructions: - text: List profile regions. - text: Show profile region {region} of type {type}. slots: region: query.region type: query.type method: generated generated: '2026-09-26' - target: $.paths['/profiles/profileRegion'].put update: x-apievangelist-phrasing: intent: Update a profile region effect: write questions: - Can I change which hotels belong to a profile region? - What fields can I update on an existing profile region? instructions: - text: Update profile region {region} of type {type} to include hotels {hotelIds}. slots: region: requestBody.region type: requestBody.type hotelIds: requestBody.hotelIds - text: Change the description of profile region {region} to {description}. slots: region: requestBody.region description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/profiles/profileRegion'].post update: x-apievangelist-phrasing: intent: Create a profile region effect: write questions: - How do I create a new profile region? - Can I set up a region for grouping hotels in profile matching? instructions: - text: Create profile region {profileRegion}. slots: profileRegion: requestBody.profileRegion - text: Add a new profile region. method: generated generated: '2026-09-26' - target: $.paths['/profiles/profileRegion'].delete update: x-apievangelist-phrasing: intent: Delete a profile region effect: destructive questions: - Can I delete a profile region? - What do I need to specify to remove a profile region? instructions: - text: Delete profile region {region} of type {type}. slots: region: query.region type: query.type - text: Remove the {type} profile region {region}. slots: type: query.type region: query.region method: generated generated: '2026-09-26' - target: $.paths['/profiles/suspendedMatchRules'].get update: x-apievangelist-phrasing: intent: List suspended profile match rules effect: read questions: - What rules decide how suspended profiles get matched? - Can I list suspended match rules for one region and name type? instructions: - text: List suspended match rules for region {region}. slots: region: query.region - text: Show suspended match rules for name type {nameType} in region {region}. slots: nameType: query.nameType region: query.region method: generated generated: '2026-09-26' - target: $.paths['/profiles/suspendedMatchRules'].put update: x-apievangelist-phrasing: intent: Update a suspended match rule effect: write questions: - Can I change the validation item or value on a suspended match rule? - Is there a way to turn a suspended match rule on or off? instructions: - text: Update suspended match rule for region {region}, name type {nameType}, item {validationItem}. slots: region: requestBody.region nameType: requestBody.nameType validationItem: requestBody.validationItem - text: Rename match rule item {validationItem} to {newValidationItem} in region {region}. slots: validationItem: requestBody.validationItem newValidationItem: requestBody.newValidationItem region: requestBody.region method: generated generated: '2026-09-26' - target: $.paths['/profiles/suspendedMatchRules'].post update: x-apievangelist-phrasing: intent: Create suspended profile match rules effect: write questions: - How do I add new suspended profile match rules? - Can I define several suspended match rules at once? instructions: - text: Create suspended match rules {suspendedMatchRules}. slots: suspendedMatchRules: requestBody.suspendedMatchRules - text: Add a new rule for matching suspended profiles. method: generated generated: '2026-09-26' - target: $.paths['/profiles/suspendedMatchRules/copy'].post update: x-apievangelist-phrasing: intent: Copy suspended match rules to another region effect: write questions: - Can I copy suspended match rules from one region to another? - Is there a way to reuse match rules for a different name type? instructions: - text: Copy suspended match rules from region {region} to region {copyToRegion}. slots: region: requestBody.region copyToRegion: requestBody.copyToRegion - text: Copy the {nameType} match rules to name type {copyToNameType}. slots: nameType: requestBody.nameType copyToNameType: requestBody.copyToNameType method: generated generated: '2026-09-26' - target: $.paths['/profiles/suspendedMatchRules/{region}/{nameType}/{validationItem}'].delete update: x-apievangelist-phrasing: intent: Delete a suspended match rule effect: destructive questions: - Can I delete one suspended match rule by region, name type and item? - What identifies a suspended match rule when removing it? instructions: - text: Delete suspended match rule {validationItem} for name type {nameType} in region {region}. slots: validationItem: path.validationItem nameType: path.nameType region: path.region - text: Remove match rule item {validationItem} from region {region} name type {nameType}. slots: validationItem: path.validationItem region: path.region nameType: path.nameType method: generated generated: '2026-09-26' - target: $.paths['/services/membershipConfig/status'].get update: x-apievangelist-phrasing: intent: Check membership configuration service health effect: read questions: - Is the membership configuration service up? - Can I ping the membership config service before making changes? instructions: - text: Ping the membership configuration service. - text: Check that membership config is reachable for hotel {hotelId}. slots: hotelId: header.x-hotelid method: generated generated: '2026-09-26' - target: $.paths['/tierManagementBatchProcesses'].get update: x-apievangelist-phrasing: intent: List tier management batch processes effect: read questions: - Which tier management batch runs happened in a date range? - Can I filter tier management processes by evaluation date or process date? instructions: - text: List tier management batch processes evaluated between {evaluationDateFrom} and {evaluationDateTo}. slots: evaluationDateFrom: query.evaluationDateFrom evaluationDateTo: query.evaluationDateTo - text: Show tier management batch process for report {reportId}. slots: reportId: query.reportId method: generated generated: '2026-09-26' - target: $.paths['/tierManagementBatchRecords'].get update: x-apievangelist-phrasing: intent: List tier management batch records effect: read questions: - Which members did a tier management batch propose to move levels? - Can I look up tier management records by membership card number? instructions: - text: List tier management batch records for report {reportId}. slots: reportId: query.reportId - text: Show tier batch records for card number {membershipCardNumber}. slots: membershipCardNumber: query.membershipCardNumber method: generated generated: '2026-09-26' - target: $.paths['/tierManagementBatchRecords/searches'].post update: x-apievangelist-phrasing: intent: Search tier management records via POST effect: read questions: - Is there a POST search for tier management batch records with criteria in the body? - Can I search tier batch records by record status and level difference? instructions: - text: Search tier management batch records with status {recordStatus} for report {reportId}. slots: recordStatus: requestBody.recordStatus reportId: requestBody.reportId - text: Run a body-based search of tier batch records for member name {name}. slots: name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/tierManagementBatchRecords/{tierManagementBatchRecordsID}'].delete update: x-apievangelist-phrasing: intent: Delete a tier management batch record effect: destructive questions: - Can I drop one member's record from a tier management batch? - How do I exclude a single member from a pending tier change batch? instructions: - text: Delete tier management batch record {tierManagementBatchRecordsID}. slots: tierManagementBatchRecordsID: path.tierManagementBatchRecordsID - text: Remove batch record {tierManagementBatchRecordsID} for membership {membershipIdIdExtension}. slots: tierManagementBatchRecordsID: path.tierManagementBatchRecordsID membershipIdIdExtension: query.membershipIdIdExtension method: generated generated: '2026-09-26' - target: $.paths['/tierManagementChanges'].post update: x-apievangelist-phrasing: intent: Apply calculated tier management changes effect: write questions: - How do I apply the level changes a tier management batch calculated? - Can I override warnings when applying tier changes? instructions: - text: Apply tier management changes from report {reportId}. slots: reportId: requestBody.reportId - text: Apply tier changes for report {reportId} overriding warnings {overrideWarning}. slots: reportId: requestBody.reportId overrideWarning: requestBody.overrideWarning method: generated generated: '2026-09-26' - target: $.paths['/tierManagementChanges/{tierManagementChangesID}'].delete update: x-apievangelist-phrasing: intent: Discard calculated tier management changes effect: destructive questions: - Can I throw away tier changes the batch process calculated instead of applying them? - What happens to pending tier management changes if I delete them? instructions: - text: Delete tier management changes {tierManagementChangesID}. slots: tierManagementChangesID: path.tierManagementChangesID - text: Discard calculated tier changes {tierManagementChangesID}. slots: tierManagementChangesID: path.tierManagementChangesID method: generated generated: '2026-09-26' - target: $.paths['/upsert/membershipOriginGroups/{membershipOriginGroupId}'].put update: x-apievangelist-phrasing: intent: Create or update a membership origin group effect: write questions: - Is there an upsert for membership origin groups? - Can I create or change an origin group by id without checking first? instructions: - text: Upsert membership origin group {membershipOriginGroupId} with {membershipOriginGroup}. slots: membershipOriginGroupId: path.membershipOriginGroupId membershipOriginGroup: requestBody.membershipOriginGroup - text: Create or overwrite origin group {membershipOriginGroupId}. slots: membershipOriginGroupId: path.membershipOriginGroupId method: generated generated: '2026-09-26' - target: $.paths['/upsert/membershipPropertyGroups/{membershipPropertyGroupsId}'].put update: x-apievangelist-phrasing: intent: Create or update a membership property group effect: write questions: - Is there an upsert for membership property groups? - Can I create-or-change a group of hotels by id in one step? instructions: - text: Upsert membership property group {membershipPropertyGroupsId} with {membershipPropertyGroups}. slots: membershipPropertyGroupsId: path.membershipPropertyGroupsId membershipPropertyGroups: requestBody.membershipPropertyGroups - text: Create or overwrite property group {membershipPropertyGroupsId}. slots: membershipPropertyGroupsId: path.membershipPropertyGroupsId method: generated generated: '2026-09-26' - target: $.paths['/upsert/membershipRateGroups/{membershipRateGroupId}'].put update: x-apievangelist-phrasing: intent: Create or update a membership rate group effect: write questions: - Is there an upsert for membership rate groups? - Can I create-or-change a rate group by id in a single call? instructions: - text: Upsert membership rate group {membershipRateGroupId} with {membershipRateGroups}. slots: membershipRateGroupId: path.membershipRateGroupId membershipRateGroups: requestBody.membershipRateGroups - text: Create or overwrite rate group {membershipRateGroupId}. slots: membershipRateGroupId: path.membershipRateGroupId method: generated generated: '2026-09-26' - target: $.paths['/upsert/membershipRates/{membershipRatesId}'].put update: x-apievangelist-phrasing: intent: Create or update a membership rate by id effect: write questions: - Is there an upsert for membership rates? - Can I create-or-change a membership rate by id in one step? instructions: - text: Upsert membership rate {membershipRatesId} with {membershipRates}. slots: membershipRatesId: path.membershipRatesId membershipRates: requestBody.membershipRates - text: Create or overwrite membership rate {membershipRatesId}. slots: membershipRatesId: path.membershipRatesId method: generated generated: '2026-09-26' - target: $.paths['/upsert/membershipRevenueGroups/{membershipRevenueGroupId}'].put update: x-apievangelist-phrasing: intent: Upsert a membership revenue group (deprecated) effect: write questions: - Is there a deprecated way to create or change membership revenue groups? - Can I still upsert a revenue group by id? instructions: - text: Upsert membership revenue group {membershipRevenueGroupId} with {membershipRevenueGroups}. slots: membershipRevenueGroupId: path.membershipRevenueGroupId membershipRevenueGroups: requestBody.membershipRevenueGroups - text: Create or overwrite revenue group {membershipRevenueGroupId}. slots: membershipRevenueGroupId: path.membershipRevenueGroupId method: generated generated: '2026-09-26' - target: $.paths['/upsert/membershipRevenueTypes/{membershipRevenueTypesId}'].put update: x-apievangelist-phrasing: intent: Upsert a membership revenue type (deprecated) effect: write questions: - Is there a deprecated upsert for membership revenue types? - Can I create-or-change a revenue type by id? instructions: - text: Upsert membership revenue type {membershipRevenueTypesId} with {membershipRevenueTypes}. slots: membershipRevenueTypesId: path.membershipRevenueTypesId membershipRevenueTypes: requestBody.membershipRevenueTypes - text: Create or overwrite revenue type {membershipRevenueTypesId}. slots: membershipRevenueTypesId: path.membershipRevenueTypesId method: generated generated: '2026-09-26' - target: $.paths['/upsert/membershipRoomGroups/{membershipRoomGroupsId}'].put update: x-apievangelist-phrasing: intent: Upsert a membership room group (deprecated) effect: write questions: - Is there a deprecated upsert for membership room groups? - Can I create-or-change a room group by id? instructions: - text: Upsert membership room group {membershipRoomGroupsId} with {membershipRoomGroups}. slots: membershipRoomGroupsId: path.membershipRoomGroupsId membershipRoomGroups: requestBody.membershipRoomGroups - text: Create or overwrite room group {membershipRoomGroupsId}. slots: membershipRoomGroupsId: path.membershipRoomGroupsId method: generated generated: '2026-09-26' - target: $.paths['/upsert/membershipSourceGroups/{membershipSourceGroupId}'].put update: x-apievangelist-phrasing: intent: Create or update a membership source group effect: write questions: - Is there an upsert for membership source groups? - Can I create or change a source group by id without checking first? instructions: - text: Upsert membership source group {membershipSourceGroupId} with {membershipSourceGroup}. slots: membershipSourceGroupId: path.membershipSourceGroupId membershipSourceGroup: requestBody.membershipSourceGroup - text: Create or overwrite source group {membershipSourceGroupId}. slots: membershipSourceGroupId: path.membershipSourceGroupId method: generated generated: '2026-09-26' - target: $.paths['/upsert/qualifyingRates/{qualifyingRatesId}'].put update: x-apievangelist-phrasing: intent: Upsert qualifying rates (deprecated) effect: write questions: - Is there a deprecated call to create or change qualifying rates? - Can I still upsert membership qualifying rates by id? instructions: - text: Upsert qualifying rates {qualifyingRatesId} with {qualifyingRates}. slots: qualifyingRatesId: path.qualifyingRatesId qualifyingRates: requestBody.qualifyingRates - text: Create or overwrite qualifying rate {qualifyingRatesId}. slots: qualifyingRatesId: path.qualifyingRatesId method: generated generated: '2026-09-26'