Permit.io · Capability

Permit.io API — Operation Approval (EAP)

Permit.io API — Operation Approval (EAP). 7 operations. Lead operation: List Operation Approvals. Self-contained Naftiko capability covering one Permit Io business surface.

Run with Naftiko Permit IoOperation Approval (EAP)

What You Can Do

GET
Listoperationapprovals — List Operation Approvals
/v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval
POST
Createoperationapproval — Create Operation Approval
/v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval
GET
Getoperationapproval — Get Operation Approval
/v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval/{operation-approval-id}
PUT
Approveoperationapproval — Approve Operation Approval
/v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval/{operation-approval-id}/approve
PUT
Canceloperationapproval — Cancel Operation Approval
/v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval/{operation-approval-id}/cancel
PUT
Denyoperationapproval — Deny Operation Approval
/v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval/{operation-approval-id}/deny
PATCH
Updateoperationapprovalreviewer — Update Operation Approval Reviewer
/v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval/{operation-approval-id}/reviewer

MCP Tools

list-operation-approvals

List Operation Approvals

read-only idempotent
create-operation-approval

Create Operation Approval

get-operation-approval

Get Operation Approval

read-only idempotent
approve-operation-approval

Approve Operation Approval

idempotent
cancel-operation-approval

Cancel Operation Approval

idempotent
deny-operation-approval

Deny Operation Approval

idempotent
update-operation-approval-reviewer

Update Operation Approval Reviewer

idempotent

Capability Spec

