naftiko: 1.0.0-alpha2 info: label: Metal API — VRFs description: 'Metal API — VRFs. 16 operations. Lead operation: Delete a VRF BGP Dynamic Neighbor. Self-contained Naftiko capability covering one Equinix business surface.' tags: - Equinix - VRFs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: EQUINIX_API_KEY: EQUINIX_API_KEY capability: consumes: - type: http namespace: metal-vrfs baseUri: https://api.equinix.com/metal/v1 description: Metal API — VRFs business capability. Self-contained, no shared references. resources: - name: bgp-dynamic-neighbors-id path: /bgp-dynamic-neighbors/{id} operations: - name: deletebgpdynamicneighborbyid method: DELETE description: Delete a VRF BGP Dynamic Neighbor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: BGP Dynamic Neighbor 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: get method: GET description: Retrieve a BGP Dynamic Neighbor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: BGP Dynamic Neighbor 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: metal-gateways-id-bgp-dynamic-neighbors path: /metal-gateways/{id}/bgp-dynamic-neighbors operations: - name: getbgpdynamicneighbors method: GET description: List BGP Dynamic Neighbors outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Metal Gateway 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: createbgpdynamicneighbor method: POST description: Create a VRF BGP Dynamic Neighbor range outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Metal Gateway 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: projects-id-vrfs path: /projects/{id}/vrfs operations: - name: findvrfs method: GET description: Retrieve all VRFs in the project 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: metro in: query type: string description: Filter by Metro ID (uuid) or Metro Code - name: createvrf method: POST description: Create a new VRF in the specified project 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 - name: routes-id path: /routes/{id} operations: - name: deletevrfroutebyid method: DELETE description: Delete a VRF Route outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: VRF Route 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: findvrfroutebyid method: GET description: Retrieve a VRF Route outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: VRF Route 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: updatevrfroutebyid method: PUT description: Update a VRF Route outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: VRF Route 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: vrfs-id path: /vrfs/{id} operations: - name: deletevrf method: DELETE description: Delete the VRF outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: VRF UUID required: true - name: findvrfbyid method: GET description: Retrieve a VRF outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: VRF 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: updatevrf method: PUT description: Update the VRF outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: VRF 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: vrfs-id-ips path: /vrfs/{id}/ips operations: - name: findvrfipreservations method: GET description: Retrieve all VRF IP Reservations in the VRF outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: VRF 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: exclude in: query type: array description: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested obje - name: vrfs-id-routes path: /vrfs/{id}/routes operations: - name: getvrfroutes method: GET description: Retrieve all routes in the VRF outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: VRF 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: createvrfroute method: POST description: Create a VRF route outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: VRF 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: vrfs-vrf_id-ips-id path: /vrfs/{vrf_id}/ips/{id} operations: - name: findvrfipreservation method: GET description: Retrieve all VRF IP Reservations in the VRF outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: vrf_id in: path type: string description: VRF UUID required: true - name: id in: path type: string description: IP 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: exclude in: query type: array description: Nested attributes to exclude. Excluded objects will return only the href attribute. Attribute names can be dotted (up to 3 levels) to exclude deeply nested obje authentication: type: apikey key: X-Auth-Token value: '{{env.EQUINIX_API_KEY}}' placement: header exposes: - type: rest namespace: metal-vrfs-rest port: 8080 description: REST adapter for Metal API — VRFs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/bgp-dynamic-neighbors/{id} name: bgp-dynamic-neighbors-id description: REST surface for bgp-dynamic-neighbors-id. operations: - method: DELETE name: deletebgpdynamicneighborbyid description: Delete a VRF BGP Dynamic Neighbor call: metal-vrfs.deletebgpdynamicneighborbyid with: id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: GET name: get description: Retrieve a BGP Dynamic Neighbor call: metal-vrfs.get with: id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - path: /v1/metal-gateways/{id}/bgp-dynamic-neighbors name: metal-gateways-id-bgp-dynamic-neighbors description: REST surface for metal-gateways-id-bgp-dynamic-neighbors. operations: - method: GET name: getbgpdynamicneighbors description: List BGP Dynamic Neighbors call: metal-vrfs.getbgpdynamicneighbors with: id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: POST name: createbgpdynamicneighbor description: Create a VRF BGP Dynamic Neighbor range call: metal-vrfs.createbgpdynamicneighbor with: id: rest.id include: rest.include exclude: rest.exclude body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{id}/vrfs name: projects-id-vrfs description: REST surface for projects-id-vrfs. operations: - method: GET name: findvrfs description: Retrieve all VRFs in the project call: metal-vrfs.findvrfs with: id: rest.id include: rest.include exclude: rest.exclude metro: rest.metro outputParameters: - type: object mapping: $. - method: POST name: createvrf description: Create a new VRF in the specified project call: metal-vrfs.createvrf with: id: rest.id include: rest.include exclude: rest.exclude body: rest.body outputParameters: - type: object mapping: $. - path: /v1/routes/{id} name: routes-id description: REST surface for routes-id. operations: - method: DELETE name: deletevrfroutebyid description: Delete a VRF Route call: metal-vrfs.deletevrfroutebyid with: id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: GET name: findvrfroutebyid description: Retrieve a VRF Route call: metal-vrfs.findvrfroutebyid with: id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: PUT name: updatevrfroutebyid description: Update a VRF Route call: metal-vrfs.updatevrfroutebyid with: id: rest.id include: rest.include exclude: rest.exclude body: rest.body outputParameters: - type: object mapping: $. - path: /v1/vrfs/{id} name: vrfs-id description: REST surface for vrfs-id. operations: - method: DELETE name: deletevrf description: Delete the VRF call: metal-vrfs.deletevrf with: id: rest.id outputParameters: - type: object mapping: $. - method: GET name: findvrfbyid description: Retrieve a VRF call: metal-vrfs.findvrfbyid with: id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: PUT name: updatevrf description: Update the VRF call: metal-vrfs.updatevrf with: id: rest.id include: rest.include exclude: rest.exclude body: rest.body outputParameters: - type: object mapping: $. - path: /v1/vrfs/{id}/ips name: vrfs-id-ips description: REST surface for vrfs-id-ips. operations: - method: GET name: findvrfipreservations description: Retrieve all VRF IP Reservations in the VRF call: metal-vrfs.findvrfipreservations with: id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - path: /v1/vrfs/{id}/routes name: vrfs-id-routes description: REST surface for vrfs-id-routes. operations: - method: GET name: getvrfroutes description: Retrieve all routes in the VRF call: metal-vrfs.getvrfroutes with: id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: POST name: createvrfroute description: Create a VRF route call: metal-vrfs.createvrfroute with: id: rest.id include: rest.include exclude: rest.exclude body: rest.body outputParameters: - type: object mapping: $. - path: /v1/vrfs/{vrf-id}/ips/{id} name: vrfs-vrf-id-ips-id description: REST surface for vrfs-vrf_id-ips-id. operations: - method: GET name: findvrfipreservation description: Retrieve all VRF IP Reservations in the VRF call: metal-vrfs.findvrfipreservation with: vrf_id: rest.vrf_id id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - type: mcp namespace: metal-vrfs-mcp port: 9090 transport: http description: MCP adapter for Metal API — VRFs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: delete-vrf-bgp-dynamic-neighbor description: Delete a VRF BGP Dynamic Neighbor hints: readOnly: false destructive: true idempotent: true call: metal-vrfs.deletebgpdynamicneighborbyid with: id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: retrieve-bgp-dynamic-neighbor description: Retrieve a BGP Dynamic Neighbor hints: readOnly: true destructive: false idempotent: true call: metal-vrfs.get with: id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: list-bgp-dynamic-neighbors description: List BGP Dynamic Neighbors hints: readOnly: true destructive: false idempotent: true call: metal-vrfs.getbgpdynamicneighbors with: id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: create-vrf-bgp-dynamic-neighbor description: Create a VRF BGP Dynamic Neighbor range hints: readOnly: false destructive: false idempotent: false call: metal-vrfs.createbgpdynamicneighbor with: id: tools.id include: tools.include exclude: tools.exclude body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-all-vrfs-project description: Retrieve all VRFs in the project hints: readOnly: true destructive: false idempotent: true call: metal-vrfs.findvrfs with: id: tools.id include: tools.include exclude: tools.exclude metro: tools.metro outputParameters: - type: object mapping: $. - name: create-new-vrf-specified-project description: Create a new VRF in the specified project hints: readOnly: false destructive: false idempotent: false call: metal-vrfs.createvrf with: id: tools.id include: tools.include exclude: tools.exclude body: tools.body outputParameters: - type: object mapping: $. - name: delete-vrf-route description: Delete a VRF Route hints: readOnly: false destructive: true idempotent: true call: metal-vrfs.deletevrfroutebyid with: id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: retrieve-vrf-route description: Retrieve a VRF Route hints: readOnly: true destructive: false idempotent: true call: metal-vrfs.findvrfroutebyid with: id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: update-vrf-route description: Update a VRF Route hints: readOnly: false destructive: false idempotent: true call: metal-vrfs.updatevrfroutebyid with: id: tools.id include: tools.include exclude: tools.exclude body: tools.body outputParameters: - type: object mapping: $. - name: delete-vrf description: Delete the VRF hints: readOnly: false destructive: true idempotent: true call: metal-vrfs.deletevrf with: id: tools.id outputParameters: - type: object mapping: $. - name: retrieve-vrf description: Retrieve a VRF hints: readOnly: true destructive: false idempotent: true call: metal-vrfs.findvrfbyid with: id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: update-vrf description: Update the VRF hints: readOnly: false destructive: false idempotent: true call: metal-vrfs.updatevrf with: id: tools.id include: tools.include exclude: tools.exclude body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-all-vrf-ip-reservations description: Retrieve all VRF IP Reservations in the VRF hints: readOnly: true destructive: false idempotent: true call: metal-vrfs.findvrfipreservations with: id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: retrieve-all-routes-vrf description: Retrieve all routes in the VRF hints: readOnly: true destructive: false idempotent: true call: metal-vrfs.getvrfroutes with: id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: create-vrf-route description: Create a VRF route hints: readOnly: false destructive: false idempotent: false call: metal-vrfs.createvrfroute with: id: tools.id include: tools.include exclude: tools.exclude body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-all-vrf-ip-reservations-2 description: Retrieve all VRF IP Reservations in the VRF hints: readOnly: true destructive: false idempotent: true call: metal-vrfs.findvrfipreservation with: vrf_id: tools.vrf_id id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $.