Equinix · Capability

Metal API — Devices

Metal API — Devices. 20 operations. Lead operation: Delete the device. Self-contained Naftiko capability covering one Equinix business surface.

Run with Naftiko EquinixDevices

What You Can Do

DELETE
Deletedevice — Delete the device
/v1/devices/{id}
GET
Finddevicebyid — Retrieve a device
/v1/devices/{id}
PUT
Updatedevice — Update the device
/v1/devices/{id}
POST
Performaction — Perform an action
/v1/devices/{id}/actions
GET
Findinstancebandwidth — Retrieve an instance bandwidth
/v1/devices/{id}/bandwidth
GET
Getbgpneighbordata — Retrieve BGP neighbor data for this device
/v1/devices/{id}/bgp/neighbors
GET
Findbgpsessions — Retrieve all BGP sessions
/v1/devices/{id}/bgp/sessions
POST
Createbgpsession — Create a BGP session
/v1/devices/{id}/bgp/sessions
GET
Finddevicecustomdata — Retrieve the custom metadata of an instance
/v1/devices/{id}/customdata
GET
Getdevicehealthrollup — Get Device's Health Status
/v1/devices/{id}/diagnostics/health/rollup
GET
Getdevicefirmwaresets — Get Device's associated Firmware Set
/v1/devices/{id}/firmware-sets
GET
Findipassignments — Retrieve all ip assignments
/v1/devices/{id}/ips
POST
Createipassignment — Create an ip assignment
/v1/devices/{id}/ips
GET
Finddevicemetadatabyid — Retrieve metadata
/v1/devices/{id}/metadata
GET
Findtraffic — Retrieve device traffic
/v1/devices/{id}/traffic
GET
Finddeviceuserdatabyid — Retrieve userdata
/v1/devices/{id}/userdata
GET
Findipassignmentcustomdata — Retrieve the custom metadata of an IP Assignment
/v1/devices/{instance-id}/ips/{id}/customdata
GET
Findorganizationdevices — Retrieve all devices of an organization
/v1/organizations/{id}/devices
GET
Findprojectdevices — Retrieve all devices of a project
/v1/projects/{id}/devices
POST
Createdevice — Create a device
/v1/projects/{id}/devices

MCP Tools

delete-device

Delete the device

idempotent
retrieve-device

Retrieve a device

read-only idempotent
update-device

Update the device

idempotent
perform-action

Perform an action

retrieve-instance-bandwidth

Retrieve an instance bandwidth

read-only idempotent
retrieve-bgp-neighbor-data-this

Retrieve BGP neighbor data for this device

read-only idempotent
retrieve-all-bgp-sessions

Retrieve all BGP sessions

read-only idempotent
create-bgp-session

Create a BGP session

retrieve-custom-metadata-instance

Retrieve the custom metadata of an instance

read-only idempotent
get-device-s-health-status

Get Device's Health Status

read-only idempotent
get-device-s-associated-firmware-set

Get Device's associated Firmware Set

read-only idempotent
retrieve-all-ip-assignments

Retrieve all ip assignments

read-only idempotent
create-ip-assignment

Create an ip assignment

retrieve-metadata

Retrieve metadata

read-only idempotent
retrieve-device-traffic

Retrieve device traffic

read-only idempotent
retrieve-userdata

Retrieve userdata

read-only idempotent
retrieve-custom-metadata-ip-assignment

Retrieve the custom metadata of an IP Assignment

read-only idempotent
retrieve-all-devices-organization

Retrieve all devices of an organization

read-only idempotent
retrieve-all-devices-project

Retrieve all devices of a project

read-only idempotent
create-device

Create a device

Capability Spec

