naftiko: 1.0.0-alpha2 info: label: Metal API — SpotMarket description: 'Metal API — SpotMarket. 7 operations. Lead operation: Get current spot market prices. Self-contained Naftiko capability covering one Equinix business surface.' tags: - Equinix - SpotMarket created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: EQUINIX_API_KEY: EQUINIX_API_KEY capability: consumes: - type: http namespace: metal-spotmarket baseUri: https://api.equinix.com/metal/v1 description: Metal API — SpotMarket business capability. Self-contained, no shared references. resources: - name: market-spot-prices path: /market/spot/prices operations: - name: findspotmarketprices method: GET description: Get current spot market prices outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: facility in: query type: string description: Facility to check spot market prices - name: plan in: query type: string description: Plan to check spot market prices - name: market-spot-prices-history path: /market/spot/prices/history operations: - name: findspotmarketpriceshistory method: GET description: Get spot market prices for a given period of time outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: facility in: query type: string description: Facility to check spot market prices required: true - name: plan in: query type: string description: Plan to check spot market prices required: true - name: metro in: query type: string description: Metro to check spot market price history - 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: market-spot-prices-metros path: /market/spot/prices/metros operations: - name: findmetrospotmarketprices method: GET description: Get current spot market prices for metros outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: metro in: query type: string description: Metro to filter spot market prices - name: plan in: query type: string description: Plan to filter spot market prices - name: projects-id-spot-market-requests path: /projects/{id}/spot-market-requests operations: - name: listspotmarketrequests method: GET description: List spot market requests outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Project UUID required: true - name: createspotmarketrequest method: POST description: Create a spot market request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Project UUID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: spot-market-requests-id path: /spot-market-requests/{id} operations: - name: deletespotmarketrequest method: DELETE description: Delete the spot market request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: SpotMarketRequest UUID required: true - name: force_termination in: query type: boolean description: Terminate associated spot instances - name: findspotmarketrequestbyid method: GET description: Retrieve a spot market request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: SpotMarketRequest UUID required: true - name: include in: query type: array description: Nested attributes to include. Included objects will return their full authentication: type: apikey key: X-Auth-Token value: '{{env.EQUINIX_API_KEY}}' placement: header exposes: - type: rest namespace: metal-spotmarket-rest port: 8080 description: REST adapter for Metal API — SpotMarket. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/market/spot/prices name: market-spot-prices description: REST surface for market-spot-prices. operations: - method: GET name: findspotmarketprices description: Get current spot market prices call: metal-spotmarket.findspotmarketprices with: facility: rest.facility plan: rest.plan outputParameters: - type: object mapping: $. - path: /v1/market/spot/prices/history name: market-spot-prices-history description: REST surface for market-spot-prices-history. operations: - method: GET name: findspotmarketpriceshistory description: Get spot market prices for a given period of time call: metal-spotmarket.findspotmarketpriceshistory with: facility: rest.facility plan: rest.plan metro: rest.metro from: rest.from until: rest.until outputParameters: - type: object mapping: $. - path: /v1/market/spot/prices/metros name: market-spot-prices-metros description: REST surface for market-spot-prices-metros. operations: - method: GET name: findmetrospotmarketprices description: Get current spot market prices for metros call: metal-spotmarket.findmetrospotmarketprices with: metro: rest.metro plan: rest.plan outputParameters: - type: object mapping: $. - path: /v1/projects/{id}/spot-market-requests name: projects-id-spot-market-requests description: REST surface for projects-id-spot-market-requests. operations: - method: GET name: listspotmarketrequests description: List spot market requests call: metal-spotmarket.listspotmarketrequests with: id: rest.id outputParameters: - type: object mapping: $. - method: POST name: createspotmarketrequest description: Create a spot market request call: metal-spotmarket.createspotmarketrequest with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/spot-market-requests/{id} name: spot-market-requests-id description: REST surface for spot-market-requests-id. operations: - method: DELETE name: deletespotmarketrequest description: Delete the spot market request call: metal-spotmarket.deletespotmarketrequest with: id: rest.id force_termination: rest.force_termination outputParameters: - type: object mapping: $. - method: GET name: findspotmarketrequestbyid description: Retrieve a spot market request call: metal-spotmarket.findspotmarketrequestbyid with: id: rest.id include: rest.include outputParameters: - type: object mapping: $. - type: mcp namespace: metal-spotmarket-mcp port: 9090 transport: http description: MCP adapter for Metal API — SpotMarket. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-current-spot-market-prices description: Get current spot market prices hints: readOnly: true destructive: false idempotent: true call: metal-spotmarket.findspotmarketprices with: facility: tools.facility plan: tools.plan outputParameters: - type: object mapping: $. - name: get-spot-market-prices-given description: Get spot market prices for a given period of time hints: readOnly: true destructive: false idempotent: true call: metal-spotmarket.findspotmarketpriceshistory with: facility: tools.facility plan: tools.plan metro: tools.metro from: tools.from until: tools.until outputParameters: - type: object mapping: $. - name: get-current-spot-market-prices-2 description: Get current spot market prices for metros hints: readOnly: true destructive: false idempotent: true call: metal-spotmarket.findmetrospotmarketprices with: metro: tools.metro plan: tools.plan outputParameters: - type: object mapping: $. - name: list-spot-market-requests description: List spot market requests hints: readOnly: true destructive: false idempotent: true call: metal-spotmarket.listspotmarketrequests with: id: tools.id outputParameters: - type: object mapping: $. - name: create-spot-market-request description: Create a spot market request hints: readOnly: false destructive: false idempotent: false call: metal-spotmarket.createspotmarketrequest with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: delete-spot-market-request description: Delete the spot market request hints: readOnly: false destructive: true idempotent: true call: metal-spotmarket.deletespotmarketrequest with: id: tools.id force_termination: tools.force_termination outputParameters: - type: object mapping: $. - name: retrieve-spot-market-request description: Retrieve a spot market request hints: readOnly: true destructive: false idempotent: true call: metal-spotmarket.findspotmarketrequestbyid with: id: tools.id include: tools.include outputParameters: - type: object mapping: $.