Freestyle · Capability

Freestyle Identity API — Vm Permissions

Freestyle Identity API vm permissions surface. 5 operations. Lead operation: List VM Permissions for an Identity. Self-contained Naftiko capability for one Freestyle business surface.

Freestyle Identity API — Vm Permissions is a Naftiko capability published by Freestyle, one of 30 capabilities the APIs.io network indexes for this provider. It bundles 5 operations across the GET, PUT, POST, and DELETE methods rooted at /v1/identity/v1/identities/{…}/permissions/vm.

The capability includes 2 read-only operations and 3 state-changing operations. Lead operation: List VM Permissions for an Identity. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Freestyle, Identity, and Vm Permissions.

Run with Naftiko FreestyleIdentityVm Permissions

What You Can Do

GET
Handle list vm permissions — List VM Permissions for an Identity
/v1/identity/v1/identities/{identity}/permissions/vm
GET
Handle describe vm permission — Get VM Permission Details
/v1/identity/v1/identities/{identity}/permissions/vm/{vm_id}
PUT
Handle update allowed users — Update Allowed Users for VM Permission
/v1/identity/v1/identities/{identity}/permissions/vm/{vm_id}
POST
Handle grant vm permission — Grant VM Permission to an Identity for a VM
/v1/identity/v1/identities/{identity}/permissions/vm/{vm_id}
DELETE
Handle revoke vm permission — Revoke VM Permission From an Identity for a VM
/v1/identity/v1/identities/{identity}/permissions/vm/{vm_id}

MCP Tools

freestyle-handle-list-vm-permissions

List VM Permissions for an Identity

read-only idempotent
freestyle-handle-describe-vm-permission

Get VM Permission Details

read-only idempotent
freestyle-handle-update-allowed-users

Update Allowed Users for VM Permission

idempotent
freestyle-handle-grant-vm-permission

Grant VM Permission to an Identity for a VM

freestyle-handle-revoke-vm-permission

Revoke VM Permission From an Identity for a VM

idempotent

Capability Spec

identity-vm-permissions.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: "Freestyle Identity API \u2014 Vm Permissions"
  description: 'Freestyle Identity API vm permissions surface. 5 operations. Lead operation: List VM Permissions for an Identity.
    Self-contained Naftiko capability for one Freestyle business surface.'
  tags:
  - Freestyle
  - Identity
  - Vm Permissions
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    FREESTYLE_API_KEY: FREESTYLE_API_KEY
capability:
  consumes:
  - type: http
    namespace: identity-vm-permissions
    baseUri: https://api.freestyle.sh
    description: Freestyle Identity API vm permissions business capability.
    resources:
    - name: identity-v1-identities-permissions-vm
      path: /identity/v1/identities/{identity}/permissions/vm
      operations:
      - name: handle-list-vm-permissions
        method: GET
        description: List VM Permissions for an Identity
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: identity
          in: path
          type: string
          required: true
        - name: limit
          in: query
          type: string
          required: false
        - name: offset
          in: query
          type: string
          required: false
    - name: identity-v1-identities-permissions-vm
      path: /identity/v1/identities/{identity}/permissions/vm/{vm_id}
      operations:
      - name: handle-describe-vm-permission
        method: GET
        description: Get VM Permission Details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: identity
          in: path
          type: string
          required: true
        - name: vm_id
          in: path
          type: string
          required: true
      - name: handle-update-allowed-users
        method: PUT
        description: Update Allowed Users for VM Permission
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: identity
          in: path
          type: string
          required: true
        - name: vm_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: handle-grant-vm-permission
        method: POST
        description: Grant VM Permission to an Identity for a VM
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: identity
          in: path
          type: string
          required: true
        - name: vm_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: handle-revoke-vm-permission
        method: DELETE
        description: Revoke VM Permission From an Identity for a VM
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: identity
          in: path
          type: string
          required: true
        - name: vm_id
          in: path
          type: string
          required: true
    authentication:
      type: apikey
      key: Authorization
      value: Bearer {{env.FREESTYLE_API_KEY}}
      placement: header
  exposes:
  - type: rest
    namespace: identity-vm-permissions-rest
    port: 8080
    description: REST adapter for Freestyle Identity API vm-permissions. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/identity/v1/identities/{identity}/permissions/vm
      name: identity-v1-identities-permissions-vm
      description: REST surface for identity-v1-identities-permissions-vm.
      operations:
      - method: GET
        name: handle-list-vm-permissions
        description: List VM Permissions for an Identity
        call: identity-vm-permissions.handle-list-vm-permissions
        with:
          identity: rest.path.identity
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/identity/v1/identities/{identity}/permissions/vm/{vm_id}
      name: identity-v1-identities-permissions-vm
      description: REST surface for identity-v1-identities-permissions-vm.
      operations:
      - method: GET
        name: handle-describe-vm-permission
        description: Get VM Permission Details
        call: identity-vm-permissions.handle-describe-vm-permission
        with:
          identity: rest.path.identity
          vm_id: rest.path.vm_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: handle-update-allowed-users
        description: Update Allowed Users for VM Permission
        call: identity-vm-permissions.handle-update-allowed-users
        with:
          identity: rest.path.identity
          vm_id: rest.path.vm_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: handle-grant-vm-permission
        description: Grant VM Permission to an Identity for a VM
        call: identity-vm-permissions.handle-grant-vm-permission
        with:
          identity: rest.path.identity
          vm_id: rest.path.vm_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: handle-revoke-vm-permission
        description: Revoke VM Permission From an Identity for a VM
        call: identity-vm-permissions.handle-revoke-vm-permission
        with:
          identity: rest.path.identity
          vm_id: rest.path.vm_id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: identity-vm-permissions-mcp
    port: 9090
    transport: http
    description: MCP adapter for Freestyle Identity API vm-permissions. One tool per consumed operation.
    tools:
    - name: freestyle-handle-list-vm-permissions
      description: List VM Permissions for an Identity
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: identity-vm-permissions.handle-list-vm-permissions
      with:
        identity: tools.path.identity
      outputParameters:
      - type: object
        mapping: $.
    - name: freestyle-handle-describe-vm-permission
      description: Get VM Permission Details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: identity-vm-permissions.handle-describe-vm-permission
      with:
        identity: tools.path.identity
        vm_id: tools.path.vm_id
      outputParameters:
      - type: object
        mapping: $.
    - name: freestyle-handle-update-allowed-users
      description: Update Allowed Users for VM Permission
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: identity-vm-permissions.handle-update-allowed-users
      with:
        identity: tools.path.identity
        vm_id: tools.path.vm_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: freestyle-handle-grant-vm-permission
      description: Grant VM Permission to an Identity for a VM
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: identity-vm-permissions.handle-grant-vm-permission
      with:
        identity: tools.path.identity
        vm_id: tools.path.vm_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: freestyle-handle-revoke-vm-permission
      description: Revoke VM Permission From an Identity for a VM
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: identity-vm-permissions.handle-revoke-vm-permission
      with:
        identity: tools.path.identity
        vm_id: tools.path.vm_id
      outputParameters:
      - type: object
        mapping: $.