naftiko: 1.0.0-alpha2 info: label: Salesforce — Member description: 'Salesforce — Member. 9 operations. Lead operation: Salesforce Member Benefits. Self-contained Naftiko capability covering one Salesforce business surface.' tags: - Salesforce - Member created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SALESFORCE_API_KEY: SALESFORCE_API_KEY capability: consumes: - type: http namespace: salesforce-member baseUri: https://login.salesforce.com description: Salesforce — Member business capability. Self-contained, no shared references. resources: - name: data-v64.0-connect-loyalty-member-memberId-memberbenefits path: /data/v64.0/connect/loyalty/member/{memberId}/memberbenefits operations: - name: memberbenefits method: GET description: Salesforce Member Benefits outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: memberId in: path type: string required: true - name: data-v64.0-loyalty-programs-loyaltyProgramName-corporate-member-enrollments path: /data/v64.0/loyalty-programs/{loyaltyProgramName}/corporate-member-enrollments operations: - name: corporatememberenrollments method: POST description: Salesforce Corporate Member Enrollments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: loyaltyProgramName in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: data-v64.0-loyalty-programs-loyaltyProgramName-individual-member-enrollments path: /data/v64.0/loyalty-programs/{loyaltyProgramName}/individual-member-enrollments operations: - name: individualmemberenrollments method: POST description: Salesforce Individual Member Enrollments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: loyaltyProgramName in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: data-v64.0-loyalty-programs-loyaltyProgramName-members path: /data/v64.0/loyalty-programs/{loyaltyProgramName}/members operations: - name: memberprofile method: GET description: Salesforce Member Profile outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: memberId in: query type: string description: The ID of the loyalty program member. required: true - name: membershipNumber in: query type: string description: The membership number of the loyalty program member. required: true - name: programCurrencyName in: query type: string description: The name of the loyalty program currency associated with the member. required: true - name: loyaltyProgramName in: path type: string required: true - name: data-v64.0-loyalty-programs-loyaltyProgramName-members-membershipNumber-vouchers path: /data/v64.0/loyalty/programs/{loyaltyProgramName}/members/{membershipNumber}/vouchers operations: - name: membervouchers method: GET description: Salesforce Member Vouchers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: loyaltyProgramName in: path type: string required: true - name: membershipNumber in: path type: string required: true - name: data-v64.0-tooling-sobjects-PlatformEventChannelMember path: /data/v64.0/tooling/sobjects/PlatformEventChannelMember operations: - name: createchannelmember method: POST description: Salesforce Create Channel Member outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: data-v64.0-tooling-sobjects-PlatformEventChannelMember-PLATFORM_EVENT_CHANNEL_ME path: /data/v64.0/tooling/sobjects/PlatformEventChannelMember/{PLATFORM_EVENT_CHANNEL_MEMBER_ID} operations: - name: addenrichedfieldstochannelmember method: PATCH description: Salesforce Add Enriched Fields to Channel Member outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: PLATFORM_EVENT_CHANNEL_MEMBER_ID in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: getchannelmember method: GET description: Salesforce Get Channel Member outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: PLATFORM_EVENT_CHANNEL_MEMBER_ID in: path type: string required: true - name: deletechannelmember method: DELETE description: Salesforce Delete Channel Member outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: PLATFORM_EVENT_CHANNEL_MEMBER_ID in: path type: string required: true authentication: type: bearer token: '{{env.SALESFORCE_API_KEY}}' exposes: - type: rest namespace: salesforce-member-rest port: 8080 description: REST adapter for Salesforce — Member. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/data/v64-0/connect/loyalty/member/{memberid}/memberbenefits name: data-v64-0-connect-loyalty-member-memberid-memberbenefits description: REST surface for data-v64.0-connect-loyalty-member-memberId-memberbenefits. operations: - method: GET name: memberbenefits description: Salesforce Member Benefits call: salesforce-member.memberbenefits with: memberId: rest.memberId outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/loyalty-programs/{loyaltyprogramname}/corporate-member-enrollments name: data-v64-0-loyalty-programs-loyaltyprogramname-corporate-member-enrollments description: REST surface for data-v64.0-loyalty-programs-loyaltyProgramName-corporate-member-enrollments. operations: - method: POST name: corporatememberenrollments description: Salesforce Corporate Member Enrollments call: salesforce-member.corporatememberenrollments with: loyaltyProgramName: rest.loyaltyProgramName body: rest.body outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/loyalty-programs/{loyaltyprogramname}/individual-member-enrollments name: data-v64-0-loyalty-programs-loyaltyprogramname-individual-member-enrollments description: REST surface for data-v64.0-loyalty-programs-loyaltyProgramName-individual-member-enrollments. operations: - method: POST name: individualmemberenrollments description: Salesforce Individual Member Enrollments call: salesforce-member.individualmemberenrollments with: loyaltyProgramName: rest.loyaltyProgramName body: rest.body outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/loyalty-programs/{loyaltyprogramname}/members name: data-v64-0-loyalty-programs-loyaltyprogramname-members description: REST surface for data-v64.0-loyalty-programs-loyaltyProgramName-members. operations: - method: GET name: memberprofile description: Salesforce Member Profile call: salesforce-member.memberprofile with: memberId: rest.memberId membershipNumber: rest.membershipNumber programCurrencyName: rest.programCurrencyName loyaltyProgramName: rest.loyaltyProgramName outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/loyalty/programs/{loyaltyprogramname}/members/{membershipnumber}/vouchers name: data-v64-0-loyalty-programs-loyaltyprogramname-members-membershipnumber-vouchers description: REST surface for data-v64.0-loyalty-programs-loyaltyProgramName-members-membershipNumber-vouchers. operations: - method: GET name: membervouchers description: Salesforce Member Vouchers call: salesforce-member.membervouchers with: loyaltyProgramName: rest.loyaltyProgramName membershipNumber: rest.membershipNumber outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/tooling/sobjects/platformeventchannelmember name: data-v64-0-tooling-sobjects-platformeventchannelmember description: REST surface for data-v64.0-tooling-sobjects-PlatformEventChannelMember. operations: - method: POST name: createchannelmember description: Salesforce Create Channel Member call: salesforce-member.createchannelmember with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/data/v64-0/tooling/sobjects/platformeventchannelmember/{platform-event-channel-member-id} name: data-v64-0-tooling-sobjects-platformeventchannelmember-platform-event-channel-me description: REST surface for data-v64.0-tooling-sobjects-PlatformEventChannelMember-PLATFORM_EVENT_CHANNEL_ME. operations: - method: PATCH name: addenrichedfieldstochannelmember description: Salesforce Add Enriched Fields to Channel Member call: salesforce-member.addenrichedfieldstochannelmember with: PLATFORM_EVENT_CHANNEL_MEMBER_ID: rest.PLATFORM_EVENT_CHANNEL_MEMBER_ID body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getchannelmember description: Salesforce Get Channel Member call: salesforce-member.getchannelmember with: PLATFORM_EVENT_CHANNEL_MEMBER_ID: rest.PLATFORM_EVENT_CHANNEL_MEMBER_ID outputParameters: - type: object mapping: $. - method: DELETE name: deletechannelmember description: Salesforce Delete Channel Member call: salesforce-member.deletechannelmember with: PLATFORM_EVENT_CHANNEL_MEMBER_ID: rest.PLATFORM_EVENT_CHANNEL_MEMBER_ID outputParameters: - type: object mapping: $. - type: mcp namespace: salesforce-member-mcp port: 9090 transport: http description: MCP adapter for Salesforce — Member. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: salesforce-member-benefits description: Salesforce Member Benefits hints: readOnly: true destructive: false idempotent: true call: salesforce-member.memberbenefits with: memberId: tools.memberId outputParameters: - type: object mapping: $. - name: salesforce-corporate-member-enrollments description: Salesforce Corporate Member Enrollments hints: readOnly: false destructive: false idempotent: false call: salesforce-member.corporatememberenrollments with: loyaltyProgramName: tools.loyaltyProgramName body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-individual-member-enrollments description: Salesforce Individual Member Enrollments hints: readOnly: false destructive: false idempotent: false call: salesforce-member.individualmemberenrollments with: loyaltyProgramName: tools.loyaltyProgramName body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-member-profile description: Salesforce Member Profile hints: readOnly: true destructive: false idempotent: true call: salesforce-member.memberprofile with: memberId: tools.memberId membershipNumber: tools.membershipNumber programCurrencyName: tools.programCurrencyName loyaltyProgramName: tools.loyaltyProgramName outputParameters: - type: object mapping: $. - name: salesforce-member-vouchers description: Salesforce Member Vouchers hints: readOnly: true destructive: false idempotent: true call: salesforce-member.membervouchers with: loyaltyProgramName: tools.loyaltyProgramName membershipNumber: tools.membershipNumber outputParameters: - type: object mapping: $. - name: salesforce-create-channel-member description: Salesforce Create Channel Member hints: readOnly: false destructive: false idempotent: false call: salesforce-member.createchannelmember with: body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-add-enriched-fields-channel description: Salesforce Add Enriched Fields to Channel Member hints: readOnly: false destructive: false idempotent: true call: salesforce-member.addenrichedfieldstochannelmember with: PLATFORM_EVENT_CHANNEL_MEMBER_ID: tools.PLATFORM_EVENT_CHANNEL_MEMBER_ID body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-get-channel-member description: Salesforce Get Channel Member hints: readOnly: true destructive: false idempotent: true call: salesforce-member.getchannelmember with: PLATFORM_EVENT_CHANNEL_MEMBER_ID: tools.PLATFORM_EVENT_CHANNEL_MEMBER_ID outputParameters: - type: object mapping: $. - name: salesforce-delete-channel-member description: Salesforce Delete Channel Member hints: readOnly: false destructive: true idempotent: true call: salesforce-member.deletechannelmember with: PLATFORM_EVENT_CHANNEL_MEMBER_ID: tools.PLATFORM_EVENT_CHANNEL_MEMBER_ID outputParameters: - type: object mapping: $.