naftiko: 1.0.0-alpha2 info: label: Pulumi APIs — StackPolicy description: 'Pulumi APIs — StackPolicy. 2 operations. Lead operation: GetStackPolicyGroups. Self-contained Naftiko capability covering one Pulumi business surface.' tags: - Pulumi - StackPolicy created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PULUMI_API_KEY: PULUMI_API_KEY capability: consumes: - type: http namespace: pulumi-stackpolicy baseUri: '' description: Pulumi APIs — StackPolicy business capability. Self-contained, no shared references. resources: - name: api-stacks-orgName-projectName-stackName-policygroups path: /api/stacks/{orgName}/{projectName}/{stackName}/policygroups operations: - name: getstackpolicygroups method: GET description: GetStackPolicyGroups outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgName in: path type: string description: The organization name required: true - name: projectName in: path type: string description: The project name required: true - name: stackName in: path type: string description: The stack name required: true - name: api-stacks-orgName-projectName-stackName-policypacks path: /api/stacks/{orgName}/{projectName}/{stackName}/policypacks operations: - name: getstackpolicypacks method: GET description: GetStackPolicyPacks outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgName in: path type: string description: The organization name required: true - name: projectName in: path type: string description: The project name required: true - name: stackName in: path type: string description: The stack name required: true - name: mode in: query type: string description: Filter by policy group enforcement mode ('audit' or 'preventative') exposes: - type: rest namespace: pulumi-stackpolicy-rest port: 8080 description: REST adapter for Pulumi APIs — StackPolicy. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/stacks/{orgname}/{projectname}/{stackname}/policygroups name: api-stacks-orgname-projectname-stackname-policygroups description: REST surface for api-stacks-orgName-projectName-stackName-policygroups. operations: - method: GET name: getstackpolicygroups description: GetStackPolicyGroups call: pulumi-stackpolicy.getstackpolicygroups with: orgName: rest.orgName projectName: rest.projectName stackName: rest.stackName outputParameters: - type: object mapping: $. - path: /v1/api/stacks/{orgname}/{projectname}/{stackname}/policypacks name: api-stacks-orgname-projectname-stackname-policypacks description: REST surface for api-stacks-orgName-projectName-stackName-policypacks. operations: - method: GET name: getstackpolicypacks description: GetStackPolicyPacks call: pulumi-stackpolicy.getstackpolicypacks with: orgName: rest.orgName projectName: rest.projectName stackName: rest.stackName mode: rest.mode outputParameters: - type: object mapping: $. - type: mcp namespace: pulumi-stackpolicy-mcp port: 9090 transport: http description: MCP adapter for Pulumi APIs — StackPolicy. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: getstackpolicygroups description: GetStackPolicyGroups hints: readOnly: true destructive: false idempotent: true call: pulumi-stackpolicy.getstackpolicygroups with: orgName: tools.orgName projectName: tools.projectName stackName: tools.stackName outputParameters: - type: object mapping: $. - name: getstackpolicypacks description: GetStackPolicyPacks hints: readOnly: true destructive: false idempotent: true call: pulumi-stackpolicy.getstackpolicypacks with: orgName: tools.orgName projectName: tools.projectName stackName: tools.stackName mode: tools.mode outputParameters: - type: object mapping: $.