naftiko: 1.0.0-alpha2 info: label: Oracle Cloud Compute API — Instances description: 'Oracle Cloud Compute API — Instances. 6 operations. Lead operation: Oracle Cloud List Instances. Self-contained Naftiko capability covering one Oracle Cloud business surface.' tags: - Oracle Cloud - Instances created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: ORACLE_CLOUD_API_KEY: ORACLE_CLOUD_API_KEY capability: consumes: - type: http namespace: compute-instances baseUri: https://iaas.{region}.oraclecloud.com/20160918 description: Oracle Cloud Compute API — Instances business capability. Self-contained, no shared references. resources: - name: instances path: /instances operations: - name: listinstances method: GET description: Oracle Cloud List Instances outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: compartmentId in: query type: string description: The OCID of the compartment. required: true - name: availabilityDomain in: query type: string description: The name of the availability domain. - name: displayName in: query type: string description: A filter to return only resources matching the display name. - name: lifecycleState in: query type: string description: A filter to return only resources matching the lifecycle state. - name: limit in: query type: integer description: The maximum number of items to return per page. - name: page in: query type: string description: Pagination token from a previous list call. - name: launchinstance method: POST description: Oracle Cloud Launch Instance outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: instances-instanceId path: /instances/{instanceId} operations: - name: getinstance method: GET description: Oracle Cloud Get Instance outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: instanceId in: path type: string description: The OCID of the instance. required: true - name: updateinstance method: PUT description: Oracle Cloud Update Instance outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: instanceId in: path type: string description: The OCID of the instance. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: terminateinstance method: DELETE description: Oracle Cloud Terminate Instance outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: instanceId in: path type: string description: The OCID of the instance. required: true - name: preserveBootVolume in: query type: boolean description: Whether to preserve the boot volume when terminating. - name: instances-instanceId-actions-action path: /instances/{instanceId}/actions/{action} operations: - name: instanceaction method: POST description: Oracle Cloud Instance Action outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: instanceId in: path type: string description: The OCID of the instance. required: true - name: action in: path type: string description: The action to perform on the instance. required: true authentication: type: bearer token: '{{env.ORACLE_CLOUD_API_KEY}}' exposes: - type: rest namespace: compute-instances-rest port: 8080 description: REST adapter for Oracle Cloud Compute API — Instances. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/instances name: instances description: REST surface for instances. operations: - method: GET name: listinstances description: Oracle Cloud List Instances call: compute-instances.listinstances with: compartmentId: rest.compartmentId availabilityDomain: rest.availabilityDomain displayName: rest.displayName lifecycleState: rest.lifecycleState limit: rest.limit page: rest.page outputParameters: - type: object mapping: $. - method: POST name: launchinstance description: Oracle Cloud Launch Instance call: compute-instances.launchinstance with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/instances/{instanceid} name: instances-instanceid description: REST surface for instances-instanceId. operations: - method: GET name: getinstance description: Oracle Cloud Get Instance call: compute-instances.getinstance with: instanceId: rest.instanceId outputParameters: - type: object mapping: $. - method: PUT name: updateinstance description: Oracle Cloud Update Instance call: compute-instances.updateinstance with: instanceId: rest.instanceId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: terminateinstance description: Oracle Cloud Terminate Instance call: compute-instances.terminateinstance with: instanceId: rest.instanceId preserveBootVolume: rest.preserveBootVolume outputParameters: - type: object mapping: $. - path: /v1/instances/{instanceid}/actions/{action} name: instances-instanceid-actions-action description: REST surface for instances-instanceId-actions-action. operations: - method: POST name: instanceaction description: Oracle Cloud Instance Action call: compute-instances.instanceaction with: instanceId: rest.instanceId action: rest.action outputParameters: - type: object mapping: $. - type: mcp namespace: compute-instances-mcp port: 9090 transport: http description: MCP adapter for Oracle Cloud Compute API — Instances. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: oracle-cloud-list-instances description: Oracle Cloud List Instances hints: readOnly: true destructive: false idempotent: true call: compute-instances.listinstances with: compartmentId: tools.compartmentId availabilityDomain: tools.availabilityDomain displayName: tools.displayName lifecycleState: tools.lifecycleState limit: tools.limit page: tools.page outputParameters: - type: object mapping: $. - name: oracle-cloud-launch-instance description: Oracle Cloud Launch Instance hints: readOnly: false destructive: false idempotent: false call: compute-instances.launchinstance with: body: tools.body outputParameters: - type: object mapping: $. - name: oracle-cloud-get-instance description: Oracle Cloud Get Instance hints: readOnly: true destructive: false idempotent: true call: compute-instances.getinstance with: instanceId: tools.instanceId outputParameters: - type: object mapping: $. - name: oracle-cloud-update-instance description: Oracle Cloud Update Instance hints: readOnly: false destructive: false idempotent: true call: compute-instances.updateinstance with: instanceId: tools.instanceId body: tools.body outputParameters: - type: object mapping: $. - name: oracle-cloud-terminate-instance description: Oracle Cloud Terminate Instance hints: readOnly: false destructive: true idempotent: true call: compute-instances.terminateinstance with: instanceId: tools.instanceId preserveBootVolume: tools.preserveBootVolume outputParameters: - type: object mapping: $. - name: oracle-cloud-instance-action description: Oracle Cloud Instance Action hints: readOnly: false destructive: false idempotent: false call: compute-instances.instanceaction with: instanceId: tools.instanceId action: tools.action outputParameters: - type: object mapping: $.