PingOne Platform APIs

DaVinci Admin Application Flow Policies

The PingOne DaVinci Admin Application Flow Policies service provides endpoints to create, read, update, and delete DaVinci application flow policies. Application flow policies specify which flows are run through the application. A flow policy is an entity that points to one or more flows or versions of flows.

Assigning admin roles and permissions to this service

Admin role assignments determine access to PingOne APIs. When assigning admin roles to this service, refer to PingOne Permissions by Service for the service-specific permissions.

You can also choose to assign admin roles based on particular service resources. Refer to PingOne Permissions by Resource when assigning admin roles per service resources.

Admin assignments to roles are set by:

Refer to Roles Management for more information.

DaVinci Admin application flow policies data model properties

Property Type Required Mutable Description

createdAt

Date

N/A

Read only

The time when the flow policy was created.

environment

Object

N/A

Read only

The DaVinci company ID (environment ID) object.

environment.id

String

N/A

Read only

The DaVinci company ID, which is the PingOne environment ID.

id

String

N/A

Read only

The flow policy ID.

name

String

Required

Mutable

The flow policy name.

flowDistributions

Array

Optional

Immutable

An array of flow distribution properties that are a part of this flow policy.

flowDistributions.id

String

Optional

Immutable

The flow ID associated with this flow policy.

flowDistributions.weight

Number

Optional

Mutable

The weight that is assigned to the current flow in the flow policy.

flowDistributions.version

String

Optional

Mutable

The version of the flow to be used in the flow policy.

flowDistributions.successNodes

Array

Optional

Mutable

An array of node IDs in the flow that indicate a successful execution of the flow policy.

flowDistributions.successNodes.id

Array

Optional

Mutable

The node ID.

flowDistributions.ip

Array

Optional

Mutable

An array of IP addresses to create a whitelist of IP addresses from which flow executions can be performed.

status

String

Optional

Mutable

The status of the flow policy. Options are Enabled and Disabled.

trigger

Object

Optional

Immutable

The trigger associated with the flow.

trigger.type

String

Optional

Immutable

If the trigger type is set to AUTHENTICATION, you invoke the flow through PingOne OpenID Connect or SAML endpoints.

updatedAt

Date

N/A

Read only

The time when the flow policy was modified.

DaVinci Admin application flow policy event data model properties

Property Type Required Mutable Description

environment

Object

N/A

Read only

The environment object.

environment.id

String

N/A

Read only

The DaVinci company ID, which is the PingOne environment ID.

events

Object

N/A

Read only

The DaVinci event object.

events.id

String

N/A

Read only

The DaVinci event ID.

events.timestamp

Date

N/A

Read only

A UTC timestamp that specifies when the event was logged.

flow

Object

N/A

Read only

The DaVinci flow object.

flow.id

String

N/A

Read only

The DaVinci flow ID.

flow.version

Number

N/A

Read only

The DaVinci flow version number.

totalCount

Number

N/A

Read only

The total number of flow executions.

successCount

Number

N/A

Read only

The total count of success nodes reached in flow executions.

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.

403

You do not have permissions or are not licensed to make this request.

404

The requested resource was not found.

DaVinci application flow policy errors

In addition to the general error codes, DaVinci application flow policy operations can return the following errors:

HTTP status Top‑level code Detail code When it happens and what the response contains

400

INVALID_DATA

REQUIRED_VALUE, EMPTY_VALUE, INVALID_VALUE, or OUT_OF_RANGE

Message: The request could not be completed. One or more validation errors were in the request.

When and details

