Propagation plans


Identity propagation plans

Identity propagation plan entities represent a collection of unidirectional provisioning relationships between pairs of identity stores. At this time, a customer can define one plan per environment, owning zero or more rules, which in turn may own zero or more mappings. Deleting a plan instance must also delete all associated rule and mapping instances. A plan is recognized by the provisioning engine when it has an active status and it defines at least one rule.

The examples that follow show common actions to find and manage identity propagation plan resources. You need the Environment Admin role to perform operations on identity propagation plan entities.

Propagation plan API operations

The propagation plan endpoints support the following operations:

For hands-on experience with the propagation plan API endpoints, click the Run in Postman button below to download a Postman collection that you can import and open in your local Postman application.

Propagation plan data model

Property Description
environment.id A string that specifies the environment resource’s unique identifier associated with the resource.
id A string that specifies the resource’s unique identifier.
name A string that specifies the name of the propagation plan. This is a required property.
status A string that specifies the status of the propagation plan.

Propagation plan rules data model

Property Description
active A boolean that specifies whether the propagation plan rule is active.
environment.id A string that specifies the environment resource’s unique identifier associated with the resource.
id A string that specifies the resource’s unique identifier.
name A string that specifies the name of the propagation plan. This is a required property.
plan.id A string that specifies the plan resource’s unique identifier associated with this rule.
plan.id A string that specifies the plan resource’s unique identifier associated with this rule.
poppulations.id An array that specifies the list of population resource identifiers associated with this rule.
targetStore.id A string that specifies the identity target store resource’s unique identifier associated with this rule.
status A string that specifies the status of the propagation plan.

Response codes

Code Message
200 Successful operation.
201 Successfully created.
204 Successfully removed. No content.
400 The request could not be completed.
401 You do not have access to this resource.
404 The requested resource was not found.

Endpoint examples

Get propagation plans

The GET /environments/{environmentId}/propagation/plans endpoint returns a list of all propagation plan resources associated with the specified environment resource.

curl -X "GET" "https://api.pingone.com/v1/environments/{environmentId}/propagation/plans" \
-H 'Authorization: Bearer jwtToken'

The response data looks like this:

{
  "_embedded": {
    "plans": [
      {
        "id": "e9b6f9c5-64f6-4664-8838-7b77e2d5de3a",
        "environment": {
          "id": "9ad15e9e-3ac6-43f7-a053-d46b87d6c4a7"
        },
        "name": "Default Plan"
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://api.pingone.com/v1/environments/9ad15e9e-3ac6-43f7-a053-d46b87d6c4a7/propagation/plans"
    }
  }
}

Get one propagation plan

To get data for a single propagation plan resource, the GET /environments/{environmentId}/propagation/plans/{planId} operation returns data for the propagation plan resource with the specified ID.

curl -X GET "https://api.pingone.com/v1/environments/{environmentId}/propagation/plans/{planId}" \
-H "Authorization: Bearer jwtToken"

The response data looks like this:

{
  "id": "8c9cc5b2-4171-4804-abd4-115a8948e453",
  "environment": {
    "id": "0d73e3ae-c424-42fd-ad71-9a1c79e90d06"
  },
  "name": "Default Plan",
  "_links": {
    "create": {
      "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/plans/"
    },
    "self": {
      "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/plans/8c9cc5b2-4171-4804-abd4-115a8948e453"
    },
    "update": {
      "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/plans/8c9cc5b2-4171-4804-abd4-115a8948e453"
    },
    "delete": {
      "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/plans/8c9cc5b2-4171-4804-abd4-115a8948e453"
    }
  },
  "_embedded": {
    "ruleList": [
      {
        "plan": {
          "id": "8c9cc5b2-4171-4804-abd4-115a8948e453"
        },
        "sourceStore": {
          "id": "a6f91d1d-b50e-4c22-afd7-9491bf1edf07"
        },
        "targetStore": {
          "id": "407cfeb1-f81b-4ee6-838b-78e24e0ff92b"
        },
        "active": true,
        "populations": [
          {
            "id": "233c60bc-cd43-4f83-9fce-00e90d31bd16"
          },
          {
            "id": "122b60bc-cd43-4f83-9fce-00e90d31bd16"
          }
        ],
        "id": "86b88c9c-613d-4cdd-a0af-71d0dfba0c2f",
        "environment": {
          "id": "0d73e3ae-c424-42fd-ad71-9a1c79e90d06"
        },
        "_links": {
          "self": {
            "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/rules/86b88c9c-613d-4cdd-a0af-71d0dfba0c2f"
          },
          "sourceStore": {
            "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/stores/a6f91d1d-b50e-4c22-afd7-9491bf1edf07"
          },
          "targetStore": {
            "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/stores/407cfeb1-f81b-4ee6-838b-78e24e0ff92b"
          }
        }
      }
    ]
  }
}

Get propagation plan rules

To get information about the rules associated with a propagation plan resource, the GET /environments/{environmentId}/propagation/plans/{planId}/rules operation returns data about the rules associated with the propagation plan specified by its ID.

curl -X GET "https://api.pingone.com/v1/environments/{environmentId}/propagation/plans/{planId}/rules" \
-H "Authorization: Bearer jwtToken"

Create propagation plans

The POST /environments/{environmentId}/propagation/plans operation adds a new propagation plan resource to the specified environment resource.

curl -X "POST" "https://api.pingone.com/v1/environments/{environmentId}/propagation/plans" \
-H 'Content-type: application/json' \
-H 'Authorization: Bearer jwtToken' \
-d '{
  "name": "Default Plan"
  }'

