JFrog · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Jfrog Projects API
21 actions
21 updates
phrasing
extends
openapi/jfrog-projects-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for JFrog's API. It is a proposal applied on top of the contract, not a document JFrog publishes.
What the actions change
x-apievangelist-phrasing
Targets 21 · first 16 shown; the file carries all of them
$.info
$.paths['/api/v1/projects'].get
$.paths['/api/v1/projects'].post
$.paths['/api/v1/projects/{projectKey}'].get
$.paths['/api/v1/projects/{projectKey}'].put
$.paths['/api/v1/projects/{projectKey}'].delete
$.paths['/api/v1/projects/{projectKey}/users/{username}'].put
$.paths['/api/v1/projects/{projectKey}/users/{username}'].delete
$.paths['/api/v1/projects/{projectKey}/groups/{groupName}'].put
$.paths['/api/v1/projects/{projectKey}/groups/{groupName}'].delete
$.paths['/projects'].get
$.paths['/projects'].post
$.paths['/projects/{projectId}'].get
$.paths['/projects/{projectId}'].delete
$.paths['/access/api/v1/projects'].get
$.paths['/access/api/v1/projects'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Jfrog Projects API
version: 1.0.0
extends: openapi/jfrog-projects-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 20
- target: $.paths['/api/v1/projects'].get
update:
x-apievangelist-phrasing:
intent: List projects in the Access service
effect: read
questions:
- Which projects exist when I call the standalone Access service directly?
- Can I see every project the Access service manages, not just my device projects?
instructions:
- text: List all projects from the Access service's own /api/v1 endpoint.
- text: Show me every project registered in the standalone Access service.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/projects'].post
update:
x-apievangelist-phrasing:
intent: Create a project in the Access service
effect: write
questions:
- How do I create a JFrog project with its own isolated resource scope via the Access service?
- Can I cap a new project's storage in gibibytes when I create it in the Access service?
instructions:
- text: Create an Access service project with key {project_key} named {display_name}.
slots:
project_key: requestBody.project_key
display_name: requestBody.display_name
- text: Create Access service project {project_key} called {display_name} with a {max_storage_in_gibibytes} GiB storage limit.
slots:
project_key: requestBody.project_key
display_name: requestBody.display_name
max_storage_in_gibibytes: requestBody.max_storage_in_gibibytes
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/projects/{projectKey}'].get
update:
x-apievangelist-phrasing:
intent: Get a project from the Access service
effect: read
questions:
- What settings does a given project key have in the standalone Access service?
- Can I look up one project's details directly from the Access service by its key?
instructions:
- text: Get the details of project {projectKey} from the Access service's /api/v1 endpoint.
slots:
projectKey: path.projectKey
- text: Show me how project {projectKey} is configured in the standalone Access service.
slots:
projectKey: path.projectKey
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/projects/{projectKey}'].put
update:
x-apievangelist-phrasing:
intent: Update a project in the Access service
effect: write
questions:
- How can I change a project's display name or storage quota through the Access service?
- Can I edit an existing project's admin privileges directly in the Access service?
instructions:
- text: Rename Access service project {projectKey} to {display_name}.
slots:
projectKey: path.projectKey
display_name: requestBody.display_name
- text: Set the storage quota of Access service project {projectKey} to {max_storage_in_gibibytes} GiB.
slots:
projectKey: path.projectKey
max_storage_in_gibibytes: requestBody.max_storage_in_gibibytes
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/projects/{projectKey}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a project from the Access service
effect: destructive
questions:
- What happens to a project's resources when I permanently delete it in the Access service?
- Can I remove a project by its key straight from the standalone Access service?
instructions:
- text: Permanently delete project {projectKey} via the Access service's /api/v1 endpoint.
slots:
projectKey: path.projectKey
- text: Remove Access service project {projectKey} and disassociate its resources.
slots:
projectKey: path.projectKey
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/projects/{projectKey}/users/{username}'].put
update:
x-apievangelist-phrasing:
intent: Add a user to a project in the Access service
effect: write
questions:
- How do I give a user a role in a project using the standalone Access service?
- Can I assign several project roles to one member at once through the Access service?
instructions:
- text: Add user {username} to Access service project {projectKey}.
slots:
username: path.username
projectKey: path.projectKey
- text: Give {username} the {roles} roles in project {projectKey} via the Access service.
slots:
username: path.username
roles: requestBody.roles
projectKey: path.projectKey
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/projects/{projectKey}/users/{username}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a user from a project in Access
effect: destructive
questions:
- How do I revoke all of a member's project roles using the standalone Access service?
- Can I take one user out of a project via the Access service without touching groups?
instructions:
- text: Remove user {username} from Access service project {projectKey}.
slots:
username: path.username
projectKey: path.projectKey
- text: Revoke every role {username} holds in project {projectKey} through the Access service.
slots:
username: path.username
projectKey: path.projectKey
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/projects/{projectKey}/groups/{groupName}'].put
update:
x-apievangelist-phrasing:
intent: Add a group to a project
effect: write
questions:
- How do I give a whole group of users roles in a project?
- Can I assign project roles to a group instead of adding each user?
instructions:
- text: Add group {groupName} to project {projectKey}.
slots:
groupName: path.groupName
projectKey: path.projectKey
- text: Give group {groupName} the {roles} roles in project {projectKey}.
slots:
groupName: path.groupName
roles: requestBody.roles
projectKey: path.projectKey
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/projects/{projectKey}/groups/{groupName}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a group from a project
effect: destructive
questions:
- How do I take a group out of a project?
- Can I revoke a group's access to one project without deleting the group itself?
instructions:
- text: Remove group {groupName} from project {projectKey}.
slots:
groupName: path.groupName
projectKey: path.projectKey
- text: Revoke project {projectKey} access for the {groupName} group.
slots:
groupName: path.groupName
projectKey: path.projectKey
method: generated
generated: '2026-10-01'
- target: $.paths['/projects'].get
update:
x-apievangelist-phrasing:
intent: List device projects in JFrog Connect
effect: read
questions:
- Which JFrog Connect projects do I use to organize my devices?
- Can I see all of my account's device projects in one list?
instructions:
- text: List all of my device projects in the account.
- text: Show me every project I use to group IoT devices.
method: generated
generated: '2026-10-01'
- target: $.paths['/projects'].post
update:
x-apievangelist-phrasing:
intent: Create a device project
effect: write
questions:
- How do I set up a new project for organizing my fleet of devices?
- Can I add a description when I create a device project?
instructions:
- text: Create a device project named {name}.
slots:
name: requestBody.name
- text: Create a new device project {name} described as {description}.
slots:
name: requestBody.name
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/projects/{projectId}'].get
update:
x-apievangelist-phrasing:
intent: Get a device project
effect: read
questions:
- What details are stored for one of my device projects?
- Can I look up a device project by its project ID?
instructions:
- text: Get device project {projectId}.
slots:
projectId: path.projectId
- text: Show me the details of the device project with ID {projectId}.
slots:
projectId: path.projectId
method: generated
generated: '2026-10-01'
- target: $.paths['/projects/{projectId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a device project
effect: destructive
questions:
- Can I delete a device project I no longer use?
- What do I need to remove a device project by its ID?
instructions:
- text: Delete device project {projectId}.
slots:
projectId: path.projectId
- text: Remove the device-fleet project with ID {projectId}.
slots:
projectId: path.projectId
method: generated
generated: '2026-10-01'
- target: $.paths['/access/api/v1/projects'].get
update:
x-apievangelist-phrasing:
intent: List projects through the Platform access route
effect: read
questions:
- Which projects exist when I go through the JFrog Platform's /access route?
- Can I list platform projects via the unified platform URL rather than the Access service?
instructions:
- text: List all projects through the platform's /access/api/v1 route.
- text: Show me every project on my JFrog Platform via the access route.
method: generated
generated: '2026-10-01'
- target: $.paths['/access/api/v1/projects'].post
update:
x-apievangelist-phrasing:
intent: Create a project through the Platform route
effect: write
questions:
- How do I create a project using the platform's /access URL?
- Can I set admin privileges for a new project through the platform route?
instructions:
- text: Create a project through the platform /access route with key {project_key} and name {display_name}.
slots:
project_key: requestBody.project_key
display_name: requestBody.display_name
- text: Via the platform route, create project {project_key} titled {display_name} described as {description}.
slots:
project_key: requestBody.project_key
display_name: requestBody.display_name
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/access/api/v1/projects/{projectKey}'].get
update:
x-apievangelist-phrasing:
intent: Get a project through the Platform route
effect: read
questions:
- What does a project look like when fetched through the platform's /access route?
- Can I read one project's configuration via the platform URL by key?
instructions:
- text: Get project {projectKey} through the platform /access route.
slots:
projectKey: path.projectKey
- text: Fetch project {projectKey}'s details via the unified platform URL.
slots:
projectKey: path.projectKey
method: generated
generated: '2026-10-01'
- target: $.paths['/access/api/v1/projects/{projectKey}'].put
update:
x-apievangelist-phrasing:
intent: Update a project through the Platform route
effect: write
questions:
- How do I change a project's settings using the platform's /access URL?
- Can I raise a project's storage limit through the platform route?
instructions:
- text: Through the platform /access route, rename project {projectKey} to {display_name}.
slots:
projectKey: path.projectKey
display_name: requestBody.display_name
- text: Via the platform URL, change project {projectKey}'s description to {description}.
slots:
projectKey: path.projectKey
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/access/api/v1/projects/{projectKey}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a project through the Platform route
effect: destructive
questions:
- Can I delete a project using the platform's /access URL?
- What is needed to remove a project by key through the unified platform route?
instructions:
- text: Delete project {projectKey} through the platform /access route.
slots:
projectKey: path.projectKey
- text: Via the platform URL, remove the project with key {projectKey}.
slots:
projectKey: path.projectKey
method: generated
generated: '2026-10-01'
- target: $.paths['/access/api/v1/projects/{projectKey}/users/{username}'].put
update:
x-apievangelist-phrasing:
intent: Add a user to a project via the Platform route
effect: write
questions:
- How do I add a member to a project using the platform's /access URL?
- Can I give a user project roles through the unified platform route?
instructions:
- text: Through the platform /access route, add user {username} to project {projectKey}.
slots:
username: path.username
projectKey: path.projectKey
- text: Via the platform URL, give {username} roles {roles} in project {projectKey}.
slots:
username: path.username
roles: requestBody.roles
projectKey: path.projectKey
method: generated
generated: '2026-10-01'
- target: $.paths['/access/api/v1/projects/{projectKey}/users/{username}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a user from a project via the Platform
effect: destructive
questions:
- Can I take a member out of a project using the platform's /access URL?
- How do I drop a user from a project through the unified platform route?
instructions:
- text: Through the platform /access route, remove user {username} from project {projectKey}.
slots:
username: path.username
projectKey: path.projectKey
- text: Via the platform URL, drop {username} from project {projectKey}.
slots:
username: path.username
projectKey: path.projectKey
method: generated
generated: '2026-10-01'