naftiko: 1.0.0-alpha2 info: label: Schematic API — accounts description: 'Schematic API — accounts. 18 operations. Lead operation: List account members. Self-contained Naftiko capability covering one Schematic business surface.' tags: - Schematic - accounts created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SCHEMATIC_API_KEY: SCHEMATIC_API_KEY capability: consumes: - type: http namespace: schematic-accounts baseUri: https://api.schematichq.com description: Schematic API — accounts business capability. Self-contained, no shared references. resources: - name: account-members path: /account-members operations: - name: listaccountmembers method: GET description: List account members outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ids in: query type: array - name: q in: query type: string description: Search filter - name: limit in: query type: integer description: Page limit (default 100) - name: offset in: query type: integer description: Page offset (default 0) - name: account-members-account_member_id path: /account-members/{account_member_id} operations: - name: getaccountmember method: GET description: Get account member outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: account_member_id in: path type: string description: account_member_id required: true - name: api-keys path: /api-keys operations: - name: listapikeys method: GET description: List api keys outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: environment_id in: query type: string - name: require_environment in: query type: boolean required: true - name: limit in: query type: integer description: Page limit (default 100) - name: offset in: query type: integer description: Page offset (default 0) - name: createapikey method: POST description: Create api key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-keys-count path: /api-keys/count operations: - name: countapikeys method: GET description: Count api keys outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: environment_id in: query type: string - name: require_environment in: query type: boolean required: true - name: limit in: query type: integer description: Page limit (default 100) - name: offset in: query type: integer description: Page offset (default 0) - name: api-keys-api_key_id path: /api-keys/{api_key_id} operations: - name: getapikey method: GET description: Get api key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: api_key_id in: path type: string description: api_key_id required: true - name: updateapikey method: PUT description: Update api key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: api_key_id in: path type: string description: api_key_id required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteapikey method: DELETE description: Delete api key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: api_key_id in: path type: string description: api_key_id required: true - name: audit-log path: /audit-log operations: - name: listauditlogs method: GET description: List audit logs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: actor_type in: query type: string - name: end_time in: query type: string - name: environment_id in: query type: string - name: q in: query type: string - name: start_time in: query type: string - name: limit in: query type: integer description: Page limit (default 100) - name: offset in: query type: integer description: Page offset (default 0) - name: audit-log-count path: /audit-log/count operations: - name: countauditlogs method: GET description: Count audit logs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: actor_type in: query type: string - name: end_time in: query type: string - name: environment_id in: query type: string - name: q in: query type: string - name: start_time in: query type: string - name: limit in: query type: integer description: Page limit (default 100) - name: offset in: query type: integer description: Page offset (default 0) - name: audit-log-audit_log_id path: /audit-log/{audit_log_id} operations: - name: getauditlog method: GET description: Get audit log outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: audit_log_id in: path type: string description: audit_log_id required: true - name: environments path: /environments operations: - name: listenvironments method: GET description: List environments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ids in: query type: array - name: limit in: query type: integer description: Page limit (default 100) - name: offset in: query type: integer description: Page offset (default 0) - name: createenvironment method: POST description: Create environment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: environments-environment_id path: /environments/{environment_id} operations: - name: getenvironment method: GET description: Get environment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: environment_id in: path type: string description: environment_id required: true - name: updateenvironment method: PUT description: Update environment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: environment_id in: path type: string description: environment_id required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteenvironment method: DELETE description: Delete environment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: environment_id in: path type: string description: environment_id required: true - name: quickstart path: /quickstart operations: - name: quickstart method: POST description: Quickstart outputRawFormat: json outputParameters: - name: result type: object value: $. - name: whoami path: /whoami operations: - name: getwhoami method: GET description: Get who am I outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: apikey key: X-Schematic-Api-Key value: '{{env.SCHEMATIC_API_KEY}}' placement: header exposes: - type: rest namespace: schematic-accounts-rest port: 8080 description: REST adapter for Schematic API — accounts. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/account-members name: account-members description: REST surface for account-members. operations: - method: GET name: listaccountmembers description: List account members call: schematic-accounts.listaccountmembers with: ids: rest.ids q: rest.q limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - path: /v1/account-members/{account-member-id} name: account-members-account-member-id description: REST surface for account-members-account_member_id. operations: - method: GET name: getaccountmember description: Get account member call: schematic-accounts.getaccountmember with: account_member_id: rest.account_member_id outputParameters: - type: object mapping: $. - path: /v1/api-keys name: api-keys description: REST surface for api-keys. operations: - method: GET name: listapikeys description: List api keys call: schematic-accounts.listapikeys with: environment_id: rest.environment_id require_environment: rest.require_environment limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - method: POST name: createapikey description: Create api key call: schematic-accounts.createapikey with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api-keys/count name: api-keys-count description: REST surface for api-keys-count. operations: - method: GET name: countapikeys description: Count api keys call: schematic-accounts.countapikeys with: environment_id: rest.environment_id require_environment: rest.require_environment limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - path: /v1/api-keys/{api-key-id} name: api-keys-api-key-id description: REST surface for api-keys-api_key_id. operations: - method: GET name: getapikey description: Get api key call: schematic-accounts.getapikey with: api_key_id: rest.api_key_id outputParameters: - type: object mapping: $. - method: PUT name: updateapikey description: Update api key call: schematic-accounts.updateapikey with: api_key_id: rest.api_key_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteapikey description: Delete api key call: schematic-accounts.deleteapikey with: api_key_id: rest.api_key_id outputParameters: - type: object mapping: $. - path: /v1/audit-log name: audit-log description: REST surface for audit-log. operations: - method: GET name: listauditlogs description: List audit logs call: schematic-accounts.listauditlogs with: actor_type: rest.actor_type end_time: rest.end_time environment_id: rest.environment_id q: rest.q start_time: rest.start_time limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - path: /v1/audit-log/count name: audit-log-count description: REST surface for audit-log-count. operations: - method: GET name: countauditlogs description: Count audit logs call: schematic-accounts.countauditlogs with: actor_type: rest.actor_type end_time: rest.end_time environment_id: rest.environment_id q: rest.q start_time: rest.start_time limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - path: /v1/audit-log/{audit-log-id} name: audit-log-audit-log-id description: REST surface for audit-log-audit_log_id. operations: - method: GET name: getauditlog description: Get audit log call: schematic-accounts.getauditlog with: audit_log_id: rest.audit_log_id outputParameters: - type: object mapping: $. - path: /v1/environments name: environments description: REST surface for environments. operations: - method: GET name: listenvironments description: List environments call: schematic-accounts.listenvironments with: ids: rest.ids limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - method: POST name: createenvironment description: Create environment call: schematic-accounts.createenvironment with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/environments/{environment-id} name: environments-environment-id description: REST surface for environments-environment_id. operations: - method: GET name: getenvironment description: Get environment call: schematic-accounts.getenvironment with: environment_id: rest.environment_id outputParameters: - type: object mapping: $. - method: PUT name: updateenvironment description: Update environment call: schematic-accounts.updateenvironment with: environment_id: rest.environment_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteenvironment description: Delete environment call: schematic-accounts.deleteenvironment with: environment_id: rest.environment_id outputParameters: - type: object mapping: $. - path: /v1/quickstart name: quickstart description: REST surface for quickstart. operations: - method: POST name: quickstart description: Quickstart call: schematic-accounts.quickstart outputParameters: - type: object mapping: $. - path: /v1/whoami name: whoami description: REST surface for whoami. operations: - method: GET name: getwhoami description: Get who am I call: schematic-accounts.getwhoami outputParameters: - type: object mapping: $. - type: mcp namespace: schematic-accounts-mcp port: 9090 transport: http description: MCP adapter for Schematic API — accounts. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-account-members description: List account members hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.listaccountmembers with: ids: tools.ids q: tools.q limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: get-account-member description: Get account member hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.getaccountmember with: account_member_id: tools.account_member_id outputParameters: - type: object mapping: $. - name: list-api-keys description: List api keys hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.listapikeys with: environment_id: tools.environment_id require_environment: tools.require_environment limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: create-api-key description: Create api key hints: readOnly: false destructive: false idempotent: false call: schematic-accounts.createapikey with: body: tools.body outputParameters: - type: object mapping: $. - name: count-api-keys description: Count api keys hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.countapikeys with: environment_id: tools.environment_id require_environment: tools.require_environment limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: get-api-key description: Get api key hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.getapikey with: api_key_id: tools.api_key_id outputParameters: - type: object mapping: $. - name: update-api-key description: Update api key hints: readOnly: false destructive: false idempotent: true call: schematic-accounts.updateapikey with: api_key_id: tools.api_key_id body: tools.body outputParameters: - type: object mapping: $. - name: delete-api-key description: Delete api key hints: readOnly: false destructive: true idempotent: true call: schematic-accounts.deleteapikey with: api_key_id: tools.api_key_id outputParameters: - type: object mapping: $. - name: list-audit-logs description: List audit logs hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.listauditlogs with: actor_type: tools.actor_type end_time: tools.end_time environment_id: tools.environment_id q: tools.q start_time: tools.start_time limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: count-audit-logs description: Count audit logs hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.countauditlogs with: actor_type: tools.actor_type end_time: tools.end_time environment_id: tools.environment_id q: tools.q start_time: tools.start_time limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: get-audit-log description: Get audit log hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.getauditlog with: audit_log_id: tools.audit_log_id outputParameters: - type: object mapping: $. - name: list-environments description: List environments hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.listenvironments with: ids: tools.ids limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: create-environment description: Create environment hints: readOnly: false destructive: false idempotent: false call: schematic-accounts.createenvironment with: body: tools.body outputParameters: - type: object mapping: $. - name: get-environment description: Get environment hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.getenvironment with: environment_id: tools.environment_id outputParameters: - type: object mapping: $. - name: update-environment description: Update environment hints: readOnly: false destructive: false idempotent: true call: schematic-accounts.updateenvironment with: environment_id: tools.environment_id body: tools.body outputParameters: - type: object mapping: $. - name: delete-environment description: Delete environment hints: readOnly: false destructive: true idempotent: true call: schematic-accounts.deleteenvironment with: environment_id: tools.environment_id outputParameters: - type: object mapping: $. - name: quickstart description: Quickstart hints: readOnly: false destructive: false idempotent: false call: schematic-accounts.quickstart outputParameters: - type: object mapping: $. - name: get-who-am-i description: Get who am I hints: readOnly: true destructive: false idempotent: true call: schematic-accounts.getwhoami outputParameters: - type: object mapping: $.