Progress Software Projects API

Projects are used to group and permission Chef Automate resources as well as ingested data, specifically Compliance reports, Chef Infra Server events, and Infrastructure nodes.

Operations 5

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /apis/iam/v2/projects List IAM projects · Lists all projects #
Ask an LLM
“Which IAM projects exist for scoping permissions?”
“Can I see every project used in my access policies?”
Tell an agent
List all IAM projects.
Show every project defined for policy scoping.
POST /apis/iam/v2/projects Create an IAM project · Creates a project #
Ask an LLM
“How do I create a project to scope resources in my IAM policies?”
“Can I create a project without the default editor, viewer and owner policies?”
Tell an agent
Create IAM project {id} named {name}.
Create project {id} called {name} and skip its default policies: {skip_policies}.
GET /apis/iam/v2/projects/{id} Get an IAM project · Gets a project #
Ask an LLM
“How do I look up a single IAM project's details?”
“What name does a given project ID have?”
Tell an agent
Show IAM project {id}.
Get the details of project {id}.
PUT /apis/iam/v2/projects/{id} Rename an IAM project · Updates a project #
Ask an LLM
“How do I rename an existing IAM project?”
“Can I change a project's ID, or only its name?”
Tell an agent
Rename project {id} to {name}.
Change the display name of IAM project {id} to {name}.
DELETE /apis/iam/v2/projects/{id} Delete an IAM project · Deletes a project #
Ask an LLM
“What happens to policies and resources when I delete a project?”
“How do I delete an IAM project I no longer need?”
Tell an agent destructive · confirm first
Delete IAM project {id}.
Remove project {id} from all resources and policy statements.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/progress-software:progress-software-projects-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

progress-software-projects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '# Authentication

    The Chef Automate API typically uses an API token passed in the header of your API request.'
  title: Chef Automate API Documentation Projects API
  termsOfService: https://www.chef.io/terms-and-conditions-of-use/
  contact:
    url: https://www.chef.io/support/
    email: support@chef.io
  license:
    name: Apache 2.0
    url: https://github.com/chef/automate/blob/main/LICENSE
  version: version not set
  x-logo:
    altText: Chef logo
    url: /images/chef-automate-logo.svg
servers:
- url: https://automate.chef.io
tags:
- description: Projects are used to group and permission Chef Automate resources as well as ingested data, specifically Compliance reports, Chef Infra Server events, and Infrastructure nodes.
  name: Projects
  x-displayName: IAM Projects
paths:
  /apis/iam/v2/projects:
    get:
      description: 'Lists all projects.


        Authorization Action:

        ```

        iam:projects:list

        ```'
      tags:
      - Projects
      summary: Lists all projects
      operationId: Policies_ListProjects
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chef.automate.api.iam.v2.ListProjectsResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
    post:
      description: 'Creates a new project to be used in the policies that control permissions in Automate.


        A project defines the scope of resources in a policy statement. Resources can be in more than one project.


        When a project is created, the system also creates three policies associated with the new project,

        one for each of the following roles: editor, viewer, and project owner.

        You can optionally pass the `skip_policies` flag set to `true` to skip the creation of these policies.


        Authorization Action:

        ```

        iam:projects:create

        ```'
      tags:
      - Projects
      summary: Creates a project
      operationId: Policies_CreateProject
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chef.automate.api.iam.v2.CreateProjectResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
      x-code-samples:
      - lang: JSON
        source: '{"name": "My Custom Project", "id": "custom-project", "skip_policies": true}'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chef.automate.api.iam.v2.CreateProjectReq'
        required: true
  /apis/iam/v2/projects/{id}:
    get:
      description: 'Returns the details for a project.


        Authorization Action:

        ```

        iam:projects:get

        ```'
      tags:
      - Projects
      summary: Gets a project
      operationId: Policies_GetProject
      parameters:
      - description: ID of the project.
        name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chef.automate.api.iam.v2.GetProjectResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
    put:
      description: 'Updates the name of an existing project.


        Authorization Action:

        ```

        iam:projects:update

        ```'
      tags:
      - Projects
      summary: Updates a project
      operationId: Policies_UpdateProject
      parameters:
      - description: Unique ID. Cannot be changed.
        name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chef.automate.api.iam.v2.UpdateProjectResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
      x-code-samples:
      - lang: JSON
        source: '{"name": "My Custom Updated Project Name"}'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chef.automate.api.iam.v2.UpdateProjectReq'
        required: true
    delete:
      description: 'Deletes a project from any resources tagged with it.


        Also deletes this project from any project list in any policy statements.

        If the resulting project list for a given statement is empty, it is deleted.

        If the resulting policy has no statements, it is also deleted.


        Authorization Action:

        ```

        iam:projects:delete

        ```'
      tags:
      - Projects
      summary: Deletes a project
      operationId: Policies_DeleteProject
      parameters:
      - description: ID of the project.
        name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chef.automate.api.iam.v2.DeleteProjectResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