metal-devices.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Metal API — Devices
  description: 'Metal API — Devices. 20 operations. Lead operation: Delete the device. Self-contained Naftiko capability covering
    one Equinix business surface.'
  tags:
  - Equinix
  - Devices
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    EQUINIX_API_KEY: EQUINIX_API_KEY
capability:
  consumes:
  - type: http
    namespace: metal-devices
    baseUri: https://api.equinix.com/metal/v1
    description: Metal API — Devices business capability. Self-contained, no shared references.
    resources:
    - name: devices-id
      path: /devices/{id}
      operations:
      - name: deletedevice
        method: DELETE
        description: Delete the device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: force_delete
          in: query
          type: boolean
          description: Force the deletion of the device, by detaching any storage volume still active.
      - name: finddevicebyid
        method: GET
        description: Retrieve a device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
      - name: updatedevice
        method: PUT
        description: Update the device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: devices-id-actions
      path: /devices/{id}/actions
      operations:
      - name: performaction
        method: POST
        description: Perform an action
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: devices-id-bandwidth
      path: /devices/{id}/bandwidth
      operations:
      - name: findinstancebandwidth
        method: GET
        description: Retrieve an instance bandwidth
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: from
          in: query
          type: string
          description: Timestamp from range
          required: true
        - name: until
          in: query
          type: string
          description: Timestamp to range
          required: true
    - name: devices-id-bgp-neighbors
      path: /devices/{id}/bgp/neighbors
      operations:
      - name: getbgpneighbordata
        method: GET
        description: Retrieve BGP neighbor data for this device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
    - name: devices-id-bgp-sessions
      path: /devices/{id}/bgp/sessions
      operations:
      - name: findbgpsessions
        method: GET
        description: Retrieve all BGP sessions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
      - name: createbgpsession
        method: POST
        description: Create a BGP session
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: devices-id-customdata
      path: /devices/{id}/customdata
      operations:
      - name: finddevicecustomdata
        method: GET
        description: Retrieve the custom metadata of an instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Instance UUID
          required: true
    - name: devices-id-diagnostics-health-rollup
      path: /devices/{id}/diagnostics/health/rollup
      operations:
      - name: getdevicehealthrollup
        method: GET
        description: Get Device's Health Status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
    - name: devices-id-firmware-sets
      path: /devices/{id}/firmware-sets
      operations:
      - name: getdevicefirmwaresets
        method: GET
        description: Get Device's associated Firmware Set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
    - name: devices-id-ips
      path: /devices/{id}/ips
      operations:
      - name: findipassignments
        method: GET
        description: Retrieve all ip assignments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
      - name: createipassignment
        method: POST
        description: Create an ip assignment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: devices-id-metadata
      path: /devices/{id}/metadata
      operations:
      - name: finddevicemetadatabyid
        method: GET
        description: Retrieve metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
    - name: devices-id-traffic
      path: /devices/{id}/traffic
      operations:
      - name: findtraffic
        method: GET
        description: Retrieve device traffic
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
        - name: direction
          in: query
          type: string
          description: Traffic direction
          required: true
        - name: interval
          in: query
          type: string
          description: Traffic interval
        - name: bucket
          in: query
          type: string
          description: Traffic bucket
        - name: timeframe
          in: query
          type: string
    - name: devices-id-userdata
      path: /devices/{id}/userdata
      operations:
      - name: finddeviceuserdatabyid
        method: GET
        description: Retrieve userdata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Device UUID
          required: true
    - name: devices-instance_id-ips-id-customdata
      path: /devices/{instance_id}/ips/{id}/customdata
      operations:
      - name: findipassignmentcustomdata
        method: GET
        description: Retrieve the custom metadata of an IP Assignment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: instance_id
          in: path
          type: string
          description: Instance UUID
          required: true
        - name: id
          in: path
          type: string
          description: Ip Assignment UUID
          required: true
    - name: organizations-id-devices
      path: /organizations/{id}/devices
      operations:
      - name: findorganizationdevices
        method: GET
        description: Retrieve all devices of an organization
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Organization UUID
          required: true
        - name: search
          in: query
          type: string
          description: Search by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility
            code, facility name, operating system name, operating syst
        - name: categories
          in: query
          type: array
          description: Filter by plan category
        - name: facility
          in: query
          type: string
          description: Filter by device facility
        - name: hostname
          in: query
          type: string
          description: Filter by partial hostname
        - name: reserved
          in: query
          type: boolean
          description: Filter only reserved instances. When set to true, only include reserved instances. When set to false,
            only include on-demand instances.
        - name: tag
          in: query
          type: string
          description: Filter by device tag
        - name: type
          in: query
          type: string
          description: Filter by instance type (ondemand,spot,reserved)
        - name: has_termination_time
          in: query
          type: boolean
          description: Filter only instances marked for termination. When set to true, only include instances that have a
            termination time. When set to false, only include instances t
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: page
          in: query
          type: integer
          description: Page to return
        - name: per_page
          in: query
          type: integer
          description: Items returned per page
    - name: projects-id-devices
      path: /projects/{id}/devices
      operations:
      - name: findprojectdevices
        method: GET
        description: Retrieve all devices of a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Project UUID
          required: true
        - name: search
          in: query
          type: string
          description: Search by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility
            code, facility name, operating system name, operating syst
        - name: categories
          in: query
          type: array
          description: Filter by plan category
        - name: facility
          in: query
          type: string
          description: Filter by device facility
        - name: metro
          in: query
          type: string
          description: Filter by device metro
        - name: hostname
          in: query
          type: string
          description: Filter by partial hostname
        - name: reserved
          in: query
          type: boolean
          description: Filter only reserved instances. When set to true, only include reserved instances. When set to false,
            only include on-demand instances.
        - name: tag
          in: query
          type: string
          description: Filter by device tag
        - name: type
          in: query
          type: string
          description: Filter by instance type (ondemand,spot,reserved)
        - name: has_termination_time
          in: query
          type: boolean
          description: Filter only instances marked for termination. When set to true, only include instances that have a
            termination time. When set to false, only include instances t
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: page
          in: query
          type: integer
          description: Page to return
        - name: per_page
          in: query
          type: integer
          description: Items returned per page
      - name: createdevice
        method: POST
        description: Create a device
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Project UUID
          required: true
        - name: include
          in: query
          type: array
          description: Nested attributes to include. Included objects will return their full
        - name: exclude
          in: query
          type: array
          description: Nested attributes to exclude. Excluded objects will return only the href
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: apikey
      key: X-Auth-Token
      value: '{{env.EQUINIX_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: metal-devices-rest
    port: 8080
    description: REST adapter for Metal API — Devices. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/devices/{id}
      name: devices-id
      description: REST surface for devices-id.
      operations:
      - method: DELETE
        name: deletedevice
        description: Delete the device
        call: metal-devices.deletedevice
        with:
          id: rest.id
          force_delete: rest.force_delete
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: finddevicebyid
        description: Retrieve a device
        call: metal-devices.finddevicebyid
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatedevice
        description: Update the device
        call: metal-devices.updatedevice
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/actions
      name: devices-id-actions
      description: REST surface for devices-id-actions.
      operations:
      - method: POST
        name: performaction
        description: Perform an action
        call: metal-devices.performaction
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/bandwidth
      name: devices-id-bandwidth
      description: REST surface for devices-id-bandwidth.
      operations:
      - method: GET
        name: findinstancebandwidth
        description: Retrieve an instance bandwidth
        call: metal-devices.findinstancebandwidth
        with:
          id: rest.id
          from: rest.from
          until: rest.until
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/bgp/neighbors
      name: devices-id-bgp-neighbors
      description: REST surface for devices-id-bgp-neighbors.
      operations:
      - method: GET
        name: getbgpneighbordata
        description: Retrieve BGP neighbor data for this device
        call: metal-devices.getbgpneighbordata
        with:
          id: rest.id
          include: rest.include
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/bgp/sessions
      name: devices-id-bgp-sessions
      description: REST surface for devices-id-bgp-sessions.
      operations:
      - method: GET
        name: findbgpsessions
        description: Retrieve all BGP sessions
        call: metal-devices.findbgpsessions
        with:
          id: rest.id
          include: rest.include
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createbgpsession
        description: Create a BGP session
        call: metal-devices.createbgpsession
        with:
          id: rest.id
          include: rest.include
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/customdata
      name: devices-id-customdata
      description: REST surface for devices-id-customdata.
      operations:
      - method: GET
        name: finddevicecustomdata
        description: Retrieve the custom metadata of an instance
        call: metal-devices.finddevicecustomdata
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/diagnostics/health/rollup
      name: devices-id-diagnostics-health-rollup
      description: REST surface for devices-id-diagnostics-health-rollup.
      operations:
      - method: GET
        name: getdevicehealthrollup
        description: Get Device's Health Status
        call: metal-devices.getdevicehealthrollup
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/firmware-sets
      name: devices-id-firmware-sets
      description: REST surface for devices-id-firmware-sets.
      operations:
      - method: GET
        name: getdevicefirmwaresets
        description: Get Device's associated Firmware Set
        call: metal-devices.getdevicefirmwaresets
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/ips
      name: devices-id-ips
      description: REST surface for devices-id-ips.
      operations:
      - method: GET
        name: findipassignments
        description: Retrieve all ip assignments
        call: metal-devices.findipassignments
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createipassignment
        description: Create an ip assignment
        call: metal-devices.createipassignment
        with:
          include: rest.include
          exclude: rest.exclude
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/metadata
      name: devices-id-metadata
      description: REST surface for devices-id-metadata.
      operations:
      - method: GET
        name: finddevicemetadatabyid
        description: Retrieve metadata
        call: metal-devices.finddevicemetadatabyid
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/traffic
      name: devices-id-traffic
      description: REST surface for devices-id-traffic.
      operations:
      - method: GET
        name: findtraffic
        description: Retrieve device traffic
        call: metal-devices.findtraffic
        with:
          id: rest.id
          direction: rest.direction
          interval: rest.interval
          bucket: rest.bucket
          timeframe: rest.timeframe
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{id}/userdata
      name: devices-id-userdata
      description: REST surface for devices-id-userdata.
      operations:
      - method: GET
        name: finddeviceuserdatabyid
        description: Retrieve userdata
        call: metal-devices.finddeviceuserdatabyid
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/devices/{instance-id}/ips/{id}/customdata
      name: devices-instance-id-ips-id-customdata
      description: REST surface for devices-instance_id-ips-id-customdata.
      operations:
      - method: GET
        name: findipassignmentcustomdata
        description: Retrieve the custom metadata of an IP Assignment
        call: metal-devices.findipassignmentcustomdata
        with:
          instance_id: rest.instance_id
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{id}/devices
      name: organizations-id-devices
      description: REST surface for organizations-id-devices.
      operations:
      - method: GET
        name: findorganizationdevices
        description: Retrieve all devices of an organization
        call: metal-devices.findorganizationdevices
        with:
          id: rest.id
          search: rest.search
          categories: rest.categories
          facility: rest.facility
          hostname: rest.hostname
          reserved: rest.reserved
          tag: rest.tag
          type: rest.type
          has_termination_time: rest.has_termination_time
          include: rest.include
          exclude: rest.exclude
          page: rest.page
          per_page: rest.per_page
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{id}/devices
      name: projects-id-devices
      description: REST surface for projects-id-devices.
      operations:
      - method: GET
        name: findprojectdevices
        description: Retrieve all devices of a project
        call: metal-devices.findprojectdevices
        with:
          id: rest.id
          search: rest.search
          categories: rest.categories
          facility: rest.facility
          metro: rest.metro
          hostname: rest.hostname
          reserved: rest.reserved
          tag: rest.tag
          type: rest.type
          has_termination_time: rest.has_termination_time
          include: rest.include
          exclude: rest.exclude
          page: rest.page
          per_page: rest.per_page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createdevice
        description: Create a device
        call: metal-devices.createdevice
        with:
          id: rest.id
          include: rest.include
          exclude: rest.exclude
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: metal-devices-mcp
    port: 9090
    transport: http
    description: MCP adapter for Metal API — Devices. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: delete-device
      description: Delete the device
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: metal-devices.deletedevice
      with:
        id: tools.id
        force_delete: tools.force_delete
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-device
      description: Retrieve a device
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.finddevicebyid
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.
    - name: update-device
      description: Update the device
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: metal-devices.updatedevice
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: perform-action
      description: Perform an action
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: metal-devices.performaction
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-instance-bandwidth
      description: Retrieve an instance bandwidth
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.findinstancebandwidth
      with:
        id: tools.id
        from: tools.from
        until: tools.until
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-bgp-neighbor-data-this
      description: Retrieve BGP neighbor data for this device
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.getbgpneighbordata
      with:
        id: tools.id
        include: tools.include
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-all-bgp-sessions
      description: Retrieve all BGP sessions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.findbgpsessions
      with:
        id: tools.id
        include: tools.include
      outputParameters:
      - type: object
        mapping: $.
    - name: create-bgp-session
      description: Create a BGP session
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: metal-devices.createbgpsession
      with:
        id: tools.id
        include: tools.include
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-custom-metadata-instance
      description: Retrieve the custom metadata of an instance
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.finddevicecustomdata
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-device-s-health-status
      description: Get Device's Health Status
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.getdevicehealthrollup
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-device-s-associated-firmware-set
      description: Get Device's associated Firmware Set
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.getdevicefirmwaresets
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-all-ip-assignments
      description: Retrieve all ip assignments
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.findipassignments
      with:
        id: tools.id
        include: tools.include
        exclude: tools.exclude
      outputParameters:
      - type: object
        mapping: $.
    - name: create-ip-assignment
      description: Create an ip assignment
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: metal-devices.createipassignment
      with:
        include: tools.include
        exclude: tools.exclude
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-metadata
      description: Retrieve metadata
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.finddevicemetadatabyid
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-device-traffic
      description: Retrieve device traffic
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.findtraffic
      with:
        id: tools.id
        direction: tools.direction
        interval: tools.interval
        bucket: tools.bucket
        timeframe: tools.timeframe
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-userdata
      description: Retrieve userdata
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.finddeviceuserdatabyid
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-custom-metadata-ip-assignment
      description: Retrieve the custom metadata of an IP Assignment
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: metal-devices.findipassignmentcustomdata
      with:
        instance_id: tools.instance_id
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-all-devices-organization
  

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/equinix/refs/heads/main/capabilities/metal-devices.yaml