Progress Software Policies API

A policy defines permissions for who may perform what action on which resources, based on the project. The 'who' is a user, a team, or a system. A policy has three components, the agent, the action, and the project. The agent is a user, team, or system. Users and teams are designated by name while systems communicate with Chef Automate using pre-authorized API tokens. Actions are activities that agents can take in relation to Chef Automate's content and operation. Projects are collections of resources, such as API tokens or ingested compliance nodes.

Business capability
Identity & Access Management BC-620.20

Operations 10

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/policies List IAM policies · Lists all policies #
Ask an LLM
“Which IAM policies exist in my Chef Automate install?”
“Can I see both custom and Chef-managed access policies in one list?”
Tell an agent
List all IAM policies.
Show every access policy defined in Automate.
POST /apis/iam/v2/policies Create a custom IAM policy · Creates a custom policy #
Ask an LLM
“How do I create a policy that grants a team a role on specific projects?”
“Can a new policy's statement be scoped to every project at once?”
Tell an agent
Create policy {id} named {name} with statements {statements}.
Create custom policy {id} called {name} granting {statements} to members {members}.
GET /apis/iam/v2/policies/{id} Get one IAM policy · Gets a policy #
Ask an LLM
“What statements and members are on a specific policy?”
“Can I look up a single access policy by its ID?”
Tell an agent
Get IAM policy {id}.
Show the statements, members and projects of policy {id}.
PUT /apis/iam/v2/policies/{id} Overwrite a custom IAM policy · Updates a custom policy #
Ask an LLM
“How do I change the statements on an existing custom policy?”
“Does updating a policy reset any fields I leave out of the request?”
Tell an agent
Overwrite policy {id} with name {name} and statements {statements}.
Replace the full definition of policy {id}, setting name {name}, statements {statements} and projects {projects}.
DELETE /apis/iam/v2/policies/{id} Delete a custom IAM policy · Deletes a custom policy #
Ask an LLM
“How do I delete a custom access policy?”
“Can Chef-managed policies be deleted, or only custom ones?”
Tell an agent destructive · confirm first
Delete custom policy {id}.
Remove IAM policy {id} permanently.
GET /apis/iam/v2/policies/{id}/members List the members of a policy · Lists policy members #
Ask an LLM
“Which users, teams and tokens are members of a given policy?”
“Who is granted access through a particular policy?”
Tell an agent
List the members of policy {id}.
Show who belongs to policy {id}.
PUT /apis/iam/v2/policies/{id}/members Replace a policy's entire member list · Replaces policy members #
Ask an LLM
“How do I swap out the whole member list of a policy in one call?”
“What format do member expressions need when I replace a policy's members?”
Tell an agent
Replace all members of policy {id} with {members}.
Set the member list of policy {id} to exactly {members}, dropping anyone else.
POST /apis/iam/v2/policies/{id}/members:add Add members to a policy · Adds policy members #
Ask an LLM
“How do I grant a new team access by adding it to an existing policy?”
“Can I add members to a Chef-managed policy like Administrator?”
Tell an agent
Add members {members} to policy {id}.
Grant policy {id} to the additional members {members}, keeping current ones.
POST /apis/iam/v2/policies/{id}/members:remove Remove members from a policy · Removes policy members #
Ask an LLM
“How do I revoke a user's access granted through a specific policy?”
“What happens if I remove a member who isn't on the policy?”
Tell an agent
Remove members {members} from policy {id}.
Take {members} off the member list of policy {id}.
GET /apis/iam/v2/policy_version Get the IAM version Automate is running · Gets IAM version #
Ask an LLM
“Which IAM version is my Automate installation running?”
“Is my Automate on IAM v2?”
Tell an agent
Get the IAM major and minor version.
Tell me which IAM version this Automate install uses.

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-policies-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-policies-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 Policies 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: A policy defines permissions for who may perform what action on which resources, based on the project.
  name: Policies
  x-displayName: IAM Policies