When: A POST /environments/{envID}/davinciApplications/{davinciApplicationID}/flowPolicies or a PUT /environments/{envID}/davinciApplications/{davinciApplicationID}/flowPolicies/{davinciAppFlowPolicyID} request supplies a body that violates the data model: an omitted flowDistributions array, an omitted name on update, a flow distribution entry without an id or version, an empty flowDistributions array on create, an empty successNodes array, a blank name, a blank trigger.subtype, a blank success node ID, a name longer than 256 characters, a trigger.type longer than 50 characters, more than 100 flowDistributions entries, an unknown status value, a name, status, or trigger.type value that is not a string, a name that starts with an unsupported character or contains a < or a ${ sequence, a property inside a flow distribution entry that the entry schema does not allow, or a flow distribution or success node ID that contains characters outside its allowed set

Details: One detail per validation error, each with the failing property path as the target. must have required property 'flowDistributions' with target flowDistributions when the create request omits flowDistributions. must have required property 'name' with target name when an update request omits name. must have required property 'id' or must have required property 'version' with the flow distribution entry path as the target, for example flowDistributions.0, when an entry omits either property. must NOT have fewer than 1 items with target flowDistributions when the create request supplies an empty flowDistributions array, and with the successNodes path as the target, for example flowDistributions.0.successNodes, for an empty successNodes array. must not be empty or blank for a blank name, a blank trigger.subtype, or a blank success node ID, for example with target flowDistributions.0.successNodes.0.id. must NOT have more than 256 characters for a name longer than 256 characters and must NOT have more than 50 characters for a trigger.type longer than 50 characters. must NOT have more than 100 items for more than 100 flowDistributions entries. must be one of the values: enabled or disabled for an unknown status value. must NOT have additional properties for a property inside a flow distribution entry that the entry schema does not allow. must match pattern "<pattern>", where the pattern is the JSON schema pattern for the property, for a name that starts with an unsupported character or contains a < or a ${ sequence, or for a flow distribution or success node ID that contains characters outside its allowed set. must be string for a property of the wrong JSON type, for example with target name.

400

INVALID_DATA

INVALID_PARAMETER or INVALID_VALUE

Message: The request could not be completed. One or more validation errors were in the request.

When and details

When: A GET all flow policies request supplies a page, limit, filter, or expand query parameter longer than 256 characters, a GET flow policy events request includes any query parameter, or a DELETE flow policy request includes any query parameter

Details: For an overlong query parameter on a GET all flow policies request, detail code INVALID_PARAMETER with message must NOT have more than 256 characters and the overlong query parameter as the target. For a GET flow policy events request or a DELETE flow policy request that includes a query parameter, detail code INVALID_VALUE with message must NOT have additional properties and the rejected query parameter as the target.

400

REQUEST_FAILED

CONSTRAINT_VIOLATION

Message: The request could not be completed. There was an issue processing the request.

When and details

When: A POST, PUT, or DELETE request targets an application that is read-only, or a POST or PUT request includes a read-only flow in flowDistributions

Details: Detail code CONSTRAINT_VIOLATION with message The request violates a constraint imposed by the service. No target is returned.

400

REQUEST_FAILED

CONSTRAINT_VIOLATION

Message: The request could not be completed. There was an issue processing the request.

When and details

When: A POST or PUT request references flows that fail flow policy validation, for example a flow ID or flow version that does not exist, or a schedule-triggered policy that references more than one flow or a flow version that is not deployed

Details: Detail code CONSTRAINT_VIOLATION with message Flow validation failed. Please add valid flows. No target is returned.

400

REQUEST_FAILED

CONSTRAINT_VIOLATION

Message: The request could not be completed. There was an issue processing the request.

When and details

When: A POST or PUT request includes flows whose trigger types do not resolve to a single trigger type, for example a PingOne authentication flow combined with a non-PingOne flow, or a flow reference that does not exist

Details: Detail code CONSTRAINT_VIOLATION with message This policy does not allow flows created with Ping and non-Ping triggers to be part of the same policy. No target is returned.

400

REQUEST_FAILED

CONSTRAINT_VIOLATION

Message: The request could not be completed. There was an issue processing the request.

When and details

When: A POST or PUT request includes a trigger.configuration object for a policy whose flows do not resolve to the AUTHENTICATION trigger type

Details: Detail code CONSTRAINT_VIOLATION with message Non-PingOne Flow Policies do not support the configuration property. No target is returned.

400

REQUEST_FAILED

CONSTRAINT_VIOLATION

Message: The request could not be completed. There was an issue processing the request.

When and details

When: A POST or PUT request includes flows that share a trigger type but resolve to different trigger subtypes

Details: Detail code CONSTRAINT_VIOLATION with message This policy does not allow flows with different trigger subtypes. No target is returned.

400

REQUEST_FAILED

INVALID_PARAMETER or INVALID_FILTER

Message: The request could not be completed. There was an issue processing the request.

When and details

When: A GET all flow policies request supplies a filter query parameter that references an attribute other than createdBy.user.id, createdBy.client.id, updatedBy.user.id, or updatedBy.client.id, or an operator other than eq, and, or or, when actor metadata is enabled for the environment. When actor metadata is disabled, the filter parameter is ignored

Details: Detail code INVALID_PARAMETER with message The filter attribute was invalid or does not support filtering. and the invalid attribute as the target, or message The filter operator was invalid or not supported. and the invalid operator as the target. A filter that is not a well-formed SCIM expression returns detail code INVALID_FILTER with message The specified filter was invalid. and no target.

403

ACCESS_FAILED

None

Message: The request could not be completed. You do not have access to this resource.

When and details

When: The actor lacks the davinci:create:flowPolicies permission (POST operations), the davinci:read:flowPolicies permission (GET operations, including the events endpoint), the davinci:update:flowPolicies permission (PUT operations), or the davinci:delete:flowPolicies permission (DELETE operations)

Details: None

404

NOT_FOUND

None

Message: The request could not be completed. The requested resource was not found.

When and details

When: Any operation references a DaVinci application ID that does not exist in the environment, or a GET one, PUT, or DELETE flow policy request or a GET flow policy events request references a flow policy ID that does not exist in the application

Details: None

500

UNEXPECTED_ERROR

None

Message: There was an unexpected error with the service. Please try again later.

When and details

When: A DELETE request targets an existing flow policy but the service cannot remove the policy from the application’s stored policy list, or the service encounters an unexpected internal failure while processing any flow policy operation

Details: None