naftiko: 1.0.0-alpha2 info: label: U.S. EPA WaterSense — Custom Search description: 'Custom Search. 3 operations. Lead operation: Multi Criteria Search Criteria. Self-contained Naftiko capability covering one EPA business surface.' tags: - EPA - Custom Search created: '2026-05-29' modified: '2026-05-29' binds: - namespace: env keys: EPA_USERNAME: EPA_USERNAME capability: consumes: - type: http namespace: elg-search-custom-search baseUri: https://owapps-stage.app.cloud.gov/elg description: U.S. EPA WaterSense — Custom Search business capability. Self-contained, no shared references. authentication: type: basic username: '{{env.EPA_USERNAME}}' password: '{{env.EPA_PASSWORD}}' resources: - name: api-multicriteriasearchcriteria path: /api/multiCriteriaSearchCriteria operations: - name: getapimulticriteriasearchcriteria method: GET description: Multi Criteria Search Criteria inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-multicriteriasearch path: /api/multiCriteriaSearch operations: - name: getapimulticriteriasearch method: GET description: Multi Criteria Search inputParameters: - name: pointSourceCategoryCode in: query type: integer required: false description: Placeholder. - name: sicCode in: query type: integer required: false description: Placeholder. - name: naicsCode in: query type: integer required: false description: Placeholder. - name: pollutantId in: query type: string required: false description: Placeholder. - name: pollutantGroupId in: query type: integer required: false description: Placeholder. - name: treatmentTechnologyCode in: query type: string required: false description: Placeholder. - name: treatmentTechnologyGroup in: query type: string required: false description: Placeholder. - name: rangeLow in: query type: number required: false description: Placeholder. - name: rangeHigh in: query type: number required: false description: Placeholder. - name: rangeUnitCode in: query type: string required: false description: Placeholder. - name: filterTreatmentId in: query type: integer required: false description: Placeholder. - name: filterPointSourceCategoryCode in: query type: integer required: false description: Placeholder. - name: filterPollutantId in: query type: string required: false description: Placeholder. - name: download in: query type: string required: false description: Placeholder. - name: sortCol in: query type: string required: false description: Placeholder. - name: sortDir in: query type: string required: false description: Placeholder. - name: offset in: query type: integer required: false description: Placeholder. - name: limit in: query type: integer required: false description: Placeholder. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-keywordsearch path: /api/keywordSearch operations: - name: getapikeywordsearch method: GET description: Keyword Search inputParameters: - name: keyword in: query type: string required: false description: Placeholder. - name: operator in: query type: string required: false description: Placeholder. - name: download in: query type: string required: false description: Placeholder. - name: sortCol in: query type: string required: false description: Placeholder. - name: sortDir in: query type: string required: false description: Placeholder. - name: offset in: query type: integer required: false description: Placeholder. - name: limit in: query type: integer required: false description: Placeholder. outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: elg-search-custom-search-rest port: 8080 description: REST adapter for U.S. EPA WaterSense — Custom Search. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/multicriteriasearchcriteria name: api-multicriteriasearchcriteria description: REST surface for Multi Criteria Search Criteria. operations: - method: GET name: getapimulticriteriasearchcriteria description: Multi Criteria Search Criteria call: elg-search-custom-search.getapimulticriteriasearchcriteria with: {} outputParameters: - type: object mapping: $. - path: /v1/api/multicriteriasearch name: api-multicriteriasearch description: REST surface for Multi Criteria Search. operations: - method: GET name: getapimulticriteriasearch description: Multi Criteria Search call: elg-search-custom-search.getapimulticriteriasearch with: pointSourceCategoryCode: rest.pointSourceCategoryCode sicCode: rest.sicCode naicsCode: rest.naicsCode pollutantId: rest.pollutantId pollutantGroupId: rest.pollutantGroupId treatmentTechnologyCode: rest.treatmentTechnologyCode treatmentTechnologyGroup: rest.treatmentTechnologyGroup rangeLow: rest.rangeLow rangeHigh: rest.rangeHigh rangeUnitCode: rest.rangeUnitCode filterTreatmentId: rest.filterTreatmentId filterPointSourceCategoryCode: rest.filterPointSourceCategoryCode filterPollutantId: rest.filterPollutantId download: rest.download sortCol: rest.sortCol sortDir: rest.sortDir offset: rest.offset limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/api/keywordsearch name: api-keywordsearch description: REST surface for Keyword Search. operations: - method: GET name: getapikeywordsearch description: Keyword Search call: elg-search-custom-search.getapikeywordsearch with: keyword: rest.keyword operator: rest.operator download: rest.download sortCol: rest.sortCol sortDir: rest.sortDir offset: rest.offset limit: rest.limit outputParameters: - type: object mapping: $. - type: mcp namespace: elg-search-custom-search-mcp port: 9090 transport: http description: MCP adapter for U.S. EPA WaterSense — Custom Search. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: multi-criteria-search-criteria description: Multi Criteria Search Criteria hints: readOnly: true destructive: false idempotent: true call: elg-search-custom-search.getapimulticriteriasearchcriteria with: {} outputParameters: - type: object mapping: $. - name: multi-criteria-search description: Multi Criteria Search hints: readOnly: true destructive: false idempotent: true call: elg-search-custom-search.getapimulticriteriasearch with: pointSourceCategoryCode: tools.pointSourceCategoryCode sicCode: tools.sicCode naicsCode: tools.naicsCode pollutantId: tools.pollutantId pollutantGroupId: tools.pollutantGroupId treatmentTechnologyCode: tools.treatmentTechnologyCode treatmentTechnologyGroup: tools.treatmentTechnologyGroup rangeLow: tools.rangeLow rangeHigh: tools.rangeHigh rangeUnitCode: tools.rangeUnitCode filterTreatmentId: tools.filterTreatmentId filterPointSourceCategoryCode: tools.filterPointSourceCategoryCode filterPollutantId: tools.filterPollutantId download: tools.download sortCol: tools.sortCol sortDir: tools.sortDir offset: tools.offset limit: tools.limit outputParameters: - type: object mapping: $. - name: keyword-search description: Keyword Search hints: readOnly: true destructive: false idempotent: true call: elg-search-custom-search.getapikeywordsearch with: keyword: tools.keyword operator: tools.operator download: tools.download sortCol: tools.sortCol sortDir: tools.sortDir offset: tools.offset limit: tools.limit outputParameters: - type: object mapping: $.