naftiko: 1.0.0-alpha2 info: label: AppConnect V3 — Technology Partners description: 'AppConnect V3 — Technology Partners. 8 operations. Lead operation: GET Partner Client Accounts. Self-contained Naftiko capability covering one Constant Contact business surface.' tags: - Constant Contact - Technology Partners created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: CONSTANT_CONTACT_API_KEY: CONSTANT_CONTACT_API_KEY capability: consumes: - type: http namespace: v3-technology-partners baseUri: https://api.cc.email/v3 description: AppConnect V3 — Technology Partners business capability. Self-contained, no shared references. resources: - name: partner-accounts path: /partner/accounts operations: - name: getpartnersiteowners method: GET description: GET Partner Client Accounts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: offset in: query type: string description: Depending on the `limit` you specify, the system determines the `offset` parameter to use (number of records to skip) and includes it in the link used to get th - name: limit in: query type: string description: The number of client accounts to return on each page of results. The default value is `50`. Entering a `limit` value less than the minimum (`10`) or greater tha - name: account_type in: query type: string description: 'Filters client account results by account type: `all` (default), `managed`, or `unmanaged`. Excluding the `account_type` query parameter returns all client acco' - name: provision method: POST description: POST (create) a Partner Client Account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: provision in: body type: string description: Create a new Constant Contact client account under your partner account. All required properties must be included in the JSON payload request. required: true - name: partner-accounts-encoded_account_id-account_operations-sync path: /partner/accounts/{encoded_account_id}/account_operations/sync operations: - name: partneraccountoperationspostsync method: POST description: POST Send an API request on Behalf of a Client Account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: encoded_account_id in: path type: string description: An encoded account id for a managed account in your partnership. required: true - name: body in: body type: string description: A JSON request body that contains the structure of the HTTP request you are instructing Constant Contact to send on behalf of specific managed account in your p - name: partner-accounts-encoded_account_id-contacts-unsubscribe path: /partner/accounts/{encoded_account_id}/contacts/unsubscribe operations: - name: partnerunsubscribecontacts method: POST description: POST Unsubscribe Contacts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: encoded_account_id in: path type: string description: The encoded account ID that uniquely identifies the partner's client account. required: true - name: body in: body type: object description: The JSON payload. required: true - name: partner-accounts-encoded_account_id-plan path: /partner/accounts/{encoded_account_id}/plan operations: - name: getplan method: GET description: GET Billing Plan Details for a Client Account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: encoded_account_id in: path type: string description: Specify the client's unique `encoded_account_id`. required: true - name: setplan method: PUT description: PUT (update) Billing Plan Details for a Client Account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: encoded_account_id in: path type: string description: Specify the client's unique `encoded_account_id`. required: true - name: body in: body type: string description: '`plan_type`: Updates the billing plan assigned to a client account to a different `plan_type`. ' - name: partner-accounts-encoded_account_id-status-cancel path: /partner/accounts/{encoded_account_id}/status/cancel operations: - name: cancelaccount method: PUT description: PUT Cancel the Billing Plan for a Client Account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: encoded_account_id in: path type: string description: The system generated ID that uniquely identifies the client account. required: true - name: body in: body type: string description: By default, the current date and time is automatically used as the cancellation date. However, you can specify a future date and time to cancel the account (`ef - name: partner-accounts-encoded_account_id-users-sso path: /partner/accounts/{encoded_account_id}/users/sso operations: - name: createssouser method: POST description: POST a User Under a Partner's SSO-Enabled Client Account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: encoded_account_id in: path type: string description: The encoded account ID that identifies the partner's client account to which to add the new user. required: true - name: SSO User in: body type: string description: The JSON payload used to create a new user under the specified partner's client account. All request body properties are required (`first_name`, `last_name`, `r required: true exposes: - type: rest namespace: v3-technology-partners-rest port: 8080 description: REST adapter for AppConnect V3 — Technology Partners. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/partner/accounts name: partner-accounts description: REST surface for partner-accounts. operations: - method: GET name: getpartnersiteowners description: GET Partner Client Accounts call: v3-technology-partners.getpartnersiteowners with: offset: rest.offset limit: rest.limit account_type: rest.account_type outputParameters: - type: object mapping: $. - method: POST name: provision description: POST (create) a Partner Client Account call: v3-technology-partners.provision with: provision: rest.provision outputParameters: - type: object mapping: $. - path: /v1/partner/accounts/{encoded-account-id}/account-operations/sync name: partner-accounts-encoded-account-id-account-operations-sync description: REST surface for partner-accounts-encoded_account_id-account_operations-sync. operations: - method: POST name: partneraccountoperationspostsync description: POST Send an API request on Behalf of a Client Account call: v3-technology-partners.partneraccountoperationspostsync with: encoded_account_id: rest.encoded_account_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/partner/accounts/{encoded-account-id}/contacts/unsubscribe name: partner-accounts-encoded-account-id-contacts-unsubscribe description: REST surface for partner-accounts-encoded_account_id-contacts-unsubscribe. operations: - method: POST name: partnerunsubscribecontacts description: POST Unsubscribe Contacts call: v3-technology-partners.partnerunsubscribecontacts with: encoded_account_id: rest.encoded_account_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/partner/accounts/{encoded-account-id}/plan name: partner-accounts-encoded-account-id-plan description: REST surface for partner-accounts-encoded_account_id-plan. operations: - method: GET name: getplan description: GET Billing Plan Details for a Client Account call: v3-technology-partners.getplan with: encoded_account_id: rest.encoded_account_id outputParameters: - type: object mapping: $. - method: PUT name: setplan description: PUT (update) Billing Plan Details for a Client Account call: v3-technology-partners.setplan with: encoded_account_id: rest.encoded_account_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/partner/accounts/{encoded-account-id}/status/cancel name: partner-accounts-encoded-account-id-status-cancel description: REST surface for partner-accounts-encoded_account_id-status-cancel. operations: - method: PUT name: cancelaccount description: PUT Cancel the Billing Plan for a Client Account call: v3-technology-partners.cancelaccount with: encoded_account_id: rest.encoded_account_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/partner/accounts/{encoded-account-id}/users/sso name: partner-accounts-encoded-account-id-users-sso description: REST surface for partner-accounts-encoded_account_id-users-sso. operations: - method: POST name: createssouser description: POST a User Under a Partner's SSO-Enabled Client Account call: v3-technology-partners.createssouser with: encoded_account_id: rest.encoded_account_id SSO User: rest.SSO User outputParameters: - type: object mapping: $. - type: mcp namespace: v3-technology-partners-mcp port: 9090 transport: http description: MCP adapter for AppConnect V3 — Technology Partners. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-partner-client-accounts description: GET Partner Client Accounts hints: readOnly: true destructive: false idempotent: true call: v3-technology-partners.getpartnersiteowners with: offset: tools.offset limit: tools.limit account_type: tools.account_type outputParameters: - type: object mapping: $. - name: post-create-partner-client-account description: POST (create) a Partner Client Account hints: readOnly: false destructive: false idempotent: false call: v3-technology-partners.provision with: provision: tools.provision outputParameters: - type: object mapping: $. - name: post-send-api-request-behalf description: POST Send an API request on Behalf of a Client Account hints: readOnly: false destructive: false idempotent: false call: v3-technology-partners.partneraccountoperationspostsync with: encoded_account_id: tools.encoded_account_id body: tools.body outputParameters: - type: object mapping: $. - name: post-unsubscribe-contacts description: POST Unsubscribe Contacts hints: readOnly: false destructive: false idempotent: false call: v3-technology-partners.partnerunsubscribecontacts with: encoded_account_id: tools.encoded_account_id body: tools.body outputParameters: - type: object mapping: $. - name: get-billing-plan-details-client description: GET Billing Plan Details for a Client Account hints: readOnly: true destructive: false idempotent: true call: v3-technology-partners.getplan with: encoded_account_id: tools.encoded_account_id outputParameters: - type: object mapping: $. - name: put-update-billing-plan-details description: PUT (update) Billing Plan Details for a Client Account hints: readOnly: false destructive: false idempotent: true call: v3-technology-partners.setplan with: encoded_account_id: tools.encoded_account_id body: tools.body outputParameters: - type: object mapping: $. - name: put-cancel-billing-plan-client description: PUT Cancel the Billing Plan for a Client Account hints: readOnly: false destructive: false idempotent: true call: v3-technology-partners.cancelaccount with: encoded_account_id: tools.encoded_account_id body: tools.body outputParameters: - type: object mapping: $. - name: post-user-under-partner-s-sso description: POST a User Under a Partner's SSO-Enabled Client Account hints: readOnly: false destructive: false idempotent: false call: v3-technology-partners.createssouser with: encoded_account_id: tools.encoded_account_id SSO User: tools.SSO User outputParameters: - type: object mapping: $.