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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'