naftiko: 1.0.0-alpha2 info: label: Amazon EC2 API — Instances description: 'Amazon EC2 API — Instances. 7 operations. Lead operation: Amazon EC2 Describe Instance Status. Self-contained Naftiko capability covering one Amazon Ec2 business surface.' tags: - Amazon Ec2 - Instances created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: AMAZON_EC2_API_KEY: AMAZON_EC2_API_KEY capability: consumes: - type: http namespace: amazon-ec2-instances baseUri: https://ec2.{region}.amazonaws.com description: Amazon EC2 API — Instances business capability. Self-contained, no shared references. resources: - name: ?Action=DescribeInstanceStatus path: /?Action=DescribeInstanceStatus operations: - name: describeinstancestatus method: GET description: Amazon EC2 Describe Instance Status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InstanceId in: query type: array description: The instance IDs to describe - name: IncludeAllInstances in: query type: boolean description: Include all instances regardless of running state - name: ?Action=DescribeInstances path: /?Action=DescribeInstances operations: - name: describeinstances method: GET description: Amazon EC2 Describe EC2 Instances outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InstanceId in: query type: array description: The instance IDs to describe - name: Filter in: query type: array description: Filters to apply to the results - name: MaxResults in: query type: integer description: Maximum number of results to return - name: NextToken in: query type: string description: Token for the next page of results - name: ?Action=RebootInstances path: /?Action=RebootInstances operations: - name: rebootinstances method: GET description: Amazon EC2 Reboot Instances outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InstanceId in: query type: array description: The IDs of the instances to reboot required: true - name: ?Action=RunInstances path: /?Action=RunInstances operations: - name: runinstances method: GET description: Amazon EC2 Launch EC2 Instances outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: MinCount in: query type: integer description: The minimum number of instances to launch required: true - name: MaxCount in: query type: integer description: The maximum number of instances to launch required: true - name: KeyName in: query type: string description: The name of the key pair to use for SSH access - name: SecurityGroupId in: query type: array description: The IDs of the security groups - name: SubnetId in: query type: string description: The ID of the subnet to launch the instance into - name: ?Action=StartInstances path: /?Action=StartInstances operations: - name: startinstances method: GET description: Amazon EC2 Start Stopped Instances outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InstanceId in: query type: array description: The IDs of the instances to start required: true - name: ?Action=StopInstances path: /?Action=StopInstances operations: - name: stopinstances method: GET description: Amazon EC2 Stop Running Instances outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InstanceId in: query type: array description: The IDs of the instances to stop required: true - name: Force in: query type: boolean description: Forces the instances to stop without graceful shutdown - name: ?Action=TerminateInstances path: /?Action=TerminateInstances operations: - name: terminateinstances method: GET description: Amazon EC2 Terminate Instances outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InstanceId in: query type: array description: The IDs of the instances to terminate required: true authentication: type: apikey key: Authorization value: '{{env.AMAZON_EC2_API_KEY}}' placement: header exposes: - type: rest namespace: amazon-ec2-instances-rest port: 8080 description: REST adapter for Amazon EC2 API — Instances. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/action-describeinstancestatus name: action-describeinstancestatus description: REST surface for ?Action=DescribeInstanceStatus. operations: - method: GET name: describeinstancestatus description: Amazon EC2 Describe Instance Status call: amazon-ec2-instances.describeinstancestatus with: InstanceId: rest.InstanceId IncludeAllInstances: rest.IncludeAllInstances outputParameters: - type: object mapping: $. - path: /v1/action-describeinstances name: action-describeinstances description: REST surface for ?Action=DescribeInstances. operations: - method: GET name: describeinstances description: Amazon EC2 Describe EC2 Instances call: amazon-ec2-instances.describeinstances with: InstanceId: rest.InstanceId Filter: rest.Filter MaxResults: rest.MaxResults NextToken: rest.NextToken outputParameters: - type: object mapping: $. - path: /v1/action-rebootinstances name: action-rebootinstances description: REST surface for ?Action=RebootInstances. operations: - method: GET name: rebootinstances description: Amazon EC2 Reboot Instances call: amazon-ec2-instances.rebootinstances with: InstanceId: rest.InstanceId outputParameters: - type: object mapping: $. - path: /v1/action-runinstances name: action-runinstances description: REST surface for ?Action=RunInstances. operations: - method: GET name: runinstances description: Amazon EC2 Launch EC2 Instances call: amazon-ec2-instances.runinstances with: MinCount: rest.MinCount MaxCount: rest.MaxCount KeyName: rest.KeyName SecurityGroupId: rest.SecurityGroupId SubnetId: rest.SubnetId outputParameters: - type: object mapping: $. - path: /v1/action-startinstances name: action-startinstances description: REST surface for ?Action=StartInstances. operations: - method: GET name: startinstances description: Amazon EC2 Start Stopped Instances call: amazon-ec2-instances.startinstances with: InstanceId: rest.InstanceId outputParameters: - type: object mapping: $. - path: /v1/action-stopinstances name: action-stopinstances description: REST surface for ?Action=StopInstances. operations: - method: GET name: stopinstances description: Amazon EC2 Stop Running Instances call: amazon-ec2-instances.stopinstances with: InstanceId: rest.InstanceId Force: rest.Force outputParameters: - type: object mapping: $. - path: /v1/action-terminateinstances name: action-terminateinstances description: REST surface for ?Action=TerminateInstances. operations: - method: GET name: terminateinstances description: Amazon EC2 Terminate Instances call: amazon-ec2-instances.terminateinstances with: InstanceId: rest.InstanceId outputParameters: - type: object mapping: $. - type: mcp namespace: amazon-ec2-instances-mcp port: 9090 transport: http description: MCP adapter for Amazon EC2 API — Instances. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: amazon-ec2-describe-instance-status description: Amazon EC2 Describe Instance Status hints: readOnly: true destructive: false idempotent: true call: amazon-ec2-instances.describeinstancestatus with: InstanceId: tools.InstanceId IncludeAllInstances: tools.IncludeAllInstances outputParameters: - type: object mapping: $. - name: amazon-ec2-describe-ec2-instances description: Amazon EC2 Describe EC2 Instances hints: readOnly: true destructive: false idempotent: true call: amazon-ec2-instances.describeinstances with: InstanceId: tools.InstanceId Filter: tools.Filter MaxResults: tools.MaxResults NextToken: tools.NextToken outputParameters: - type: object mapping: $. - name: amazon-ec2-reboot-instances description: Amazon EC2 Reboot Instances hints: readOnly: true destructive: false idempotent: true call: amazon-ec2-instances.rebootinstances with: InstanceId: tools.InstanceId outputParameters: - type: object mapping: $. - name: amazon-ec2-launch-ec2-instances description: Amazon EC2 Launch EC2 Instances hints: readOnly: true destructive: false idempotent: true call: amazon-ec2-instances.runinstances with: MinCount: tools.MinCount MaxCount: tools.MaxCount KeyName: tools.KeyName SecurityGroupId: tools.SecurityGroupId SubnetId: tools.SubnetId outputParameters: - type: object mapping: $. - name: amazon-ec2-start-stopped-instances description: Amazon EC2 Start Stopped Instances hints: readOnly: true destructive: false idempotent: true call: amazon-ec2-instances.startinstances with: InstanceId: tools.InstanceId outputParameters: - type: object mapping: $. - name: amazon-ec2-stop-running-instances description: Amazon EC2 Stop Running Instances hints: readOnly: true destructive: false idempotent: true call: amazon-ec2-instances.stopinstances with: InstanceId: tools.InstanceId Force: tools.Force outputParameters: - type: object mapping: $. - name: amazon-ec2-terminate-instances description: Amazon EC2 Terminate Instances hints: readOnly: true destructive: false idempotent: true call: amazon-ec2-instances.terminateinstances with: InstanceId: tools.InstanceId outputParameters: - type: object mapping: $.