permit-io-operation-approval-eap.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Permit.io API — Operation Approval (EAP)
  description: 'Permit.io API — Operation Approval (EAP). 7 operations. Lead operation: List Operation Approvals. Self-contained
    Naftiko capability covering one Permit Io business surface.'
  tags:
  - Permit Io
  - Operation Approval (EAP)
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    PERMIT_IO_API_KEY: PERMIT_IO_API_KEY
capability:
  consumes:
  - type: http
    namespace: permit-io-operation-approval-eap
    baseUri: ''
    description: Permit.io API — Operation Approval (EAP) business capability. Self-contained, no shared references.
    resources:
    - name: v2-elements-proj_id-env_id-config-elements_config_id-operation_approval
      path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval
      operations:
      - name: listoperationapprovals
        method: GET
        description: List Operation Approvals
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: proj_id
          in: path
          type: string
          description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
          required: true
        - name: env_id
          in: path
          type: string
          description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
          required: true
        - name: elements_config_id
          in: path
          type: string
          description: 'Either the unique id of the elements_config, or the URL-friendly key of the elements_config (i.e:
            the "slug").'
          required: true
        - name: status
          in: query
          type: string
          description: Optional status filter, will only return access requests with this status.
        - name: resource
          in: query
          type: string
          description: Optional resource filter, will only return access request granted in that resource.
        - name: resource_instance
          in: query
          type: string
          description: Optional resource instance filter, will only return access request granted in that resource instance.
        - name: page
          in: query
          type: integer
          description: Page number of the results to fetch, starting at 1.
        - name: per_page
          in: query
          type: integer
          description: The number of results per page (max 100).
      - name: createoperationapproval
        method: POST
        description: Create Operation Approval
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: proj_id
          in: path
          type: string
          description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
          required: true
        - name: env_id
          in: path
          type: string
          description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
          required: true
        - name: elements_config_id
          in: path
          type: string
          description: 'Either the unique id of the elements_config, or the URL-friendly key of the elements_config (i.e:
            the "slug").'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v2-elements-proj_id-env_id-config-elements_config_id-operation_approval-operatio
      path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval/{operation_approval_id}
      operations:
      - name: getoperationapproval
        method: GET
        description: Get Operation Approval
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: operation_approval_id
          in: path
          type: string
          description: 'Either the unique id of the operation_approval, or the URL-friendly key of the operation_approval
            (i.e: the "slug").'
          required: true
        - name: proj_id
          in: path
          type: string
          description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
          required: true
        - name: env_id
          in: path
          type: string
          description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
          required: true
        - name: elements_config_id
          in: path
          type: string
          description: 'Either the unique id of the elements_config, or the URL-friendly key of the elements_config (i.e:
            the "slug").'
          required: true
        - name: page
          in: query
          type: integer
          description: Page number of the results to fetch, starting at 1.
        - name: per_page
          in: query
          type: integer
          description: The number of results per page (max 100).
    - name: v2-elements-proj_id-env_id-config-elements_config_id-operation_approval-operatio
      path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval/{operation_approval_id}/approve
      operations:
      - name: approveoperationapproval
        method: PUT
        description: Approve Operation Approval
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: operation_approval_id
          in: path
          type: string
          description: 'Either the unique id of the operation_approval, or the URL-friendly key of the operation_approval
            (i.e: the "slug").'
          required: true
        - name: proj_id
          in: path
          type: string
          description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
          required: true
        - name: env_id
          in: path
          type: string
          description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
          required: true
        - name: elements_config_id
          in: path
          type: string
          description: 'Either the unique id of the elements_config, or the URL-friendly key of the elements_config (i.e:
            the "slug").'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v2-elements-proj_id-env_id-config-elements_config_id-operation_approval-operatio
      path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval/{operation_approval_id}/cancel
      operations:
      - name: canceloperationapproval
        method: PUT
        description: Cancel Operation Approval
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: operation_approval_id
          in: path
          type: string
          description: 'Either the unique id of the operation_approval, or the URL-friendly key of the operation_approval
            (i.e: the "slug").'
          required: true
        - name: proj_id
          in: path
          type: string
          description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
          required: true
        - name: env_id
          in: path
          type: string
          description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
          required: true
        - name: elements_config_id
          in: path
          type: string
          description: 'Either the unique id of the elements_config, or the URL-friendly key of the elements_config (i.e:
            the "slug").'
          required: true
    - name: v2-elements-proj_id-env_id-config-elements_config_id-operation_approval-operatio
      path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval/{operation_approval_id}/deny
      operations:
      - name: denyoperationapproval
        method: PUT
        description: Deny Operation Approval
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: operation_approval_id
          in: path
          type: string
          description: 'Either the unique id of the operation_approval, or the URL-friendly key of the operation_approval
            (i.e: the "slug").'
          required: true
        - name: proj_id
          in: path
          type: string
          description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
          required: true
        - name: env_id
          in: path
          type: string
          description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
          required: true
        - name: elements_config_id
          in: path
          type: string
          description: 'Either the unique id of the elements_config, or the URL-friendly key of the elements_config (i.e:
            the "slug").'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v2-elements-proj_id-env_id-config-elements_config_id-operation_approval-operatio
      path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval/{operation_approval_id}/reviewer
      operations:
      - name: updateoperationapprovalreviewer
        method: PATCH
        description: Update Operation Approval Reviewer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: operation_approval_id
          in: path
          type: string
          description: 'Either the unique id of the operation_approval, or the URL-friendly key of the operation_approval
            (i.e: the "slug").'
          required: true
        - name: proj_id
          in: path
          type: string
          description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
          required: true
        - name: env_id
          in: path
          type: string
          description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
          required: true
        - name: elements_config_id
          in: path
          type: string
          description: 'Either the unique id of the elements_config, or the URL-friendly key of the elements_config (i.e:
            the "slug").'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.PERMIT_IO_API_KEY}}'
  exposes:
  - type: rest
    namespace: permit-io-operation-approval-eap-rest
    port: 8080
    description: REST adapter for Permit.io API — Operation Approval (EAP). One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval
      name: v2-elements-proj-id-env-id-config-elements-config-id-operation-approval
      description: REST surface for v2-elements-proj_id-env_id-config-elements_config_id-operation_approval.
      operations:
      - method: GET
        name: listoperationapprovals
        description: List Operation Approvals
        call: permit-io-operation-approval-eap.listoperationapprovals
        with:
          proj_id: rest.proj_id
          env_id: rest.env_id
          elements_config_id: rest.elements_config_id
          status: rest.status
          resource: rest.resource
          resource_instance: rest.resource_instance
          page: rest.page
          per_page: rest.per_page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createoperationapproval
        description: Create Operation Approval
        call: permit-io-operation-approval-eap.createoperationapproval
        with:
          proj_id: rest.proj_id
          env_id: rest.env_id
          elements_config_id: rest.elements_config_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval/{operation-approval-id}
      name: v2-elements-proj-id-env-id-config-elements-config-id-operation-approval-operatio
      description: REST surface for v2-elements-proj_id-env_id-config-elements_config_id-operation_approval-operatio.
      operations:
      - method: GET
        name: getoperationapproval
        description: Get Operation Approval
        call: permit-io-operation-approval-eap.getoperationapproval
        with:
          operation_approval_id: rest.operation_approval_id
          proj_id: rest.proj_id
          env_id: rest.env_id
          elements_config_id: rest.elements_config_id
          page: rest.page
          per_page: rest.per_page
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval/{operation-approval-id}/approve
      name: v2-elements-proj-id-env-id-config-elements-config-id-operation-approval-operatio
      description: REST surface for v2-elements-proj_id-env_id-config-elements_config_id-operation_approval-operatio.
      operations:
      - method: PUT
        name: approveoperationapproval
        description: Approve Operation Approval
        call: permit-io-operation-approval-eap.approveoperationapproval
        with:
          operation_approval_id: rest.operation_approval_id
          proj_id: rest.proj_id
          env_id: rest.env_id
          elements_config_id: rest.elements_config_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval/{operation-approval-id}/cancel
      name: v2-elements-proj-id-env-id-config-elements-config-id-operation-approval-operatio
      description: REST surface for v2-elements-proj_id-env_id-config-elements_config_id-operation_approval-operatio.
      operations:
      - method: PUT
        name: canceloperationapproval
        description: Cancel Operation Approval
        call: permit-io-operation-approval-eap.canceloperationapproval
        with:
          operation_approval_id: rest.operation_approval_id
          proj_id: rest.proj_id
          env_id: rest.env_id
          elements_config_id: rest.elements_config_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval/{operation-approval-id}/deny
      name: v2-elements-proj-id-env-id-config-elements-config-id-operation-approval-operatio
      description: REST surface for v2-elements-proj_id-env_id-config-elements_config_id-operation_approval-operatio.
      operations:
      - method: PUT
        name: denyoperationapproval
        description: Deny Operation Approval
        call: permit-io-operation-approval-eap.denyoperationapproval
        with:
          operation_approval_id: rest.operation_approval_id
          proj_id: rest.proj_id
          env_id: rest.env_id
          elements_config_id: rest.elements_config_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/elements/{proj-id}/{env-id}/config/{elements-config-id}/operation-approval/{operation-approval-id}/reviewer
      name: v2-elements-proj-id-env-id-config-elements-config-id-operation-approval-operatio
      description: REST surface for v2-elements-proj_id-env_id-config-elements_config_id-operation_approval-operatio.
      operations:
      - method: PATCH
        name: updateoperationapprovalreviewer
        description: Update Operation Approval Reviewer
        call: permit-io-operation-approval-eap.updateoperationapprovalreviewer
        with:
          operation_approval_id: rest.operation_approval_id
          proj_id: rest.proj_id
          env_id: rest.env_id
          elements_config_id: rest.elements_config_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: permit-io-operation-approval-eap-mcp
    port: 9090
    transport: http
    description: MCP adapter for Permit.io API — Operation Approval (EAP). One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: list-operation-approvals
      description: List Operation Approvals
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: permit-io-operation-approval-eap.listoperationapprovals
      with:
        proj_id: tools.proj_id
        env_id: tools.env_id
        elements_config_id: tools.elements_config_id
        status: tools.status
        resource: tools.resource
        resource_instance: tools.resource_instance
        page: tools.page
        per_page: tools.per_page
      outputParameters:
      - type: object
        mapping: $.
    - name: create-operation-approval
      description: Create Operation Approval
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: permit-io-operation-approval-eap.createoperationapproval
      with:
        proj_id: tools.proj_id
        env_id: tools.env_id
        elements_config_id: tools.elements_config_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-operation-approval
      description: Get Operation Approval
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: permit-io-operation-approval-eap.getoperationapproval
      with:
        operation_approval_id: tools.operation_approval_id
        proj_id: tools.proj_id
        env_id: tools.env_id
        elements_config_id: tools.elements_config_id
        page: tools.page
        per_page: tools.per_page
      outputParameters:
      - type: object
        mapping: $.
    - name: approve-operation-approval
      description: Approve Operation Approval
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: permit-io-operation-approval-eap.approveoperationapproval
      with:
        operation_approval_id: tools.operation_approval_id
        proj_id: tools.proj_id
        env_id: tools.env_id
        elements_config_id: tools.elements_config_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: cancel-operation-approval
      description: Cancel Operation Approval
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: permit-io-operation-approval-eap.canceloperationapproval
      with:
        operation_approval_id: tools.operation_approval_id
        proj_id: tools.proj_id
        env_id: tools.env_id
        elements_config_id: tools.elements_config_id
      outputParameters:
      - type: object
        mapping: $.
    - name: deny-operation-approval
      description: Deny Operation Approval
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: permit-io-operation-approval-eap.denyoperationapproval
      with:
        operation_approval_id: tools.operation_approval_id
        proj_id: tools.proj_id
        env_id: tools.env_id
        elements_config_id: tools.elements_config_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: update-operation-approval-reviewer
      description: Update Operation Approval Reviewer
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: permit-io-operation-approval-eap.updateoperationapprovalreviewer
      with:
        operation_approval_id: tools.operation_approval_id
        proj_id: tools.proj_id
        env_id: tools.env_id
        elements_config_id: tools.elements_config_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.