1. Docs
  2. Pulumi Cloud
  3. Pulumi Cloud REST API
  4. Policy Groups

Policy Groups

    Policy Groups are collections of policy packs that can be applied to stacks to enforce governance rules. The Policy Groups API allows you to create, manage, and apply policy groups to stacks.

    Policy Group Operations

    The API provides endpoints for the following operations:

    • Listing available policy groups
    • Getting policy group details
    • Creating new policy groups
    • Updating policy groups (rename, add/remove stacks, add/remove policy packs)
    • Deleting policy groups

    List Policy Groups

    List a summaries of policy groups by organization.

    GET /api/orgs/{organization}/policygroups
    

    Parameters

    ParameterTypeInDescription
    organizationstringpathorganization name

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Content-Type: application/json" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      https://api.pulumi.com/api/orgs/{organization}/policygroups
    

    Default response

    Status: 200 OK
    
    {
      "policyGroups": [
        {
          "name": "continuous-policy",
          "isOrgDefault": false,
          "numStacks": 1,
          "numEnabledPolicyPacks": 1
        },
        {
          "name": "default-policy-group",
          "isOrgDefault": true,
          "numStacks": 2569,
          "numEnabledPolicyPacks": 1
        }
      ]
    }
    

    Get Policy Group

    Get policy group information.

    GET /api/orgs/{organization}/policygroups/{policyGroup}
    

    Parameters

    ParameterTypeInDescription
    organizationstringpathorganization name
    policyGroupstringpathpolicy group name

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Content-Type: application/json" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      https://api.pulumi.com/api/orgs/{organization}/policygroups/{policyGroup}
    

    Default response

    Status: 200 OK
    
    {
      "name": "continuous-policy",
      "isOrgDefault": false,
      "stacks": [
        {
          "name": "global",
          "routingProject": "continuous-policy"
        }
      ],
      "appliedPolicyPacks": [
        {
          "name": "continuous-policy",
          "displayName": "",
          "version": 3,
          "versionTag": "0.0.3",
          "config": {
            "all": {
              "enforcementLevel": "mandatory"
            },
            "continuous-policy": {
              "enforcementLevel": "mandatory",
              "policies": [
                {
                  "assertion": {
                    "operator": "eq",
                    "value": 0
                  },
                  "label": "No node12 Lambdas",
                  "mode": "ai",
                  "query": "nodejs version 12"
                }
              ]
            }
          }
        }
      ]
    }
    

    Create Policy Group

    Create policy group.

    POST /api/orgs/{organization}/policygroups
    

    Parameters

    ParameterTypeInDescription
    organizationstringpathorganization name
    namestringbodypolicy group name

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Content-Type: application/json" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      --request POST \
      --data '{"name":"myPolicyGroup"}' \
      https://api.pulumi.com/api/orgs/{organization}/policygroups
    

    Default response

    Status: 204 OK
    

    Update Policy Group

    Update policy group, rename, add/remove stacks, add/remove policy packs.

    PATCH /api/orgs/{organization}/policygroups/{policyGroup}
    
    ParameterTypeInDescription
    organizationstringpathorganization name
    policyGroupstringpathpolicy group name
    newNamestringbodynew policy group name
    addStackobjectbodyadd stack reference - see following parameters
    addStack.namestringobjectstack name
    addStack.routingProjectstringobjectstack project
    removeStackobjectbodyremove stack reference - see following parameters
    removeStack.namestringobjectstack name
    removeStack.routingProjectstringobjectstack project
    addPolicyPackobjectbodyadd policy pack - see following parameters
    addPolicyPack.namestringobjectpolicy pack name
    addPolicyPack.displayNamestringobjectpolicy pack display name
    addPolicyPack.versionnumberobjectpolicy pack version
    addPolicyPack.versionTagstringobjectpolicy pack version tag
    addPolicyPack.configkey/valueobjectpolicy pack config
    removePolicyPackobjectbodyremove policy pack - see following parameters
    removePolicyPack.namestringobjectpolicy pack name
    removePolicyPack.versionintobjectpolicy pack version
    removePolicyPack.versionTagstringobjectpolicy pack version tag

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Content-Type: application/json" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      --request PATCH \
      --data '{"newName":"myRenamedPolicyGroup"}' \
      https://api.pulumi.com/orgs/{organization}/policygroups/{policyGroup}
    

    Default response

    Status: 204 OK
    

    Delete Policy Group

    DELETE /api/orgs/{organization}/policygroups/{policyGroup}
    
    ParameterTypeInDescription
    organizationstringpathorganization name
    policyGroupstringpathpolicy group name

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Content-Type: application/json" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      --request DELETE \
      https://api.pulumi.com/api/orgs/{organization}/policygroups/{policyGroup}
    

    Default response

    Status: 204 OK