components:
  schemas:
    chef.automate.api.iam.v2.UpdateProjectReq:
      type: object
      required:
      - id
      - name
      properties:
        id:
          description: Unique ID. Cannot be changed.
          type: string
        name:
          description: Name for the project.
          type: string
      example:
        name: My Custom Project
    google.protobuf.Any:
      type: object
      properties:
        type_url:
          type: string
        value:
          type: string
          format: byte
    chef.automate.api.iam.v2.CreateProjectResp:
      type: object
      properties:
        project:
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Project'
      example:
        id: custom-project
        name: My Custom Project
    chef.automate.api.iam.v2.DeleteProjectResp:
      type: object
      example:
        id: custom-project
        name: My Custom Project
    chef.automate.api.iam.v2.UpdateProjectResp:
      type: object
      properties:
        project:
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Project'
      example:
        id: custom-project
        name: My Custom Project
    chef.automate.api.iam.v2.Project:
      type: object
      properties:
        id:
          description: Unique ID. Cannot be changed.
          type: string
        name:
          description: Name for the project.
          type: string
        status:
          description: The current status of the rules for this project.
          $ref: '#/components/schemas/chef.automate.api.iam.v2.ProjectRulesStatus'
        type:
          description: Whether this policy is user created (`CUSTOM`) or chef managed (`CHEF_MANAGED`).
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Type'
    chef.automate.api.iam.v2.ProjectRulesStatus:
      type: string
      default: PROJECT_RULES_STATUS_UNSET
      enum:
      - PROJECT_RULES_STATUS_UNSET
      - RULES_APPLIED
      - EDITS_PENDING
      - NO_RULES
    chef.automate.api.iam.v2.ListProjectsResp:
      type: object
      properties:
        projects:
          type: array
          items:
            $ref: '#/components/schemas/chef.automate.api.iam.v2.Project'
      example:
        projects:
        - id: custom-project
          name: My Custom Project
        - id: custom-project-2
          name: My Custom Project 2
    chef.automate.api.iam.v2.GetProjectResp:
      type: object
      properties:
        project:
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Project'
      example:
        id: custom-project
        name: My Custom Project
    chef.automate.api.iam.v2.Type:
      type: string
      default: CHEF_MANAGED
      enum:
      - CHEF_MANAGED
      - CUSTOM
    chef.automate.api.iam.v2.CreateProjectReq:
      type: object
      required:
      - id
      - name
      properties:
        id:
          description: Unique ID. Cannot be changed.
          type: string
        name:
          description: Name for the new project.
          type: string
        skip_policies:
          description: Boolean flag to skip adding policies associated with the project. Set to false by default.
          type: boolean
      example:
        id: custom-project
        name: My Custom Project
        skip_policies: true
    grpc.gateway.runtime.Error:
      type: object
      properties:
        code:
          type: integer
          format: int32
        details:
          type: array
          items:
            $ref: '#/components/schemas/google.protobuf.Any'
        error:
          type: string
        message:
          type: string
  securitySchemes:
    APIToken:
      description: Authenticate with the Automate API using an API Token.
      type: apiKey
      name: api-token
      in: header
x-tagGroups:
- name: Compliance
  tags:
  - ReportingService
  - StatsService
  - JobsService
  - ProfilesService
  - Comp_Assets
- name: Report Manager
  tags:
  - ReportManagerService
- name: Infra
  tags:
  - ConfigMgmt
  - InfraProxy
- name: Ingest
  tags:
  - ChefIngester
  - JobScheduler
- name: Node Management
  tags:
  - NodeManagerService
  - NodesService
- name: Event Feed
  tags:
  - EventFeedService
- name: Secrets
  tags:
  - SecretsService
- name: Applications
  tags:
  - service_groups
  - retention
  - ApplicationsService
- name: Data Feed
  tags:
  - DatafeedService
- name: Data Lifecycle
  tags:
  - DataLifecycle
- name: Notifications
  tags:
  - Notifications
- name: Content Delivery
  tags:
  - Cds
- name: Audit and Settings
  tags:
  - UserSettingsService
- name: System
  tags:
  - Gateway
  - Deployment
  - License
  - Telemetry
  - LegacyDataCollector
- name: Identity
  tags:
  - users
  - teams
  - tokens
- name: Access Management
  tags:
  - policies
  - roles
  - projects
  - rules
  - Authorization