The response data looks like this:

{
  "id": "e9b6f9c5-64f6-4664-8838-7b77e2d5de3a",
  "environment": {
    "id": "9ad15e9e-3ac6-43f7-a053-d46b87d6c4a7"
  },
  "name": "Default Plan",
  "_links": {
    "create": {
      "href": "https://api.pingone.com/v1/environments/9ad15e9e-3ac6-43f7-a053-d46b87d6c4a7/propagation/plans"
    },
    "self": {
      "href": "https://api.pingone.com/v1/environments/9ad15e9e-3ac6-43f7-a053-d46b87d6c4a7/propagation/plans/e9b6f9c5-64f6-4664-8838-7b77e2d5de3a"
    },
    "update": {
      "href": "https://api.pingone.com/v1/environments/9ad15e9e-3ac6-43f7-a053-d46b87d6c4a7/propagation/plans/e9b6f9c5-64f6-4664-8838-7b77e2d5de3a"
    },
    "delete": {
      "href": "https://api.pingone.com/v1/environments/9ad15e9e-3ac6-43f7-a053-d46b87d6c4a7/propagation/plans/e9b6f9c5-64f6-4664-8838-7b77e2d5de3a"
    }
  }
}

Create propagation plan rules

The POST /environments/{environmentId}/propagation/plans/{planId}/rules operation creates a new propagation plan rule associated with the propagation plan specified by its ID.

curl -X GET "https://api.pingone.com/v1/environments/{environmentId}/propagation/plans/{planId}/rules" \
-H 'Content-type: application/json' \
-H 'Authorization: Bearer jwtToken' \
-d '{
	"name":"RuleName",
	"sourceStore":{"id":"{sourceStoreUUID}"},
	"targetStore":{"id":"{targetStoreUUID}"},
	"populations":[{"id":"{popID}"}]
}'

The response data looks like this:

{
  "plan": {
    "id": "8c9cc5b2-4171-4804-abd4-115a8948e453"
  },
  "sourceStore": {
    "id": "a6f91d1d-b50e-4c22-afd7-9491bf1edf07"
  },
  "targetStore": {
    "id": "407cfeb1-f81b-4ee6-838b-78e24e0ff92b"
  },
  "active": false,
  "populations": [
    {
      "id": "1fe0ec15-77a0-44a4-af34-3b9b66a69285"
    }
  ],
  "id": "daac2c46-69fa-4685-9631-66047c4f4e6f",
  "environment": {
    "id": "0d73e3ae-c424-42fd-ad71-9a1c79e90d06"
  },
  "_links": {
    "create": {
      "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/plans/a6f91d1d-b50e-4c22-afd7-9491bf1edf07/rules"
    },
    "self": {
      "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/rules/daac2c46-69fa-4685-9631-66047c4f4e6f"
    },
    "update": {
      "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/rules/daac2c46-69fa-4685-9631-66047c4f4e6f"
    },
    "delete": {
      "href": "https://api.pingone.com/v1/environments/0d73e3ae-c424-42fd-ad71-9a1c79e90d06/propagation/rules/daac2c46-69fa-4685-9631-66047c4f4e6f"
    }
  }
}

Update propagation plans

The PUT /environments/{environmentId}/propagation/plans/{planId} operation updates the property values of the identified propagation plan resource.

curl -X "PUT" "https://api.pingone.com/v1/environments/{environmentId}/propagation/plans/{planId}" \
-H 'Content-type: application/json' \
-H 'Authorization: Bearer jwtToken' \
-d '{
  "name": "Test-Propagation-Plan"
  }'

Delete propagation plans

The following sample shows the DELETE /environments/{environmentId}/propagation/plans/{planId} operation to delete the propagation plan resource specified by its ID in the request URL.

curl -X DELETE "https://api.pingone.com/v1/environments/{environmentId}/propagation/plans/{planId}" \
-H "Authorization: Bearer jwtToken"

When successful, the DELETE request returns a code 204 No Content message.