naftiko: 1.0.0-alpha2 info: label: Pulumi APIs — Users description: 'Pulumi APIs — Users. 16 operations. Lead operation: GetCurrentUser. Self-contained Naftiko capability covering one Pulumi business surface.' tags: - Pulumi - Users created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PULUMI_API_KEY: PULUMI_API_KEY capability: consumes: - type: http namespace: pulumi-users baseUri: '' description: Pulumi APIs — Users business capability. Self-contained, no shared references. resources: - name: api-user path: /api/user operations: - name: getcurrentuser method: GET description: GetCurrentUser outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-user-github-ghOrgName-teams path: /api/user/github/{ghOrgName}/teams operations: - name: listgithuborganizationteams method: GET description: ListGitHubOrganizationTeams outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ghOrgName in: path type: string description: The GitHub organization name required: true - name: api-user-gitlab-app-organizations path: /api/user/gitlab-app/organizations operations: - name: getgroupsforgitlabapp method: GET description: GetGroupsForGitLabApp outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-user-organizations-default path: /api/user/organizations/default operations: - name: getdefaultorganization method: GET description: GetDefaultOrganization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-user-organizations-orgName-default path: /api/user/organizations/{orgName}/default operations: - name: updatedefaultorganization method: POST description: UpdateDefaultOrganization outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgName in: path type: string description: The organization name required: true - name: api-user-pending-emails path: /api/user/pending-emails operations: - name: deletependingemailchange method: DELETE description: DeletePendingEmailChange outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getlatestpendingemailchange method: GET description: GetLatestPendingEmailChange outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-user-pending-invites path: /api/user/pending-invites operations: - name: listuserorginvites method: GET description: ListUserOrgInvites outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-user-stacks path: /api/user/stacks operations: - name: listuserstacks method: GET description: ListUserStacks outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: continuationToken in: query type: string description: Token from a previous response to fetch the next page of results - name: maxResults in: query type: integer description: Maximum number of stacks to return per page - name: organization in: query type: string description: Filter stacks to those owned by this organization - name: project in: query type: string description: Filter stacks to those in this project - name: roleID in: query type: string description: List stacks only using this custom role - name: tagName in: query type: string description: Filter stacks by tag name (use with tagValue for exact match) - name: tagValue in: query type: string description: Filter stacks by tag value (requires tagName) - name: api-user-tokens path: /api/user/tokens operations: - name: listpersonaltokens method: GET description: ListPersonalTokens outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filter in: query type: string description: Filter tokens by name or description - name: createpersonaltoken method: POST description: CreatePersonalToken outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: reason in: query type: string description: Tracks the context that triggered token creation (e.g., redirect URL or referral source) - name: body in: body type: object description: Request body (JSON). required: false - name: api-user-tokens-tokenId path: /api/user/tokens/{tokenId} operations: - name: deletepersonaltoken method: DELETE description: DeletePersonalToken outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: tokenId in: path type: string description: The access token identifier required: true - name: api-user-vcs path: /api/user/vcs operations: - name: deleteidentityprovider method: DELETE description: DeleteIdentityProvider outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identity in: query type: string description: The VCS identity provider to disconnect (e.g., github, gitlab, bitbucket) - name: api-user-vcs-organizations path: /api/user/vcs/organizations operations: - name: listidentityproviderorganizations method: GET description: ListIdentityProviderOrganizations outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-user-vcs-sync path: /api/user/vcs/sync operations: - name: syncwithidentityprovider method: POST description: SyncWithIdentityProvider outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identity in: query type: string description: The VCS identity provider to sync profile data from (e.g., github, gitlab) - name: api-user-verified-email path: /api/user/verified-email operations: - name: getuserhasverifiedemail method: GET description: GetUserHasVerifiedEmail outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: pulumi-users-rest port: 8080 description: REST adapter for Pulumi APIs — Users. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/user name: api-user description: REST surface for api-user. operations: - method: GET name: getcurrentuser description: GetCurrentUser call: pulumi-users.getcurrentuser outputParameters: - type: object mapping: $. - path: /v1/api/user/github/{ghorgname}/teams name: api-user-github-ghorgname-teams description: REST surface for api-user-github-ghOrgName-teams. operations: - method: GET name: listgithuborganizationteams description: ListGitHubOrganizationTeams call: pulumi-users.listgithuborganizationteams with: ghOrgName: rest.ghOrgName outputParameters: - type: object mapping: $. - path: /v1/api/user/gitlab-app/organizations name: api-user-gitlab-app-organizations description: REST surface for api-user-gitlab-app-organizations. operations: - method: GET name: getgroupsforgitlabapp description: GetGroupsForGitLabApp call: pulumi-users.getgroupsforgitlabapp outputParameters: - type: object mapping: $. - path: /v1/api/user/organizations/default name: api-user-organizations-default description: REST surface for api-user-organizations-default. operations: - method: GET name: getdefaultorganization description: GetDefaultOrganization call: pulumi-users.getdefaultorganization outputParameters: - type: object mapping: $. - path: /v1/api/user/organizations/{orgname}/default name: api-user-organizations-orgname-default description: REST surface for api-user-organizations-orgName-default. operations: - method: POST name: updatedefaultorganization description: UpdateDefaultOrganization call: pulumi-users.updatedefaultorganization with: orgName: rest.orgName outputParameters: - type: object mapping: $. - path: /v1/api/user/pending-emails name: api-user-pending-emails description: REST surface for api-user-pending-emails. operations: - method: DELETE name: deletependingemailchange description: DeletePendingEmailChange call: pulumi-users.deletependingemailchange outputParameters: - type: object mapping: $. - method: GET name: getlatestpendingemailchange description: GetLatestPendingEmailChange call: pulumi-users.getlatestpendingemailchange outputParameters: - type: object mapping: $. - path: /v1/api/user/pending-invites name: api-user-pending-invites description: REST surface for api-user-pending-invites. operations: - method: GET name: listuserorginvites description: ListUserOrgInvites call: pulumi-users.listuserorginvites outputParameters: - type: object mapping: $. - path: /v1/api/user/stacks name: api-user-stacks description: REST surface for api-user-stacks. operations: - method: GET name: listuserstacks description: ListUserStacks call: pulumi-users.listuserstacks with: continuationToken: rest.continuationToken maxResults: rest.maxResults organization: rest.organization project: rest.project roleID: rest.roleID tagName: rest.tagName tagValue: rest.tagValue outputParameters: - type: object mapping: $. - path: /v1/api/user/tokens name: api-user-tokens description: REST surface for api-user-tokens. operations: - method: GET name: listpersonaltokens description: ListPersonalTokens call: pulumi-users.listpersonaltokens with: filter: rest.filter outputParameters: - type: object mapping: $. - method: POST name: createpersonaltoken description: CreatePersonalToken call: pulumi-users.createpersonaltoken with: reason: rest.reason body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/user/tokens/{tokenid} name: api-user-tokens-tokenid description: REST surface for api-user-tokens-tokenId. operations: - method: DELETE name: deletepersonaltoken description: DeletePersonalToken call: pulumi-users.deletepersonaltoken with: tokenId: rest.tokenId outputParameters: - type: object mapping: $. - path: /v1/api/user/vcs name: api-user-vcs description: REST surface for api-user-vcs. operations: - method: DELETE name: deleteidentityprovider description: DeleteIdentityProvider call: pulumi-users.deleteidentityprovider with: identity: rest.identity outputParameters: - type: object mapping: $. - path: /v1/api/user/vcs/organizations name: api-user-vcs-organizations description: REST surface for api-user-vcs-organizations. operations: - method: GET name: listidentityproviderorganizations description: ListIdentityProviderOrganizations call: pulumi-users.listidentityproviderorganizations outputParameters: - type: object mapping: $. - path: /v1/api/user/vcs/sync name: api-user-vcs-sync description: REST surface for api-user-vcs-sync. operations: - method: POST name: syncwithidentityprovider description: SyncWithIdentityProvider call: pulumi-users.syncwithidentityprovider with: identity: rest.identity outputParameters: - type: object mapping: $. - path: /v1/api/user/verified-email name: api-user-verified-email description: REST surface for api-user-verified-email. operations: - method: GET name: getuserhasverifiedemail description: GetUserHasVerifiedEmail call: pulumi-users.getuserhasverifiedemail outputParameters: - type: object mapping: $. - type: mcp namespace: pulumi-users-mcp port: 9090 transport: http description: MCP adapter for Pulumi APIs — Users. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: getcurrentuser description: GetCurrentUser hints: readOnly: true destructive: false idempotent: true call: pulumi-users.getcurrentuser outputParameters: - type: object mapping: $. - name: listgithuborganizationteams description: ListGitHubOrganizationTeams hints: readOnly: true destructive: false idempotent: true call: pulumi-users.listgithuborganizationteams with: ghOrgName: tools.ghOrgName outputParameters: - type: object mapping: $. - name: getgroupsforgitlabapp description: GetGroupsForGitLabApp hints: readOnly: true destructive: false idempotent: true call: pulumi-users.getgroupsforgitlabapp outputParameters: - type: object mapping: $. - name: getdefaultorganization description: GetDefaultOrganization hints: readOnly: true destructive: false idempotent: true call: pulumi-users.getdefaultorganization outputParameters: - type: object mapping: $. - name: updatedefaultorganization description: UpdateDefaultOrganization hints: readOnly: false destructive: false idempotent: false call: pulumi-users.updatedefaultorganization with: orgName: tools.orgName outputParameters: - type: object mapping: $. - name: deletependingemailchange description: DeletePendingEmailChange hints: readOnly: false destructive: true idempotent: true call: pulumi-users.deletependingemailchange outputParameters: - type: object mapping: $. - name: getlatestpendingemailchange description: GetLatestPendingEmailChange hints: readOnly: true destructive: false idempotent: true call: pulumi-users.getlatestpendingemailchange outputParameters: - type: object mapping: $. - name: listuserorginvites description: ListUserOrgInvites hints: readOnly: true destructive: false idempotent: true call: pulumi-users.listuserorginvites outputParameters: - type: object mapping: $. - name: listuserstacks description: ListUserStacks hints: readOnly: true destructive: false idempotent: true call: pulumi-users.listuserstacks with: continuationToken: tools.continuationToken maxResults: tools.maxResults organization: tools.organization project: tools.project roleID: tools.roleID tagName: tools.tagName tagValue: tools.tagValue outputParameters: - type: object mapping: $. - name: listpersonaltokens description: ListPersonalTokens hints: readOnly: true destructive: false idempotent: true call: pulumi-users.listpersonaltokens with: filter: tools.filter outputParameters: - type: object mapping: $. - name: createpersonaltoken description: CreatePersonalToken hints: readOnly: false destructive: false idempotent: false call: pulumi-users.createpersonaltoken with: reason: tools.reason body: tools.body outputParameters: - type: object mapping: $. - name: deletepersonaltoken description: DeletePersonalToken hints: readOnly: false destructive: true idempotent: true call: pulumi-users.deletepersonaltoken with: tokenId: tools.tokenId outputParameters: - type: object mapping: $. - name: deleteidentityprovider description: DeleteIdentityProvider hints: readOnly: false destructive: true idempotent: true call: pulumi-users.deleteidentityprovider with: identity: tools.identity outputParameters: - type: object mapping: $. - name: listidentityproviderorganizations description: ListIdentityProviderOrganizations hints: readOnly: true destructive: false idempotent: true call: pulumi-users.listidentityproviderorganizations outputParameters: - type: object mapping: $. - name: syncwithidentityprovider description: SyncWithIdentityProvider hints: readOnly: false destructive: false idempotent: false call: pulumi-users.syncwithidentityprovider with: identity: tools.identity outputParameters: - type: object mapping: $. - name: getuserhasverifiedemail description: GetUserHasVerifiedEmail hints: readOnly: true destructive: false idempotent: true call: pulumi-users.getuserhasverifiedemail outputParameters: - type: object mapping: $.