naftiko: 1.0.0-alpha2 info: label: Metal API — Interconnections description: 'Metal API — Interconnections. 15 operations. Lead operation: Delete interconnection. Self-contained Naftiko capability covering one Equinix business surface.' tags: - Equinix - Interconnections created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: EQUINIX_API_KEY: EQUINIX_API_KEY capability: consumes: - type: http namespace: metal-interconnections baseUri: https://api.equinix.com/metal/v1 description: Metal API — Interconnections business capability. Self-contained, no shared references. resources: - name: connections-connection_id path: /connections/{connection_id} operations: - name: deleteinterconnection method: DELETE description: Delete interconnection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: connection_id in: path type: string description: Interconnection 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: getinterconnection method: GET description: Get interconnection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: connection_id in: path type: string description: Interconnection 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: updateinterconnection method: PUT description: Update interconnection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: connection_id in: path type: string description: Interconnection 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: connections-connection_id-ports path: /connections/{connection_id}/ports operations: - name: listinterconnectionports method: GET description: List a interconnection's ports outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: connection_id in: path type: string description: UUID of the interconnection required: true - name: connections-connection_id-ports-id path: /connections/{connection_id}/ports/{id} operations: - name: getinterconnectionport method: GET description: Get a interconnection port outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: connection_id in: path type: string description: UUID of the interconnection required: true - 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: exclude in: query type: array description: Nested attributes to exclude. Excluded objects will return only the href - name: connections-connection_id-ports-port_id-virtual-circuits path: /connections/{connection_id}/ports/{port_id}/virtual-circuits operations: - name: listinterconnectionportvirtualcircuits method: GET description: List a interconnection port's virtual circuits outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: connection_id in: path type: string description: UUID of the interconnection required: true - name: port_id in: path type: string description: UUID of the interconnection port 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: createinterconnectionportvirtualcircuit method: POST description: Create a new Virtual Circuit outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: connection_id in: path type: string description: UUID of the interconnection required: true - name: port_id in: path type: string description: UUID of the interconnection port required: true - name: body in: body type: object description: Request body (JSON). required: true - name: connections-connection_id-virtual-circuits path: /connections/{connection_id}/virtual-circuits operations: - name: listinterconnectionvirtualcircuits method: GET description: List a interconnection's virtual circuits outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: connection_id in: path type: string description: UUID of the interconnection required: true - name: organizations-organization_id-connections path: /organizations/{organization_id}/connections operations: - name: organizationlistinterconnections method: GET description: List organization connections outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organization_id in: path type: string description: UUID of the organization 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: createorganizationinterconnection method: POST description: Request a new interconnection for the organization outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organization_id in: path type: string description: UUID of the organization 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: false - name: projects-project_id-connections path: /projects/{project_id}/connections operations: - name: projectlistinterconnections method: GET description: List project connections outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: project_id in: path type: string description: UUID of the project 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: page in: query type: integer description: Page to return - name: per_page in: query type: integer description: Items returned per page - name: createprojectinterconnection method: POST description: Request a new interconnection for the project's organization outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: project_id in: path type: string description: UUID of the project 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: false - name: virtual-circuits-id path: /virtual-circuits/{id} operations: - name: deletevirtualcircuit method: DELETE description: Delete a virtual circuit outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Virtual Circuit 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: getvirtualcircuit method: GET description: Get a virtual circuit outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Virtual Circuit 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: updatevirtualcircuit method: PUT description: Update a virtual circuit outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Virtual Circuit 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-interconnections-rest port: 8080 description: REST adapter for Metal API — Interconnections. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/connections/{connection-id} name: connections-connection-id description: REST surface for connections-connection_id. operations: - method: DELETE name: deleteinterconnection description: Delete interconnection call: metal-interconnections.deleteinterconnection with: connection_id: rest.connection_id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: GET name: getinterconnection description: Get interconnection call: metal-interconnections.getinterconnection with: connection_id: rest.connection_id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: PUT name: updateinterconnection description: Update interconnection call: metal-interconnections.updateinterconnection with: connection_id: rest.connection_id include: rest.include exclude: rest.exclude body: rest.body outputParameters: - type: object mapping: $. - path: /v1/connections/{connection-id}/ports name: connections-connection-id-ports description: REST surface for connections-connection_id-ports. operations: - method: GET name: listinterconnectionports description: List a interconnection's ports call: metal-interconnections.listinterconnectionports with: connection_id: rest.connection_id outputParameters: - type: object mapping: $. - path: /v1/connections/{connection-id}/ports/{id} name: connections-connection-id-ports-id description: REST surface for connections-connection_id-ports-id. operations: - method: GET name: getinterconnectionport description: Get a interconnection port call: metal-interconnections.getinterconnectionport with: connection_id: rest.connection_id id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - path: /v1/connections/{connection-id}/ports/{port-id}/virtual-circuits name: connections-connection-id-ports-port-id-virtual-circuits description: REST surface for connections-connection_id-ports-port_id-virtual-circuits. operations: - method: GET name: listinterconnectionportvirtualcircuits description: List a interconnection port's virtual circuits call: metal-interconnections.listinterconnectionportvirtualcircuits with: connection_id: rest.connection_id port_id: rest.port_id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: POST name: createinterconnectionportvirtualcircuit description: Create a new Virtual Circuit call: metal-interconnections.createinterconnectionportvirtualcircuit with: connection_id: rest.connection_id port_id: rest.port_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/connections/{connection-id}/virtual-circuits name: connections-connection-id-virtual-circuits description: REST surface for connections-connection_id-virtual-circuits. operations: - method: GET name: listinterconnectionvirtualcircuits description: List a interconnection's virtual circuits call: metal-interconnections.listinterconnectionvirtualcircuits with: connection_id: rest.connection_id outputParameters: - type: object mapping: $. - path: /v1/organizations/{organization-id}/connections name: organizations-organization-id-connections description: REST surface for organizations-organization_id-connections. operations: - method: GET name: organizationlistinterconnections description: List organization connections call: metal-interconnections.organizationlistinterconnections with: organization_id: rest.organization_id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: POST name: createorganizationinterconnection description: Request a new interconnection for the organization call: metal-interconnections.createorganizationinterconnection with: organization_id: rest.organization_id include: rest.include exclude: rest.exclude body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/connections name: projects-project-id-connections description: REST surface for projects-project_id-connections. operations: - method: GET name: projectlistinterconnections description: List project connections call: metal-interconnections.projectlistinterconnections with: project_id: rest.project_id include: rest.include exclude: rest.exclude page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - method: POST name: createprojectinterconnection description: Request a new interconnection for the project's organization call: metal-interconnections.createprojectinterconnection with: project_id: rest.project_id include: rest.include exclude: rest.exclude body: rest.body outputParameters: - type: object mapping: $. - path: /v1/virtual-circuits/{id} name: virtual-circuits-id description: REST surface for virtual-circuits-id. operations: - method: DELETE name: deletevirtualcircuit description: Delete a virtual circuit call: metal-interconnections.deletevirtualcircuit with: id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: GET name: getvirtualcircuit description: Get a virtual circuit call: metal-interconnections.getvirtualcircuit with: id: rest.id include: rest.include exclude: rest.exclude outputParameters: - type: object mapping: $. - method: PUT name: updatevirtualcircuit description: Update a virtual circuit call: metal-interconnections.updatevirtualcircuit with: id: rest.id include: rest.include exclude: rest.exclude body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: metal-interconnections-mcp port: 9090 transport: http description: MCP adapter for Metal API — Interconnections. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: delete-interconnection description: Delete interconnection hints: readOnly: false destructive: true idempotent: true call: metal-interconnections.deleteinterconnection with: connection_id: tools.connection_id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: get-interconnection description: Get interconnection hints: readOnly: true destructive: false idempotent: true call: metal-interconnections.getinterconnection with: connection_id: tools.connection_id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: update-interconnection description: Update interconnection hints: readOnly: false destructive: false idempotent: true call: metal-interconnections.updateinterconnection with: connection_id: tools.connection_id include: tools.include exclude: tools.exclude body: tools.body outputParameters: - type: object mapping: $. - name: list-interconnection-s-ports description: List a interconnection's ports hints: readOnly: true destructive: false idempotent: true call: metal-interconnections.listinterconnectionports with: connection_id: tools.connection_id outputParameters: - type: object mapping: $. - name: get-interconnection-port description: Get a interconnection port hints: readOnly: true destructive: false idempotent: true call: metal-interconnections.getinterconnectionport with: connection_id: tools.connection_id id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: list-interconnection-port-s-virtual-circuits description: List a interconnection port's virtual circuits hints: readOnly: true destructive: false idempotent: true call: metal-interconnections.listinterconnectionportvirtualcircuits with: connection_id: tools.connection_id port_id: tools.port_id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: create-new-virtual-circuit description: Create a new Virtual Circuit hints: readOnly: false destructive: false idempotent: false call: metal-interconnections.createinterconnectionportvirtualcircuit with: connection_id: tools.connection_id port_id: tools.port_id body: tools.body outputParameters: - type: object mapping: $. - name: list-interconnection-s-virtual-circuits description: List a interconnection's virtual circuits hints: readOnly: true destructive: false idempotent: true call: metal-interconnections.listinterconnectionvirtualcircuits with: connection_id: tools.connection_id outputParameters: - type: object mapping: $. - name: list-organization-connections description: List organization connections hints: readOnly: true destructive: false idempotent: true call: metal-interconnections.organizationlistinterconnections with: organization_id: tools.organization_id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: request-new-interconnection-organization description: Request a new interconnection for the organization hints: readOnly: false destructive: false idempotent: false call: metal-interconnections.createorganizationinterconnection with: organization_id: tools.organization_id include: tools.include exclude: tools.exclude body: tools.body outputParameters: - type: object mapping: $. - name: list-project-connections description: List project connections hints: readOnly: true destructive: false idempotent: true call: metal-interconnections.projectlistinterconnections with: project_id: tools.project_id include: tools.include exclude: tools.exclude page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $. - name: request-new-interconnection-project-s-organization description: Request a new interconnection for the project's organization hints: readOnly: false destructive: false idempotent: false call: metal-interconnections.createprojectinterconnection with: project_id: tools.project_id include: tools.include exclude: tools.exclude body: tools.body outputParameters: - type: object mapping: $. - name: delete-virtual-circuit description: Delete a virtual circuit hints: readOnly: false destructive: true idempotent: true call: metal-interconnections.deletevirtualcircuit with: id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: get-virtual-circuit description: Get a virtual circuit hints: readOnly: true destructive: false idempotent: true call: metal-interconnections.getvirtualcircuit with: id: tools.id include: tools.include exclude: tools.exclude outputParameters: - type: object mapping: $. - name: update-virtual-circuit description: Update a virtual circuit hints: readOnly: false destructive: false idempotent: true call: metal-interconnections.updatevirtualcircuit with: id: tools.id include: tools.include exclude: tools.exclude body: tools.body outputParameters: - type: object mapping: $.