paths:
  /apis/iam/v2/policies:
    get:
      description: 'Lists all policies.


        Authorization Action:

        ```

        iam:policies:list

        ```'
      tags:
      - Policies
      summary: Lists all policies
      operationId: Policies_ListPolicies
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chef.automate.api.iam.v2.ListPoliciesResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
    post:
      description: 'Creates a custom IAM policy used to control permissions in Automate.

        A policy is composed of one or more statements that grant permissions to a set of members.

        Each statement contains a role as well as a list of projects.


        The role defines a set of actions that the statement is scoped to.

        The project list defines the set of resources that the statement is scoped to.

        Pass `"projects": ["*"]` to scope a statement to every project.


        A policy''s *top-level* projects list defines which projects the policy belongs to (for filtering policies by their projects),

        whereas the *statement-level* projects list defines which projects the statement applies to.


        The example creates a new policy not associated with any project (because the top-level `projects` property is empty) that grants the `viewer` role

        on a few projects for all LDAP teams and a custom role `qa` on a specific project.


        Authorization Action:

        ```

        iam:policies:create

        ```'
      tags:
      - Policies
      summary: Creates a custom policy
      operationId: Policies_CreatePolicy
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chef.automate.api.iam.v2.CreatePolicyResp'
        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 Viewer Policy","id": "custom-viewer-policy","members": ["team:ldap:*"], "statements": [{"role": "viewer","projects": ["project1", "project2"], "effect": "ALLOW"},{"role": "qa","projects": ["acceptanceProject"], "effect": "ALLOW"}],"projects": []}'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chef.automate.api.iam.v2.CreatePolicyReq'
        required: true
  /apis/iam/v2/policies/{id}:
    get:
      description: 'Returns the details for a policy.


        Authorization Action:

        ```

        iam:policies:get

        ```'
      tags:
      - Policies
      summary: Gets a policy
      operationId: Policies_GetPolicy
      parameters:
      - description: ID of the policy.
        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.GetPolicyResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
    put:
      description: 'This operation overwrites all fields excepting ID,

        including those omitted from the request, so be sure to specify all properties.

        Properties that you do not include are reset to empty values.

        The only exception is the policy ID, which is immutable; it can only be set at creation time.


        While you can use this endpoint to update members on a policy, if that is the only

        property you wish to modify you might find it more convenient to use one of these endpoints instead:

        Add policy members, Remove policy members, or Replace policy members.


        Authorization Action:

        ```

        iam:policies:update

        ```'
      tags:
      - Policies
      summary: Updates a custom policy
      operationId: Policies_UpdatePolicy
      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.UpdatePolicyResp'
        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 Updated Viewer Policy", "members": ["user:ldap:newuser", "team:ldap:newteam"], "statements": [{"role": "viewer","projects":["project1", "project2"], "effect": "ALLOW"},{"role": "qa","projects": ["acceptanceProject"], "effect": "ALLOW"}],"projects": []}'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chef.automate.api.iam.v2.UpdatePolicyReq'
        required: true
    delete:
      description: 'Deletes a specified custom policy. You cannot delete Chef-managed policies.


        Authorization Action:

        ```

        iam:policies:delete

        ```'
      tags:
      - Policies
      summary: Deletes a custom policy
      operationId: Policies_DeletePolicy
      parameters:
      - description: ID of the policy.
        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.DeletePolicyResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
  /apis/iam/v2/policies/{id}/members:
    get:
      description: 'Lists all members of a specific policy.


        Authorization Action:

        ```

        iam:policyMembers:get

        ```'
      tags:
      - Policies
      summary: Lists policy members
      operationId: Policies_ListPolicyMembers
      parameters:
      - description: ID of the policy.
        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.ListPolicyMembersResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
    put:
      description: 'Replaces the entire member list of a specific policy with a new list.

        You may use this endpoint to update members of either Custom or Chef-managed policies.


        Ensure each element of the members array is in the correct

        Member Expression format.


        Authorization Action:

        ```

        iam:policyMembers:update

        ```'
      tags:
      - Policies
      summary: Replaces policy members
      operationId: Policies_ReplacePolicyMembers
      parameters:
      - description: ID of the policy.
        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.ReplacePolicyMembersResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
      x-code-samples:
      - lang: JSON
        source: '{"members": ["team:local:viewers", "user:local:test"]}'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chef.automate.api.iam.v2.ReplacePolicyMembersReq'
        required: true
  /apis/iam/v2/policies/{id}/members:add:
    post:
      description: 'Adds members to the member list of a specific policy.

        You may use this endpoint to update members of either Custom or Chef-managed policies.


        Ensure each element of the members array is in the correct

        Member Expression format.


        Authorization Action:

        ```

        iam:policyMembers:create

        ```'
      tags:
      - Policies
      summary: Adds policy members
      operationId: Policies_AddPolicyMembers
      parameters:
      - description: ID of the policy.
        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.AddPolicyMembersResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
      x-code-samples:
      - lang: JSON
        source: '{"members": ["team:local:viewers", "user:local:test"]}'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chef.automate.api.iam.v2.AddPolicyMembersReq'
        required: true
  /apis/iam/v2/policies/{id}/members:remove:
    post:
      description: 'Removes members from the member list of a specific policy. Silently ignores

        members that are not already part of the member list.

        You may use this endpoint to update members of either Custom or Chef-managed policies.


        Ensure each element of the members array is in the correct

        Member Expression format.


        The removed members will still exist within Chef Automate, but are no longer associated with this policy.


        Authorization Action:

        ```

        iam:policyMembers:delete

        ```'
      tags:
      - Policies
      summary: Removes policy members
      operationId: Policies_RemovePolicyMembers
      parameters:
      - description: ID of the policy.
        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.RemovePolicyMembersResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
      x-code-samples:
      - lang: JSON
        source: '{"members": ["team:local:viewers", "user:local:test"]}'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chef.automate.api.iam.v2.RemovePolicyMembersReq'
        required: true
  /apis/iam/v2/policy_version:
    get:
      description: 'Returns the major and minor version of IAM that your automate installation is running.


        Authorization Action:

        ```

        iam:policies:get

        ```'
      tags:
      - Policies
      summary: Gets IAM version
      operationId: Policies_GetPolicyVersion
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chef.automate.api.iam.v2.GetPolicyVersionResp'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/grpc.gateway.runtime.Error'
components:
  schemas:
    chef.automate.api.iam.v2.ReplacePolicyMembersReq:
      type: object
      required:
      - id
      properties:
        id:
          description: ID of the policy.
          type: string
        members:
          description: List of members that replaces previous policy member list.
          type: array
          items:
            type: string
      example:
        members:
        - team:local:viewers
        - user:local:test
    chef.automate.api.iam.v2.GetPolicyVersionResp:
      type: object
      properties:
        version:
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Version'
      example:
        version:
          major: V2
          minor: V1
    chef.automate.api.iam.v2.Statement.Effect:
      type: string
      default: ALLOW
      enum:
      - ALLOW
      - DENY
    chef.automate.api.iam.v2.ReplacePolicyMembersResp:
      type: object
      properties:
        members:
          description: Resulting list of policy members.
          type: array
          items:
            type: string
      example:
        members:
        - team:local:viewers
        - user:local:test
    chef.automate.api.iam.v2.Policy:
      type: object
      properties:
        id:
          description: Unique ID. Cannot be changed.
          type: string
        members:
          description: Members affected by this policy. May be empty.
          type: array
          items:
            type: string
        name:
          description: Name for the policy.
          type: string
        projects:
          description: List of projects this policy belongs to. May be empty.
          type: array
          items:
            type: string
        statements:
          description: Statements for the policy. Will contain one or more.
          type: array
          items:
            $ref: '#/components/schemas/chef.automate.api.iam.v2.Statement'
        type:
          description: This doc-comment is ignored for an enum.
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Type'
    chef.automate.api.iam.v2.AddPolicyMembersResp:
      type: object
      properties:
        members:
          type: array
          items:
            type: string
      example:
        members:
        - team:local:viewers
        - user:local:test
    chef.automate.api.iam.v2.CreatePolicyReq:
      description: Does not contain type as the enduser can only create 'custom' policies.
      type: object
      required:
      - id
      - name
      - statements
      properties:
        id:
          description: Unique ID. Cannot be changed.
          type: string
        members:
          description: Members affected by this policy.
          type: array
          items:
            type: string
        name:
          description: Name for the policy.
          type: string
        projects:
          description: List of projects this policy belongs to.
          type: array
          items:
            type: string
        statements:
          description: Statements for the policy.
          type: array
          items:
            $ref: '#/components/schemas/chef.automate.api.iam.v2.Statement'
      example:
        id: custom-viewer-policy
        members:
        - team:ldap:*
        name: My Viewer Policy
        projects: []
        statements:
        - effect: ALLOW
          projects:
          - project1
          - project2
          role: viewer
        - effect: ALLOW
          projects:
          - acceptanceProject
          role: qa
    google.protobuf.Any:
      type: object
      properties:
        type_url:
          type: string
        value:
          type: string
          format: byte
    chef.automate.api.iam.v2.DeletePolicyResp:
      type: object
      example:
        id: custom-viewer-policy
        members:
        - team:ldap:*
        name: My Viewer Policy
        projects: []
        statements:
        - effect: ALLOW
          projects:
          - project1
          - project2
          role: viewer
        - effect: ALLOW
          projects:
          - acceptanceProject
          role: qa
    chef.automate.api.iam.v2.RemovePolicyMembersReq:
      type: object
      required:
      - id
      - members
      properties:
        id:
          description: ID of the policy.
          type: string
        members:
          description: List of members to remove from the policy.
          type: array
          items:
            type: string
      example:
        members:
        - user:local:test
    chef.automate.api.iam.v2.ListPolicyMembersResp:
      type: object
      properties:
        members:
          description: List of policy members.
          type: array
          items:
            type: string
      example:
        members:
        - team:local:viewers
        - user:local:test
    chef.automate.api.iam.v2.ListPoliciesResp:
      type: object
      properties:
        policies:
          type: array
          items:
            $ref: '#/components/schemas/chef.automate.api.iam.v2.Policy'
      example:
        policies:
        - id: custom-viewer-policy-1
          members:
          - team:ldap:*
          name: My Viewer Policy 1
          projects: []
          statements:
          - effect: ALLOW
            projects:
            - project1
            - project2
            role: viewer
          - effect: ALLOW
            projects:
            - acceptanceProject
            role: qa
        - id: custom-policy-2
          members:
          - team:local:test
          name: My Custom Policy 2
          projects: []
          statements:
          - effect: ALLOW
            projects:
            - project1
            role: auditor
    chef.automate.api.iam.v2.CreatePolicyResp:
      type: object
      properties:
        policy:
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Policy'
      example:
        id: custom-viewer-policy
        members:
        - team:ldap:*
        name: My Viewer Policy
        projects: []
        statements:
        - effect: ALLOW
          projects:
          - project1
          - project2
          role: viewer
        - effect: ALLOW
          projects:
          - acceptanceProject
          role: qa
    chef.automate.api.iam.v2.Type:
      type: string
      default: CHEF_MANAGED
      enum:
      - CHEF_MANAGED
      - CUSTOM
    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
    chef.automate.api.iam.v2.Statement:
      type: object
      properties:
        actions:
          description: 'Actions defined inline. May be empty.

            Best practices recommend that you use custom roles rather than inline actions where practical.'
          type: array
          items:
            type: string
        effect:
          description: This doc-comment is ignored for an enum.
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Statement.Effect'
        projects:
          description: The project list defines the set of resources that the statement is scoped to. May be empty.
          type: array
          items:
            type: string
        resources:
          description: 'DEPRECATED: Resources defined inline. Use projects instead.'
          type: array
          items:
            type: string
        role:
          description: The role defines a set of actions that the statement is scoped to.
          type: string
    chef.automate.api.iam.v2.Version.VersionNumber:
      type: string
      default: V0
      enum:
      - V0
      - V1
      - V2
    chef.automate.api.iam.v2.RemovePolicyMembersResp:
      type: object
      properties:
        members:
          description: Resulting list of policy members.
          type: array
          items:
            type: string
      example:
        members:
        - user:local:test
    chef.automate.api.iam.v2.Version:
      type: object
      title: the only values that may be returned by GetPolicyVersion
      properties:
        major:
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Version.VersionNumber'
        minor:
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Version.VersionNumber'
    chef.automate.api.iam.v2.UpdatePolicyResp:
      type: object
      properties:
        policy:
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Policy'
      example:
        members:
        - user:ldap:newuser
        - team:ldap:newteam
        name: My Updated Viewer Policy
        projects: []
        statements:
        - effect: ALLOW
          projects:
          - project1
          - project2
          role: viewer
        - effect: ALLOW
          projects:
          - acceptanceProject
          role: qa
    chef.automate.api.iam.v2.GetPolicyResp:
      type: object
      properties:
        policy:
          $ref: '#/components/schemas/chef.automate.api.iam.v2.Policy'
      example:
        id: custom-viewer-policy
        members:
        - team:ldap:*
        name: My Viewer Policy
        projects: []
        statements:
        - effect: ALLOW
          projects:
          - project1
          - project2
          role: viewer
        - effect: ALLOW
          projects:
          - acceptanceProject
          role: qa
    chef.automate.api.iam.v2.UpdatePolicyReq:
      description: Does not contain type as the enduser can only create 'custom' policies.
      type: object
      required:
      - id
      - name
      - statements
      properties:
        id:
          description: Unique ID. Cannot be changed.
          type: string
        members:
          description: Members affected by this policy.
          type: array
          items:
            type: string
        name:
          description: Name for this policy.
          type: string
        projects:
          description: List of projects this policy belongs to.
          type: array
          items:
            type: string
        statements:
          description: Statements for the policy.
          type: array
          items:
            $ref: '#/components/schemas/chef.automate.api.iam.v2.Statement'
      example:
        members:
        - user:ldap:newuser
        - team:ldap:newteam
        name: My Updated Viewer Policy
        projects: []
        statements:
        - effect: ALLOW
          projects:
          - project1
          - project2
          role: viewer
        - effect: ALLOW
          projects:
          - acceptanceProject
          role: qa
    chef.automate.api.iam.v2.AddPolicyMembersReq:
      type: object
      required:
      - id
      - members
      properties:
        id:
          description: ID of the policy.
          type: string
        members:
          description: List of members to add to the policy.
          type: array
          items:
            type: string
      example:
        members:
        - team:local:viewers
        - user:local:test
  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