naftiko: 1.0.0-alpha2 info: label: Pulumi APIs — RegistryPreview description: 'Pulumi APIs — RegistryPreview. 18 operations. Lead operation: ListPackages. Self-contained Naftiko capability covering one Pulumi business surface.' tags: - Pulumi - RegistryPreview created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PULUMI_API_KEY: PULUMI_API_KEY capability: consumes: - type: http namespace: pulumi-registrypreview baseUri: '' description: Pulumi APIs — RegistryPreview business capability. Self-contained, no shared references. resources: - name: api-preview-registry-packages path: /api/preview/registry/packages operations: - name: listpackagespreview method: GET description: ListPackages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: asc in: query type: boolean description: When true, sort results in ascending order - name: continuationToken in: query type: string description: Pagination token for retrieving the next page of results - name: limit in: query type: integer description: 'Results per page (default: 100)' - name: name in: query type: string description: Filter by specific package name - name: orgLogin in: query type: string description: Filter by owning organization - name: publisher in: query type: string description: Filter by publisher organization - name: sort in: query type: string description: Sort field for results - name: visibility in: query type: string description: Filter by visibility level - name: api-preview-registry-packages-source-publisher-name-versions path: /api/preview/registry/packages/{source}/{publisher}/{name}/versions operations: - name: postpublishpackageversionpreview method: POST description: PostPublishPackageVersion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The package source: ''pulumi'', ''opentofu'', or ''private''' required: true - name: publisher in: path type: string description: Organization that owns the package required: true - name: name in: path type: string description: The package name required: true - name: body in: body type: object description: Request body (JSON). required: false - name: api-preview-registry-packages-source-publisher-name-versions-version path: /api/preview/registry/packages/{source}/{publisher}/{name}/versions/{version} operations: - name: deletepublishpackageversionpreview method: DELETE description: DeletePublishPackageVersion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The package source: ''pulumi'', ''opentofu'', or ''private''' required: true - name: publisher in: path type: string description: Organization that owns the package required: true - name: name in: path type: string description: The package name required: true - name: version in: path type: string description: Semantic version string of the package version to delete required: true - name: getpackageversionpreview method: GET description: GetPackageVersion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The package source: ''pulumi'', ''opentofu'', or ''private''' required: true - name: publisher in: path type: string description: Organization that owns the package required: true - name: name in: path type: string description: The package name required: true - name: version in: path type: string description: Semantic version string or 'latest' required: true - name: api-preview-registry-packages-source-publisher-name-versions-version-complete path: /api/preview/registry/packages/{source}/{publisher}/{name}/versions/{version}/complete operations: - name: postpublishpackageversioncompletepreview method: POST description: PostPublishPackageVersionComplete outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The package source: ''pulumi'', ''opentofu'', or ''private''' required: true - name: publisher in: path type: string description: Organization that owns the package required: true - name: name in: path type: string description: The package name required: true - name: version in: path type: string description: Semantic version string of the package version to complete required: true - name: body in: body type: object description: Request body (JSON). required: false - name: api-preview-registry-policypacks path: /api/preview/registry/policypacks operations: - name: listpolicypackspreviewregistry method: GET description: ListPolicyPacks outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: access in: query type: string description: Filter by access level - name: orgLogin in: query type: string description: Required. Filter by owning organization - name: listpolicypackspreviewregistrypost method: POST description: ListPolicyPacks outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: api-preview-registry-policypacks-source-publisher-name path: /api/preview/registry/policypacks/{source}/{publisher}/{name} operations: - name: deletepolicypackpreviewregistrypolicypacks method: DELETE description: DeletePolicyPack outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The policy pack source: ''private''' required: true - name: publisher in: path type: string description: Organization that owns the policy pack required: true - name: name in: path type: string description: The policy pack name required: true - name: api-preview-registry-policypacks-source-publisher-name-versions path: /api/preview/registry/policypacks/{source}/{publisher}/{name}/versions operations: - name: listpolicypackversions method: GET description: ListPolicyPackVersions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The policy pack source: ''private''' required: true - name: publisher in: path type: string description: Organization that owns the policy pack required: true - name: name in: path type: string description: The policy pack name required: true - name: postpublishpolicypackversion method: POST description: PostPublishPolicyPackVersion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The policy pack source: ''private''' required: true - name: publisher in: path type: string description: Organization that owns the policy pack required: true - name: name in: path type: string description: The policy pack name required: true - name: api-preview-registry-policypacks-source-publisher-name-versions-version path: /api/preview/registry/policypacks/{source}/{publisher}/{name}/versions/{version} operations: - name: deletepolicypackpreviewregistrypolicypacksversions method: DELETE description: DeletePolicyPack outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The policy pack source: ''private''' required: true - name: publisher in: path type: string description: Organization that owns the policy pack required: true - name: name in: path type: string description: The policy pack name required: true - name: version in: path type: string description: Semantic version string of the policy pack version to delete required: true - name: getpolicypackversion method: GET description: GetPolicyPackVersion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The policy pack source: ''private''' required: true - name: publisher in: path type: string description: Organization that owns the policy pack required: true - name: name in: path type: string description: The policy pack name required: true - name: version in: path type: string description: Semantic version string or 'latest' required: true - name: api-preview-registry-policypacks-source-publisher-name-versions-version-complete path: /api/preview/registry/policypacks/{source}/{publisher}/{name}/versions/{version}/complete operations: - name: postpublishpolicypackversioncomplete method: POST description: PostPublishPolicyPackVersionComplete outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The policy pack source: ''private''' required: true - name: publisher in: path type: string description: Organization that owns the policy pack required: true - name: name in: path type: string description: The policy pack name required: true - name: version in: path type: string description: Semantic version string of the policy pack version to complete required: true - name: api-preview-registry-templates path: /api/preview/registry/templates operations: - name: listtemplatespreview method: GET description: ListTemplates outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: continuationToken in: query type: string description: Pagination token for retrieving the next page of results - name: limit in: query type: integer description: 'Maximum number of results to return (default: 100)' - name: name in: query type: string description: Filter by specific template name - name: orgLogin in: query type: string description: Filter by owning organization - name: search in: query type: string description: 'Search query matching template name, display name, description, metadata values, or runtime language. Multiple space-separated terms require all terms to match ' - name: api-preview-registry-templates-source-publisher-name-versions path: /api/preview/registry/templates/{source}/{publisher}/{name}/versions operations: - name: postpublishtemplateversionpreview method: POST description: PostPublishTemplateVersion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The template source: ''private'', ''github'', or ''gitlab''' required: true - name: publisher in: path type: string description: Organization that owns the template required: true - name: name in: path type: string description: The template name required: true - name: body in: body type: object description: Request body (JSON). required: false - name: api-preview-registry-templates-source-publisher-name-versions-version path: /api/preview/registry/templates/{source}/{publisher}/{name}/versions/{version} operations: - name: deletetemplateversionpreview method: DELETE description: DeleteTemplateVersion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The template source: ''private'', ''github'', or ''gitlab''' required: true - name: publisher in: path type: string description: Organization that owns the template required: true - name: name in: path type: string description: The template name required: true - name: version in: path type: string description: Semantic version string of the template version to delete required: true - name: force in: query type: boolean description: When true, allows deletion of the final remaining template version - name: gettemplateversionpreview method: GET description: GetTemplateVersion outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The template source: ''private'', ''github'', or ''gitlab''' required: true - name: publisher in: path type: string description: Organization that owns the template required: true - name: name in: path type: string description: The template name required: true - name: version in: path type: string description: Semantic version string or 'latest' required: true - name: api-preview-registry-templates-source-publisher-name-versions-version-complete path: /api/preview/registry/templates/{source}/{publisher}/{name}/versions/{version}/complete operations: - name: postpublishtemplateversioncompletepreview method: POST description: PostPublishTemplateVersionComplete outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: source in: path type: string description: 'The template source: ''private'', ''github'', or ''gitlab''' required: true - name: publisher in: path type: string description: Organization that owns the template required: true - name: name in: path type: string description: The template name required: true - name: version in: path type: string description: Semantic version string of the template version to complete required: true - name: body in: body type: object description: Request body (JSON). required: false exposes: - type: rest namespace: pulumi-registrypreview-rest port: 8080 description: REST adapter for Pulumi APIs — RegistryPreview. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/registry/packages name: api-preview-registry-packages description: REST surface for api-preview-registry-packages. operations: - method: GET name: listpackagespreview description: ListPackages call: pulumi-registrypreview.listpackagespreview with: asc: rest.asc continuationToken: rest.continuationToken limit: rest.limit name: rest.name orgLogin: rest.orgLogin publisher: rest.publisher sort: rest.sort visibility: rest.visibility outputParameters: - type: object mapping: $. - path: /v1/registry/packages/{source}/{publisher}/{name}/versions name: api-preview-registry-packages-source-publisher-name-versions description: REST surface for api-preview-registry-packages-source-publisher-name-versions. operations: - method: POST name: postpublishpackageversionpreview description: PostPublishPackageVersion call: pulumi-registrypreview.postpublishpackageversionpreview with: source: rest.source publisher: rest.publisher name: rest.name body: rest.body outputParameters: - type: object mapping: $. - path: /v1/registry/packages/{source}/{publisher}/{name}/versions/{version} name: api-preview-registry-packages-source-publisher-name-versions-version description: REST surface for api-preview-registry-packages-source-publisher-name-versions-version. operations: - method: DELETE name: deletepublishpackageversionpreview description: DeletePublishPackageVersion call: pulumi-registrypreview.deletepublishpackageversionpreview with: source: rest.source publisher: rest.publisher name: rest.name version: rest.version outputParameters: - type: object mapping: $. - method: GET name: getpackageversionpreview description: GetPackageVersion call: pulumi-registrypreview.getpackageversionpreview with: source: rest.source publisher: rest.publisher name: rest.name version: rest.version outputParameters: - type: object mapping: $. - path: /v1/registry/packages/{source}/{publisher}/{name}/versions/{version}/complete name: api-preview-registry-packages-source-publisher-name-versions-version-complete description: REST surface for api-preview-registry-packages-source-publisher-name-versions-version-complete. operations: - method: POST name: postpublishpackageversioncompletepreview description: PostPublishPackageVersionComplete call: pulumi-registrypreview.postpublishpackageversioncompletepreview with: source: rest.source publisher: rest.publisher name: rest.name version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/registry/policypacks name: api-preview-registry-policypacks description: REST surface for api-preview-registry-policypacks. operations: - method: GET name: listpolicypackspreviewregistry description: ListPolicyPacks call: pulumi-registrypreview.listpolicypackspreviewregistry with: access: rest.access orgLogin: rest.orgLogin outputParameters: - type: object mapping: $. - method: POST name: listpolicypackspreviewregistrypost description: ListPolicyPacks call: pulumi-registrypreview.listpolicypackspreviewregistrypost with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/registry/policypacks/{source}/{publisher}/{name} name: api-preview-registry-policypacks-source-publisher-name description: REST surface for api-preview-registry-policypacks-source-publisher-name. operations: - method: DELETE name: deletepolicypackpreviewregistrypolicypacks description: DeletePolicyPack call: pulumi-registrypreview.deletepolicypackpreviewregistrypolicypacks with: source: rest.source publisher: rest.publisher name: rest.name outputParameters: - type: object mapping: $. - path: /v1/registry/policypacks/{source}/{publisher}/{name}/versions name: api-preview-registry-policypacks-source-publisher-name-versions description: REST surface for api-preview-registry-policypacks-source-publisher-name-versions. operations: - method: GET name: listpolicypackversions description: ListPolicyPackVersions call: pulumi-registrypreview.listpolicypackversions with: source: rest.source publisher: rest.publisher name: rest.name outputParameters: - type: object mapping: $. - method: POST name: postpublishpolicypackversion description: PostPublishPolicyPackVersion call: pulumi-registrypreview.postpublishpolicypackversion with: source: rest.source publisher: rest.publisher name: rest.name outputParameters: - type: object mapping: $. - path: /v1/registry/policypacks/{source}/{publisher}/{name}/versions/{version} name: api-preview-registry-policypacks-source-publisher-name-versions-version description: REST surface for api-preview-registry-policypacks-source-publisher-name-versions-version. operations: - method: DELETE name: deletepolicypackpreviewregistrypolicypacksversions description: DeletePolicyPack call: pulumi-registrypreview.deletepolicypackpreviewregistrypolicypacksversions with: source: rest.source publisher: rest.publisher name: rest.name version: rest.version outputParameters: - type: object mapping: $. - method: GET name: getpolicypackversion description: GetPolicyPackVersion call: pulumi-registrypreview.getpolicypackversion with: source: rest.source publisher: rest.publisher name: rest.name version: rest.version outputParameters: - type: object mapping: $. - path: /v1/registry/policypacks/{source}/{publisher}/{name}/versions/{version}/complete name: api-preview-registry-policypacks-source-publisher-name-versions-version-complete description: REST surface for api-preview-registry-policypacks-source-publisher-name-versions-version-complete. operations: - method: POST name: postpublishpolicypackversioncomplete description: PostPublishPolicyPackVersionComplete call: pulumi-registrypreview.postpublishpolicypackversioncomplete with: source: rest.source publisher: rest.publisher name: rest.name version: rest.version outputParameters: - type: object mapping: $. - path: /v1/registry/templates name: api-preview-registry-templates description: REST surface for api-preview-registry-templates. operations: - method: GET name: listtemplatespreview description: ListTemplates call: pulumi-registrypreview.listtemplatespreview with: continuationToken: rest.continuationToken limit: rest.limit name: rest.name orgLogin: rest.orgLogin search: rest.search outputParameters: - type: object mapping: $. - path: /v1/registry/templates/{source}/{publisher}/{name}/versions name: api-preview-registry-templates-source-publisher-name-versions description: REST surface for api-preview-registry-templates-source-publisher-name-versions. operations: - method: POST name: postpublishtemplateversionpreview description: PostPublishTemplateVersion call: pulumi-registrypreview.postpublishtemplateversionpreview with: source: rest.source publisher: rest.publisher name: rest.name body: rest.body outputParameters: - type: object mapping: $. - path: /v1/registry/templates/{source}/{publisher}/{name}/versions/{version} name: api-preview-registry-templates-source-publisher-name-versions-version description: REST surface for api-preview-registry-templates-source-publisher-name-versions-version. operations: - method: DELETE name: deletetemplateversionpreview description: DeleteTemplateVersion call: pulumi-registrypreview.deletetemplateversionpreview with: source: rest.source publisher: rest.publisher name: rest.name version: rest.version force: rest.force outputParameters: - type: object mapping: $. - method: GET name: gettemplateversionpreview description: GetTemplateVersion call: pulumi-registrypreview.gettemplateversionpreview with: source: rest.source publisher: rest.publisher name: rest.name version: rest.version outputParameters: - type: object mapping: $. - path: /v1/registry/templates/{source}/{publisher}/{name}/versions/{version}/complete name: api-preview-registry-templates-source-publisher-name-versions-version-complete description: REST surface for api-preview-registry-templates-source-publisher-name-versions-version-complete. operations: - method: POST name: postpublishtemplateversioncompletepreview description: PostPublishTemplateVersionComplete call: pulumi-registrypreview.postpublishtemplateversioncompletepreview with: source: rest.source publisher: rest.publisher name: rest.name version: rest.version body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: pulumi-registrypreview-mcp port: 9090 transport: http description: MCP adapter for Pulumi APIs — RegistryPreview. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: listpackages description: ListPackages hints: readOnly: true destructive: false idempotent: true call: pulumi-registrypreview.listpackagespreview with: asc: tools.asc continuationToken: tools.continuationToken limit: tools.limit name: tools.name orgLogin: tools.orgLogin publisher: tools.publisher sort: tools.sort visibility: tools.visibility outputParameters: - type: object mapping: $. - name: postpublishpackageversion description: PostPublishPackageVersion hints: readOnly: false destructive: false idempotent: false call: pulumi-registrypreview.postpublishpackageversionpreview with: source: tools.source publisher: tools.publisher name: tools.name body: tools.body outputParameters: - type: object mapping: $. - name: deletepublishpackageversion description: DeletePublishPackageVersion hints: readOnly: false destructive: true idempotent: true call: pulumi-registrypreview.deletepublishpackageversionpreview with: source: tools.source publisher: tools.publisher name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: getpackageversion description: GetPackageVersion hints: readOnly: true destructive: false idempotent: true call: pulumi-registrypreview.getpackageversionpreview with: source: tools.source publisher: tools.publisher name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: postpublishpackageversioncomplete description: PostPublishPackageVersionComplete hints: readOnly: false destructive: false idempotent: false call: pulumi-registrypreview.postpublishpackageversioncompletepreview with: source: tools.source publisher: tools.publisher name: tools.name version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: listpolicypacks description: ListPolicyPacks hints: readOnly: true destructive: false idempotent: true call: pulumi-registrypreview.listpolicypackspreviewregistry with: access: tools.access orgLogin: tools.orgLogin outputParameters: - type: object mapping: $. - name: listpolicypacks-2 description: ListPolicyPacks hints: readOnly: false destructive: false idempotent: false call: pulumi-registrypreview.listpolicypackspreviewregistrypost with: body: tools.body outputParameters: - type: object mapping: $. - name: deletepolicypack description: DeletePolicyPack hints: readOnly: false destructive: true idempotent: true call: pulumi-registrypreview.deletepolicypackpreviewregistrypolicypacks with: source: tools.source publisher: tools.publisher name: tools.name outputParameters: - type: object mapping: $. - name: listpolicypackversions description: ListPolicyPackVersions hints: readOnly: true destructive: false idempotent: true call: pulumi-registrypreview.listpolicypackversions with: source: tools.source publisher: tools.publisher name: tools.name outputParameters: - type: object mapping: $. - name: postpublishpolicypackversion description: PostPublishPolicyPackVersion hints: readOnly: false destructive: false idempotent: false call: pulumi-registrypreview.postpublishpolicypackversion with: source: tools.source publisher: tools.publisher name: tools.name outputParameters: - type: object mapping: $. - name: deletepolicypack-2 description: DeletePolicyPack hints: readOnly: false destructive: true idempotent: true call: pulumi-registrypreview.deletepolicypackpreviewregistrypolicypacksversions with: source: tools.source publisher: tools.publisher name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: getpolicypackversion description: GetPolicyPackVersion hints: readOnly: true destructive: false idempotent: true call: pulumi-registrypreview.getpolicypackversion with: source: tools.source publisher: tools.publisher name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: postpublishpolicypackversioncomplete description: PostPublishPolicyPackVersionComplete hints: readOnly: false destructive: false idempotent: false call: pulumi-registrypreview.postpublishpolicypackversioncomplete with: source: tools.source publisher: tools.publisher name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: listtemplates description: ListTemplates hints: readOnly: true destructive: false idempotent: true call: pulumi-registrypreview.listtemplatespreview with: continuationToken: tools.continuationToken limit: tools.limit name: tools.name orgLogin: tools.orgLogin search: tools.search outputParameters: - type: object mapping: $. - name: postpublishtemplateversion description: PostPublishTemplateVersion hints: readOnly: false destructive: false idempotent: false call: pulumi-registrypreview.postpublishtemplateversionpreview with: source: tools.source publisher: tools.publisher name: tools.name body: tools.body outputParameters: - type: object mapping: $. - name: deletetemplateversion description: DeleteTemplateVersion hints: readOnly: false destructive: true idempotent: true call: pulumi-registrypreview.deletetemplateversionpreview with: source: tools.source publisher: tools.publisher name: tools.name version: tools.version force: tools.force outputParameters: - type: object mapping: $. - name: gettemplateversion description: GetTemplateVersion hints: readOnly: true destructive: false idempotent: true call: pulumi-registrypreview.gettemplateversionpreview with: source: tools.source publisher: tools.publisher name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: postpublishtemplateversioncomplete description: PostPublishTemplateVersionComplete hints: readOnly: false destructive: false idempotent: false call: pulumi-registrypreview.postpublishtemplateversioncompletepreview with: source: tools.source publisher: tools.publisher name: tools.name version: tools.version body: tools.body outputParameters: - type: object mapping: $.