Equinix · Capability
Metal API — Ports
Metal API — Ports. 14 operations. Lead operation: Retrieve a port. Self-contained Naftiko capability covering one Equinix business surface.
What You Can Do
GET
Findportbyid
— Retrieve a port
/v1/ports/{id}
POST
Assignport
— Assign a port to virtual network
/v1/ports/{id}/assign
POST
Bondport
— Enabling bonding
/v1/ports/{id}/bond
POST
Convertlayer2
— Convert to Layer 2
/v1/ports/{id}/convert/layer-2
POST
Convertlayer3
— Convert to Layer 3
/v1/ports/{id}/convert/layer-3
POST
Disbondport
— Disabling bonding
/v1/ports/{id}/disbond
DELETE
Deletenativevlan
— Remove native VLAN
/v1/ports/{id}/native-vlan
POST
Assignnativevlan
— Assign a native VLAN
/v1/ports/{id}/native-vlan
POST
Unassignport
— Unassign a port
/v1/ports/{id}/unassign
GET
Findportvlanassignments
— List Current VLAN assignments for a port
/v1/ports/{id}/vlan-assignments
GET
Findportvlanassignmentbatches
— List the VLAN Assignment Batches for a port
/v1/ports/{id}/vlan-assignments/batches
POST
Createportvlanassignmentbatch
— Create a new Port-VLAN Assignment management batch
/v1/ports/{id}/vlan-assignments/batches
GET
Findportvlanassignmentbatchbyportidandbatchid
— Retrieve a VLAN Assignment Batch's details
/v1/ports/{id}/vlan-assignments/batches/{batch-id}
GET
Findportvlanassignmentbyportidandassignmentid
— Show a particular Port VLAN assignment's details
/v1/ports/{id}/vlan-assignments/{assignment-id}
MCP Tools
retrieve-port
Retrieve a port
read-only
idempotent
assign-port-virtual-network
Assign a port to virtual network
enabling-bonding
Enabling bonding
convert-layer-2
Convert to Layer 2
convert-layer-3
Convert to Layer 3
disabling-bonding
Disabling bonding
remove-native-vlan
Remove native VLAN
idempotent
assign-native-vlan
Assign a native VLAN
unassign-port
Unassign a port
list-current-vlan-assignments-port
List Current VLAN assignments for a port
read-only
idempotent
list-vlan-assignment-batches-port
List the VLAN Assignment Batches for a port
read-only
idempotent
create-new-port-vlan-assignment
Create a new Port-VLAN Assignment management batch
retrieve-vlan-assignment-batch-s-details
Retrieve a VLAN Assignment Batch's details
read-only
idempotent
show-particular-port-vlan-assignment-s
Show a particular Port VLAN assignment's details
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Metal API — Ports
description: 'Metal API — Ports. 14 operations. Lead operation: Retrieve a port. Self-contained Naftiko capability covering
one Equinix business surface.'
tags:
- Equinix
- Ports
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
EQUINIX_API_KEY: EQUINIX_API_KEY
capability:
consumes:
- type: http
namespace: metal-ports
baseUri: https://api.equinix.com/metal/v1
description: Metal API — Ports business capability. Self-contained, no shared references.
resources:
- name: ports-id
path: /ports/{id}
operations:
- name: findportbyid
method: GET
description: Retrieve a port
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port UUID
required: true
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: ports-id-assign
path: /ports/{id}/assign
operations:
- name: assignport
method: POST
description: Assign a port to virtual network
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port 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: false
- name: ports-id-bond
path: /ports/{id}/bond
operations:
- name: bondport
method: POST
description: Enabling bonding
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port UUID
required: true
- name: bulk_enable
in: query
type: boolean
description: enable both ports
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: ports-id-convert-layer-2
path: /ports/{id}/convert/layer-2
operations:
- name: convertlayer2
method: POST
description: Convert to Layer 2
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port 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: false
- name: ports-id-convert-layer-3
path: /ports/{id}/convert/layer-3
operations:
- name: convertlayer3
method: POST
description: Convert to Layer 3
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port 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: false
- name: ports-id-disbond
path: /ports/{id}/disbond
operations:
- name: disbondport
method: POST
description: Disabling bonding
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port UUID
required: true
- name: bulk_disable
in: query
type: boolean
description: disable both ports
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: ports-id-native-vlan
path: /ports/{id}/native-vlan
operations:
- name: deletenativevlan
method: DELETE
description: Remove native VLAN
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port UUID
required: true
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: assignnativevlan
method: POST
description: Assign a native VLAN
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port UUID
required: true
- name: vnid
in: query
type: string
description: 'Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself (ex: ''1001'').'
required: true
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: ports-id-unassign
path: /ports/{id}/unassign
operations:
- name: unassignport
method: POST
description: Unassign a port
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port 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: false
- name: ports-id-vlan-assignments
path: /ports/{id}/vlan-assignments
operations:
- name: findportvlanassignments
method: GET
description: List Current VLAN assignments for a port
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port UUID
required: true
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full attributes. Attribute names can
be dotted (up to 3 levels) to included deeply nested objec
- name: ports-id-vlan-assignments-batches
path: /ports/{id}/vlan-assignments/batches
operations:
- name: findportvlanassignmentbatches
method: GET
description: List the VLAN Assignment Batches for a port
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port UUID
required: true
- name: createportvlanassignmentbatch
method: POST
description: Create a new Port-VLAN Assignment management batch
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port 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: ports-id-vlan-assignments-batches-batch_id
path: /ports/{id}/vlan-assignments/batches/{batch_id}
operations:
- name: findportvlanassignmentbatchbyportidandbatchid
method: GET
description: Retrieve a VLAN Assignment Batch's details
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port UUID
required: true
- name: batch_id
in: path
type: string
description: Batch ID
required: true
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: ports-id-vlan-assignments-assignment_id
path: /ports/{id}/vlan-assignments/{assignment_id}
operations:
- name: findportvlanassignmentbyportidandassignmentid
method: GET
description: Show a particular Port VLAN assignment's details
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Port UUID
required: true
- name: assignment_id
in: path
type: string
description: Assignment ID
required: true
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full attributes. Attribute names can
be dotted (up to 3 levels) to included deeply nested objec
authentication:
type: apikey
key: X-Auth-Token
value: '{{env.EQUINIX_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: metal-ports-rest
port: 8080
description: REST adapter for Metal API — Ports. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/ports/{id}
name: ports-id
description: REST surface for ports-id.
operations:
- method: GET
name: findportbyid
description: Retrieve a port
call: metal-ports.findportbyid
with:
id: rest.id
include: rest.include
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/assign
name: ports-id-assign
description: REST surface for ports-id-assign.
operations:
- method: POST
name: assignport
description: Assign a port to virtual network
call: metal-ports.assignport
with:
id: rest.id
include: rest.include
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/bond
name: ports-id-bond
description: REST surface for ports-id-bond.
operations:
- method: POST
name: bondport
description: Enabling bonding
call: metal-ports.bondport
with:
id: rest.id
bulk_enable: rest.bulk_enable
include: rest.include
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/convert/layer-2
name: ports-id-convert-layer-2
description: REST surface for ports-id-convert-layer-2.
operations:
- method: POST
name: convertlayer2
description: Convert to Layer 2
call: metal-ports.convertlayer2
with:
id: rest.id
include: rest.include
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/convert/layer-3
name: ports-id-convert-layer-3
description: REST surface for ports-id-convert-layer-3.
operations:
- method: POST
name: convertlayer3
description: Convert to Layer 3
call: metal-ports.convertlayer3
with:
id: rest.id
include: rest.include
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/disbond
name: ports-id-disbond
description: REST surface for ports-id-disbond.
operations:
- method: POST
name: disbondport
description: Disabling bonding
call: metal-ports.disbondport
with:
id: rest.id
bulk_disable: rest.bulk_disable
include: rest.include
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/native-vlan
name: ports-id-native-vlan
description: REST surface for ports-id-native-vlan.
operations:
- method: DELETE
name: deletenativevlan
description: Remove native VLAN
call: metal-ports.deletenativevlan
with:
id: rest.id
include: rest.include
outputParameters:
- type: object
mapping: $.
- method: POST
name: assignnativevlan
description: Assign a native VLAN
call: metal-ports.assignnativevlan
with:
id: rest.id
vnid: rest.vnid
include: rest.include
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/unassign
name: ports-id-unassign
description: REST surface for ports-id-unassign.
operations:
- method: POST
name: unassignport
description: Unassign a port
call: metal-ports.unassignport
with:
id: rest.id
include: rest.include
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/vlan-assignments
name: ports-id-vlan-assignments
description: REST surface for ports-id-vlan-assignments.
operations:
- method: GET
name: findportvlanassignments
description: List Current VLAN assignments for a port
call: metal-ports.findportvlanassignments
with:
id: rest.id
include: rest.include
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/vlan-assignments/batches
name: ports-id-vlan-assignments-batches
description: REST surface for ports-id-vlan-assignments-batches.
operations:
- method: GET
name: findportvlanassignmentbatches
description: List the VLAN Assignment Batches for a port
call: metal-ports.findportvlanassignmentbatches
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- method: POST
name: createportvlanassignmentbatch
description: Create a new Port-VLAN Assignment management batch
call: metal-ports.createportvlanassignmentbatch
with:
id: rest.id
include: rest.include
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/vlan-assignments/batches/{batch-id}
name: ports-id-vlan-assignments-batches-batch-id
description: REST surface for ports-id-vlan-assignments-batches-batch_id.
operations:
- method: GET
name: findportvlanassignmentbatchbyportidandbatchid
description: Retrieve a VLAN Assignment Batch's details
call: metal-ports.findportvlanassignmentbatchbyportidandbatchid
with:
id: rest.id
batch_id: rest.batch_id
include: rest.include
outputParameters:
- type: object
mapping: $.
- path: /v1/ports/{id}/vlan-assignments/{assignment-id}
name: ports-id-vlan-assignments-assignment-id
description: REST surface for ports-id-vlan-assignments-assignment_id.
operations:
- method: GET
name: findportvlanassignmentbyportidandassignmentid
description: Show a particular Port VLAN assignment's details
call: metal-ports.findportvlanassignmentbyportidandassignmentid
with:
id: rest.id
assignment_id: rest.assignment_id
include: rest.include
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: metal-ports-mcp
port: 9090
transport: http
description: MCP adapter for Metal API — Ports. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: retrieve-port
description: Retrieve a port
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-ports.findportbyid
with:
id: tools.id
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: assign-port-virtual-network
description: Assign a port to virtual network
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-ports.assignport
with:
id: tools.id
include: tools.include
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: enabling-bonding
description: Enabling bonding
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-ports.bondport
with:
id: tools.id
bulk_enable: tools.bulk_enable
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: convert-layer-2
description: Convert to Layer 2
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-ports.convertlayer2
with:
id: tools.id
include: tools.include
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: convert-layer-3
description: Convert to Layer 3
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-ports.convertlayer3
with:
id: tools.id
include: tools.include
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: disabling-bonding
description: Disabling bonding
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-ports.disbondport
with:
id: tools.id
bulk_disable: tools.bulk_disable
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: remove-native-vlan
description: Remove native VLAN
hints:
readOnly: false
destructive: true
idempotent: true
call: metal-ports.deletenativevlan
with:
id: tools.id
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: assign-native-vlan
description: Assign a native VLAN
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-ports.assignnativevlan
with:
id: tools.id
vnid: tools.vnid
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: unassign-port
description: Unassign a port
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-ports.unassignport
with:
id: tools.id
include: tools.include
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-current-vlan-assignments-port
description: List Current VLAN assignments for a port
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-ports.findportvlanassignments
with:
id: tools.id
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: list-vlan-assignment-batches-port
description: List the VLAN Assignment Batches for a port
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-ports.findportvlanassignmentbatches
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: create-new-port-vlan-assignment
description: Create a new Port-VLAN Assignment management batch
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-ports.createportvlanassignmentbatch
with:
id: tools.id
include: tools.include
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-vlan-assignment-batch-s-details
description: Retrieve a VLAN Assignment Batch's details
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-ports.findportvlanassignmentbatchbyportidandbatchid
with:
id: tools.id
batch_id: tools.batch_id
include: tools.include
outputParameters:
- type: object
mapping: $.
- name: show-particular-port-vlan-assignment-s
description: Show a particular Port VLAN assignment's details
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-ports.findportvlanassignmentbyportidandassignmentid
with:
id: tools.id
assignment_id: tools.assignment_id
include: tools.include
outputParameters:
- type: object
mapping: $.