All pages
Powered by GitBook
1 of 18

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Update Access Profile Labels

Update the labels assigned to an access profile

Endpoint

PATCH /api/private/lifecycle_management/access_profiles/{id}

Description

Updates the labels assigned to a specific access profile. Labels help categorize and organize access profiles for easier management and filtering.

Common label usage patterns:

  • Categorization (e.g., "development", "production", "sensitive")

  • Request workflow (e.g., "requestable", "auto-approved")

  • Business function (e.g., "finance", "engineering", "sales")

API Reference

Request schema

Path parameters

Path parameter
Type
Required?
Description

Request body

Field
Type
Required?
Description

Request Examples

Response Examples

id

string

Required

Unique identifier of the access profile

labels

array

Required

Array of label strings to assign to the access profile

curl -X PATCH "$BASE_URL/api/private/lifecycle_management/access_profiles/3a2371b6-95ec-4d9e-b95c-d75d51daa39b" \
  -H "authorization: Bearer $VEZA_TOKEN" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "labels": ["requestable", "salesforce", "development"]
  }'
{
  "value": {
    "id": "3a2371b6-95ec-4d9e-b95c-d75d51daa39b",
    "name": "Salesforce Developer",
    "state": 1,
    "profile_type": "a730b9cd-d600-4fb7-a803-8ab5b697c0b9",
    "current_version": 1,
    "integrations": ["SALESFORCE"],
    "provider_ids": ["sf-dev-org-12345"],
    "labels": ["requestable", "salesforce", "development"],
    "created_at": "2024-07-15T16:20:15.123456789Z",
    "updated_at": "2024-07-15T16:35:22.456789123Z"
  }
}

Lifecycle Management APIs

Programmatic identity lifecycle management for access profiles, policies, and provisioning workflows

Veza's Lifecycle Management APIs enable programmatic management of identity lifecycle processes for your organization. Use these APIs to automate provisioning, access changes, and deprovisioning through Access Profiles and Policy-based workflows.

The Lifecycle Management APIs help you:

  • Create and manage Access Profiles that define collections of entitlements

  • Build Policy workflows with conditional logic based on identity attributes

  • Automate identity synchronization across systems

  • Test policy configurations against specific identities

  • Manage datasources available for lifecycle operations

See the product documentation for information about the basic components of Lifecycle Management, such as Policies, Access Profiles, and available actions for Lifecycle Management Integrations.

Base URL

These endpoints are available under {{VezaURL}}/api/private/ for private APIs and {{VezaURL}}/api/v1/ for stable APIs. You must use the appropriate prefix when calling the API, for example:

Authentication

Available Endpoints

Access Profile Operations

Policy Operations

Administrative & Testing Operations

Datasource Discovery Operations

Getting Started

To get started with the Lifecycle Management APIs:

  1. Discover available datasources - Use the to identify which datasources support lifecycle management

  2. Configure authentication - Ensure you have the required API authentication configured (a personal API key for a Veza Root Team Administrator)

  3. Create access profiles - Review the for creating and manage access collections

For conceptual information about Lifecycle Management, see the .

Related APIs

For managing datasources that support lifecycle management capabilities:

  • - Core datasource management operations

  • - Discover lifecycle-enabled datasources

API Status

Development Status: The Veza Lifecycle Management APIs are in active development and subject to change. These APIs are provided under the /private API collection, and specifications may evolve as capabilities are added or modified.

List Policies

Retrieve all policies in your Lifecycle Management configuration with filtering options

Endpoint

Description

Retrieve a list of all policies in your Veza Lifecycle Management configuration. This endpoint returns policies across all states (active, inactive, draft) and provides essential metadata for each policy including creation time, last modification, and current state.

Use this endpoint to:

Build policies - Review the Policy APIs for endpoints to build automated provisioning workflows
  • Test configurations - Use the Dry Run capabilities before deploying to production

  • curl -X GET 'https://your-org.vezacloud.com/api/private/lifecycle_management/policies'
    Lifecycle Management
    Datasource Discovery Operations
    Access Profile APIs
    Lifecycle Management documentation
    Data Sources API
    Lifecycle Management Datasources

    Create Access Profile

    Create a new access profile with entitlements and settings

    List Access Profiles

    Retrieve all access profiles with filtering and pagination

    Update Access Profile Labels

    Modify labels and metadata for an access profile

    Update Access Profile Members

    Modify entitlements and permissions within an access profile

    List Access Profile Members

    View entitlements and permissions in an access profile

    Update Access Profile Version

    Create new versions and manage access profile lifecycle

    Create Policy

    Create a new lifecycle management policy with conditions

    List Policies

    Retrieve all policies with filtering and pagination

    Get Policy

    Retrieve details for a specific policy

    Update Policy State

    Change policy execution state (running, paused, dry run)

    Update Policy Configuration

    Modify policy workflows, conditions, and actions

    Add Condition to Policy

    Add conditional logic to policy workflows

    Add Action to Policy

    Add actions to policy workflows

    Run Dry Run on Identity

    Test policy execution against specific identities without making changes

    List Available Integrations

    Discover lifecycle management capabilities by integration type

    Create Access Profile Type

    Create custom access profile types for organizational needs

    List Access Profile Types

    Retrieve available access profile types

    List Lifecycle Management Datasources

    Discover which datasources have lifecycle management enabled and their basic capabilities

    Get Lifecycle Management Datasource

    Get detailed information about a specific datasource including supported actions, syncable attributes, and grantable entitlements

    List by Action Type

    Find datasources that support specific action types and entity relationships

  • Get an overview of all configured policies

  • Filter policies by state or other criteria

  • Build policy management interfaces

  • Audit policy configurations across your organization

  • API Reference

    Request Examples

    Response Examples

    GET /api/private/lifecycle_management/policies
    curl -X GET "https://your-tenant.vezacloud.com/api/private/lifecycle_management/policies?limit=50&state=active" \
      -H "Authorization: Bearer YOUR_API_TOKEN" \
      -H "Content-Type: application/json"
    {
      "data": [
        {
          "id": "policy-123e4567-e89b-12d3-a456-426614174000",
          "name": "Onboarding Access Policy",
          "description": "Automatically provision access for new employees",
          "state": "active",
          "created_at": "2024-01-15T10:30:00Z",
          "updated_at": "2024-02-01T14:22:00Z",
          "created_by": "[email protected]",
          "configuration": {
            "conditions": [
              {
                "type": "user_attribute",
                "attribute": "department",
                "operator": "equals",
                "value": "Engineering"
              }
            ],
            "actions": [
              {
                "type": "grant_access",
                "resource": "development-tools",
                "access_level": "read_write"
              }
            ]
          }
        }
      ],
      "pagination": {
        "total": 25,
        "limit": 50,
        "offset": 0,
        "has_more": false
      }
    }

    Get Policy

    Retrieve details for a specific policy by ID

    Endpoint

    Description

    Retrieve detailed information about a specific policy in your Veza Lifecycle Management configuration. This endpoint returns the complete policy definition including all conditions, actions, execution history, and metadata.

    Use this endpoint to:

    List Available Integrations

    List all integrations available for use with access profiles

    Endpoint

    Description

    Retrieves a list of all integrations that are available for use with access profiles in your organization. This endpoint shows which systems can be used as targets for access management operations within access profiles.

    Use this endpoint to:

  • View complete policy configuration details

  • Debug policy execution issues

  • Audit policy changes and history

  • Export policy configurations for backup or replication

  • API Reference

    Request Examples

    Response Examples

    GET /api/private/lifecycle_management/policies/{policy_id}
    curl -X GET "https://your-tenant.vezacloud.com/api/private/lifecycle_management/policies/policy-123e4567-e89b-12d3-a456-426614174000?include_history=true" \
      -H "Authorization: Bearer YOUR_API_TOKEN" \
      -H "Content-Type: application/json"
    {
      "data": {
        "id": "policy-123e4567-e89b-12d3-a456-426614174000",
        "name": "Onboarding Access Policy",
        "description": "Automatically provision access for new employees",
        "state": "active",
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-02-01T14:22:00Z",
        "created_by": "[email protected]",
        "last_executed": "2024-02-15T09:15:00Z",
        "configuration": {
          "conditions": [
            {
              "id": "condition-1",
              "type": "user_attribute",
              "attribute": "department",
              "operator": "equals",
              "value": "Engineering",
              "created_at": "2024-01-15T10:30:00Z"
            }
          ],
          "actions": [
            {
              "id": "action-1",
              "type": "grant_access",
              "resource": "development-tools",
              "access_level": "read_write",
              "created_at": "2024-01-15T10:30:00Z"
            }
          ],
          "approval_required": false
        },
        "execution_history": [
          {
            "execution_id": "exec-abc123",
            "executed_at": "2024-02-15T09:15:00Z",
            "status": "success",
            "affected_users": 3,
            "actions_taken": 5
          }
        ],
        "metrics": {
          "total_executions": 25,
          "successful_executions": 24,
          "failed_executions": 1,
          "average_execution_time_ms": 1250,
          "last_30_days": {
            "executions": 12,
            "affected_users": 8
          }
        }
      }
    }

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

  • Discover which integration types are supported in your environment

  • Verify that required integrations are available before creating access profiles

  • Plan access profile configurations across different systems

  • API Reference

    Request Examples

    Response Examples

    GET /api/private/lifecycle_management/access_profiles:available_integrations
    curl -X GET "$BASE_URL/api/private/lifecycle_management/access_profiles:available_integrations" \
      -H "authorization: Bearer $VEZA_TOKEN"
    {
      "integrations": [
        "ACTIVE_DIRECTORY",
        "AWS",
        "AZURE",
        "GOOGLE",
        "OKTA",
        "SALESFORCE",
        "WORKDAY"
      ]
    }

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See Authentication for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See Authentication for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See Authentication for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    Create Policy

    Create a new policy for identity lifecycle management with conditions and actions

    Endpoint

    Description

    Create a new policy in your Veza Lifecycle Management configuration. Policies define the main object for controlling Lifecycle Management operations and include descriptions. Each policy has multiple versions, one of which is live and up to one of which is in draft mode, with all others being historical.

    Use this endpoint to:

    Update Policy State

    Change policy state to control execution behavior (enable, disable, pause)

    Endpoint

    Description

    Change the state of a policy to control its execution behavior. Policy states determine whether the policy actively processes events and executes actions. This endpoint provides a quick way to enable, disable, or pause policy execution without modifying the policy configuration.

    Use this endpoint to:

    Add Action to Policy Configuration

    Add a new action to an existing policy's configuration to define automated responses

    Endpoint

    Description

    Add a new action to an existing policy's configuration. Actions define what operations the policy performs when all conditions are met. Multiple actions can be executed in sequence or parallel depending on the action type and dependencies.

    • Create new lifecycle management policies

    • Define data source connections for identity management

    • Configure notification settings for policy events

    • Set up safety limits and retry behavior

    Prerequisites: Before creating policies, ensure you have identified your Source of Identity (SOI) datasources using the List Lifecycle Management Datasources endpoint.

    Important: Policy vs Version States

    There are two different state systems in the Lifecycle Management API:

    • Policy States: Control the overall policy execution (INITIAL, RUNNING, PAUSED, DRY_RUN, PENDING)

    • Version States: Control individual policy version status (DRAFT, PUBLISHED, RETIRED)

    When creating a policy with this endpoint, use Policy States. Each policy can have multiple versions, each with their own version state.

    API Reference

    Request

    Request Body

    Field
    Type
    Required
    Description

    name

    string

    Yes

    Human-readable name for the policy

    description

    string

    No

    Detailed description of the policy's purpose

    state

    string

    No

    Complex Field Details

    Event Notification Settings: The event_notification_settings array contains objects that define when and how to send notifications:

    Field
    Type
    Description

    event_type

    string

    The type of event that triggers the notification

    notification_settings

    object

    Configuration for how notifications are sent

    Secondary Source of Identity: The secondary_source_of_identities array allows enriching the primary source of identity:

    Field
    Type
    Description

    datasource_ids

    array[string]

    Data sources for the secondary identity source

    correlation_attribute_names

    object

    Key-value pairs mapping primary to secondary attributes

    only_enrich_existing

    boolean

    If true, only enriches existing identities, doesn't create new ones

    Identity Attribute Mappings: The identity_attribute_mappings array maps identity attributes to entity attributes:

    Field
    Type
    Description

    identity_attribute

    string

    The identity attribute type (EMAIL, TITLE, EMPLOYEE_ID, DEPARTMENT, MANAGER_IDS)

    entity_attribute_name

    string

    The name of the entity attribute to map to

    Safety Limit Settings: The safety_limit_settings object prevents mass changes:

    Field
    Type
    Description

    enable_change_limit

    boolean

    Enable stopping changes when safety limit is reached

    enable_predictive_change_limit

    boolean

    Enable blocking all changes if predicted to exceed limit

    max_identities_affected_percentage

    float

    Maximum percentage of identities that can be affected (0-100)

    max_identities_affected_count

    integer

    Maximum number of identities that can be affected

    Request Examples

    Basic Policy Creation

    Response

    Example Response

    POST /api/private/lifecycle_management/policies
    curl -X POST "https://your-tenant.vezacloud.com/api/private/lifecycle_management/policies" \
      -H "Authorization: Bearer YOUR_API_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "Employee Onboarding Policy",
        "description": "Automated access provisioning for new employees",
        "state": "INITIAL",
        "datasource_ids": ["549a4b5e-0328-4c87-a19d-ee8a2926d1aa"]
      }'
    {
      "value": {
        "access_profiles_used": [],
        "created_at": "2024-07-15T16:14:05.810837840Z",
        "created_by": "eacb938c-431b-4023-93b1-417eb16b9fdf",
        "current_version": {
          "policy_id": "d5af38e8-df8e-416b-80cc-3aafb6bef594",
          "version_number": 1,
          "state": "DRAFT",
          "config": {
            "workflows": [],
            "actions": [],
            "attribute_common_transformers": []
          }
        },
        "current_version_number": 1,
        "datasource_ids": [
          "549a4b5e-0328-4c87-a19d-ee8a2926d1aa"
        ],
        "description": "Automated access provisioning for new employees",
        "draft_version_number": 0,
        "entity_type": "WorkdayWorker",
        "event_notification_settings": [],
        "id": "d5af38e8-df8e-416b-80cc-3aafb6bef594",
        "initial_complete": false,
        "name": "Employee Onboarding Policy",
        "provider_external_ids": [
          "https://wd5-impl-services1.workday.com/veza_preview"
        ],
        "secondary_source_of_identities": [],
        "state": "INITIAL",
        "updated_at": "2024-07-15T16:14:05.810837840Z"
      }
    }

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

  • Activate draft policies for production use

  • Temporarily disable policies during maintenance

  • Pause problematic policies for troubleshooting

  • Archive obsolete policies without deletion

  • API Reference

    Request Examples

    Path Parameters

    Parameter
    Type
    Required
    Description

    policy_id

    string

    Yes

    Unique identifier of the policy to update

    Request Body

    Field
    Type
    Required
    Description

    state

    string

    Yes

    New state for the policy: active, inactive, draft

    reason

    string

    No

    Optional reason for the state change (for audit trail)

    Example Request

    Response Examples

    Policy States

    State
    Description
    Behavior

    draft

    Policy is being developed or tested

    Does not execute, can be freely modified

    active

    Policy is running in production

    Actively processes events and executes actions

    inactive

    Policy is temporarily disabled

    Does not execute, but configuration is preserved

    PATCH /api/private/lifecycle_management/policies/{policy_id}
    curl -X PATCH "https://your-tenant.vezacloud.com/api/private/lifecycle_management/policies/policy-123e4567-e89b-12d3-a456-426614174000" \
      -H "Authorization: Bearer YOUR_API_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "state": "active",
        "reason": "Policy testing completed, ready for production"
      }'
    {
      "data": {
        "id": "policy-123e4567-e89b-12d3-a456-426614174000",
        "name": "Onboarding Access Policy",
        "description": "Automatically provision access for new employees",
        "state": "active",
        "previous_state": "draft",
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-02-15T14:22:00Z",
        "created_by": "[email protected]",
        "updated_by": "[email protected]",
        "state_change_history": [
          {
            "from_state": "draft",
            "to_state": "active",
            "changed_at": "2024-02-15T14:22:00Z",
            "changed_by": "[email protected]",
            "reason": "Policy testing completed, ready for production"
          }
        ]
      }
    }

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    New actions are immediately active for policies in the active state. Actions execute in the order they were added to the policy.

    API Reference

    Request Examples

    Path Parameters

    Parameter
    Type
    Required
    Description

    policy_id

    string

    Yes

    Unique identifier of the policy

    version_number

    integer

    Yes

    Version number of the policy version to modify

    Request Body

    Field
    Type
    Required
    Description

    workflow

    string

    Yes

    Name of the workflow to add the action to

    condition

    string

    Yes

    Name of the condition within the workflow to add the action to

    action

    object

    Yes

    Action Object Fields

    Field
    Type
    Required
    Description

    name

    string

    Yes

    Name of the action

    description

    string

    No

    Description of the action

    type

    string

    Yes

    Response Examples

    Action Configuration

    Actions in Veza Lifecycle Management support various operation types. The config field contains action-specific configuration parameters that vary based on the action type. Common action types include:

    • SYNC_IDENTITIES - Synchronize identity information

    • MANAGE_RELATIONSHIPS - Manage identity relationships

    • CREATE_EMAIL - Send email notifications

    • DEPROVISION_IDENTITY - Remove or deactivate identities

    • WRITE_BACK_EMAIL - Write back email information

    • PAUSE - Pause workflow execution

    • SEND_NOTIFICATION - Send various types of notifications

    • CUSTOM_ACTION - Execute custom action logic

    • CREATE_ACCESS_REVIEW - Initiate access review workflows

    Each action type requires specific configuration parameters in the config field.

    POST /api/private/lifecycle_management/policies/{policy_id}/versions/{version_number}:add_action

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    Authentication
    get
    Authorizations
    Path parameters
    idstringRequired
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    get
    Authentication
    get
    Authorizations
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    get

    List Access Profiles

    Retrieve all access profiles with optional filtering and detailed entity information

    Endpoint

    GET /api/private/lifecycle_management/access_profiles

    Description

    Lists all Veza Access Profiles in your organization with support for filtering and optional detailed entity information. You can filter results using SCIM-format filter expressions and request additional entity details to understand the relationships each profile contains.

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    API Reference

    Request schema

    Query parameters

    Query parameter
    Type
    Required?
    Description

    Filter Parameters

    Veza uses the SCIM filter format including AND/OR logical operations. Examples:

    Filter
    Description
    Example URL

    Complex filters can be created using logical operators:

    Filters use SCIM format with URL encoding. The co operator checks if a value is contained within an array, while eq requires an exact match.

    Request Examples

    Response Examples

    Update Access Profile Version

    Update entity relationships of a specific access profile version

    Endpoint

    PATCH /api/private/lifecycle_management/access_profiles/{id}/versions/{version}

    Description

    Updates the details of a specific version of an Access Profile. This endpoint allows you to modify the entity relationships and inheritance configuration of an access profile version.

    Important: An update to the entities_to_create_relationships_to and inherit_entities_from_access_profiles needs to happen in the version of the profile, not the actual profile. You will need to get the current_version_number from the access profile first.

    Note that updates to relationships must be made to the version, not the profile itself. This versioning system allows you to draft changes before publishing them to users.

    API Reference

    Request schema

    Path parameters

    Path parameter
    Type
    Required?
    Description

    Request body

    Field
    Type
    Required?
    Description

    Entity Object Schema

    Field
    Type
    Required?
    Description

    Request Examples

    Getting the Current Version: Use or Get Access Profile to retrieve the current_version_number before making updates.

    Response Examples

    patch
    Authorizations
    Path parameters
    value.idstringRequired
    Query parameters
    update_maskstring · field-maskOptional
    Body
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    patch
    get
    Authorizations
    Query parameters
    filterstringOptional
    order_bystringOptional
    page_sizeinteger · int32Optional
    page_tokenstringOptional
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    get
    idstringRead-onlyOptional
    namestringOptional
    descriptionstringOptional
    stateinteger · enumOptional
    profile_typestringOptional
    current_version_numberinteger · int32Read-onlyOptional

    The version that is currently live and running

    draft_version_numberinteger · int32Read-onlyOptional

    The version that is being edited and in draft form (0 if there is none)

    used_by_workflowbooleanRead-onlyOptional
    integrationsstring[]Read-onlyOptional
    current_versionall ofRead-onlyOptional
    access_profiles_inheritedstring[]Read-onlyOptional
    access_profiles_inherited_bystring[]Read-onlyOptional
    inherits_from_other_profilesbooleanRead-onlyOptional
    inherited_by_other_profilesbooleanRead-onlyOptional
    labelsstring[]Optional
    provider_idsstring[]Read-onlyOptional
    provider_external_idsstring[]Read-onlyOptional
    datasource_idsstring[]Optional
    rbac_idstringRead-onlyOptional
    requestablebooleanRead-onlyOptional
    require_approval_to_startbooleanOptional
    started_atstring · date-timeRead-onlyOptional
    started_bystringRead-onlyOptional
    access_request_policy_idstringRead-onlyOptional

    The access request policy that is associated with the access profile

    last_synced_atstring · date-timeRead-onlyOptional

    Last time the profile was synced with the target

    sync_allowedbooleanRead-onlyOptional

    Sets if this profile is allowed to sync or not, this is only allowed if the type's create_entitlement_based_on_profile is true

    last_sync_job_idsstring[]Read-onlyOptional

    The Job IDs for the last time it was synced

    identity_created_bystringRead-onlyOptional

    The identity that created the access profile

    last_sync_error_messagestringRead-onlyOptional

    If the sync job failed what is the error message

    profile_type_rbac_idstringOptional
    created_bystringRead-onlyOptional
    created_atstring · date-timeRead-onlyOptional
    updated_atstring · date-timeRead-onlyOptional
    {
      "value": {
        "id": "text",
        "name": "text",
        "description": "text",
        "state": 1,
        "profile_type": "text",
        "current_version_number": 1,
        "draft_version_number": 1,
        "used_by_workflow": true,
        "integrations": [
          "text"
        ],
        "current_version": {
          "access_profile_id": "text",
          "version_number": 1,
          "state": 1,
          "entities_to_create_relationships_to": [
            {
              "entity_type": "text",
              "datasource_id": "text",
              "entity_id": "text",
              "assigned_to_entity_type": "text",
              "assigned_to_entity_id": "text",
              "extraction_datasource_id": "text",
              "provider_id": "text",
              "provider_external_id": "text",
              "entity_name": "text",
              "native_id": "text",
              "grant_by": 1,
              "created_by_access_profile": true,
              "custom_properties": {
                "ANY_ADDITIONAL_PROPERTY": "text"
              },
              "sync_identity_action": {
                "policy_id": "text",
                "name": "text"
              },
              "condition": {
                "type": 1,
                "condition_string": "text"
              },
              "create_entitlement_detail_id": "text",
              "created_at": "2025-08-26T13:07:04.310Z"
            }
          ],
          "inherit_entities_from_access_profiles": [
            "text"
          ],
          "members": [
            "text"
          ],
          "rbac_id": "text",
          "access_request_policy_id": "text",
          "application_datasource_id": "text",
          "application_sync_identity_action": {
            "policy_id": "text",
            "name": "text"
          },
          "created_by": "text",
          "created_at": "2025-08-26T13:07:04.310Z",
          "updated_at": "2025-08-26T13:07:04.310Z",
          "published_by": "text",
          "published_at": "2025-08-26T13:07:04.310Z"
        },
        "access_profiles_inherited": [
          "text"
        ],
        "access_profiles_inherited_by": [
          "text"
        ],
        "inherits_from_other_profiles": true,
        "inherited_by_other_profiles": true,
        "labels": [
          "text"
        ],
        "provider_ids": [
          "text"
        ],
        "provider_external_ids": [
          "text"
        ],
        "datasource_ids": [
          "text"
        ],
        "rbac_id": "text",
        "member_details": [
          {
            "access_profile_id": "text",
            "access_profile_name": "text",
            "identity_id": "text",
            "identity_name": "text",
            "created_from": 1,
            "workflow": "text"
          }
        ],
        "requestable": true,
        "require_approval_to_start": true,
        "started_at": "2025-08-26T13:07:04.310Z",
        "started_by": "text",
        "catalog_item_info": {
          "name": "text",
          "description": "text",
          "markdown_description": "text",
          "icon": "text",
          "recommended": true
        },
        "access_request_policy_id": "text",
        "created_entitlements": [
          {
            "datasource_id": "text",
            "entity_type": "text",
            "attribute_transformers": {
              "values": [
                {
                  "destination_attribute": "text",
                  "destination_value_formatter": "text",
                  "continuous_sync": true,
                  "additional_value_formatter": [
                    "text"
                  ],
                  "pipeline_functions": "text",
                  "unique_identifier": true
                }
              ]
            },
            "add_member_condition": {
              "type": 1,
              "condition_string": "text"
            },
            "created_entity_id": "text",
            "access_request_id": "text",
            "id": "text",
            "last_sync_job_id": "text"
          }
        ],
        "last_synced_at": "2025-08-26T13:07:04.310Z",
        "sync_allowed": true,
        "last_sync_job_ids": [
          "text"
        ],
        "identity_created_by": "text",
        "last_sync_error_message": "text",
        "profile_type_rbac_id": "text",
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z",
        "custom_properties": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    }
    PATCH /api/private/lifecycle_management/access_profiles/{value.id} HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 350
    
    {
      "name": "text",
      "description": "text",
      "state": 1,
      "profile_type": "text",
      "labels": [
        "text"
      ],
      "datasource_ids": [
        "text"
      ],
      "require_approval_to_start": true,
      "catalog_item_info": {
        "name": "text",
        "description": "text",
        "markdown_description": "text",
        "icon": "text",
        "recommended": true
      },
      "profile_type_rbac_id": "text",
      "custom_properties": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"
    {
      "values": [
        {
          "id": "text",
          "name": "text",
          "description": "text",
          "state": 1,
          "current_version_number": 1,
          "draft_version_number": 1,
          "entity_type": "text",
          "datasource_ids": [
            "text"
          ],
          "access_profiles_used": [
            "text"
          ],
          "provider_external_ids": [
            "text"
          ],
          "current_version": {
            "policy_id": "text",
            "version_number": 1,
            "state": 1,
            "config": {
              "workflows": [
                {
                  "trigger_type": 1,
                  "description": "text",
                  "trigger_string": "text",
                  "conditions_on_success": [
                    {
                      "condition_type": 1,
                      "condition_string": "text",
                      "actions_to_run": [
                        {
                          "name": "text",
                          "type": 1
                        }
                      ],
                      "name": "text",
                      "continue_actions_if_any_error": true,
                      "state": 1
                    }
                  ],
                  "continuous_sync": true,
                  "name": "text",
                  "state": 1,
                  "attribute_to_get_execute_date": "text",
                  "local_time_zone_diff_from_utc": 1,
                  "local_time_zone_attribute": "text",
                  "trigger_at_local_time_hour": 1,
                  "execute_date_time_formatters": [
                    {
                      "date_formatter": "text",
                      "pipeline_functions": "text"
                    }
                  ],
                  "grace_period_in_sec": 1,
                  "skip_trigger_recheck_after_grace_period": true,
                  "priority": 1
                }
              ],
              "actions": [
                {
                  "name": "text",
                  "description": "text",
                  "type": 1,
                  "config": {
                    "@type": "text",
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  },
                  "conditions_on_success": [
                    {
                      "condition_type": 1,
                      "condition_string": "text",
                      "actions_to_run": [
                        {
                          "name": "text",
                          "type": 1
                        }
                      ],
                      "name": "text",
                      "continue_actions_if_any_error": true,
                      "state": 1
                    }
                  ],
                  "action_notification_settings": [
                    {
                      "notification_settings": {
                        "notification_type": 1,
                        "notification_id": "text",
                        "type_settings": {
                          "@type": "text",
                          "ANY_ADDITIONAL_PROPERTY": "anything"
                        }
                      },
                      "on_success": true,
                      "on_failure": true
                    }
                  ],
                  "state": 1,
                  "run_once": true
                }
              ],
              "attribute_common_transformers": [
                {
                  "name": "text",
                  "description": "text",
                  "entity_type": "text",
                  "entity_attribute_transformers": [
                    {
                      "destination_attribute": "text",
                      "destination_value_formatter": "text",
                      "continuous_sync": true,
                      "additional_value_formatter": [
                        "text"
                      ],
                      "pipeline_functions": "text",
                      "unique_identifier": true
                    }
                  ]
                }
              ],
              "lookup_table_references": [
                {
                  "name": "text",
                  "description": "text",
                  "column_names": [
                    "text"
                  ],
                  "lookup_table_id": "text"
                }
              ],
              "mover_properties": [
                "text"
              ],
              "password_complexity_rules": [
                {
                  "name": "text",
                  "length": 1,
                  "use_special_characters": true,
                  "use_numbers": true,
                  "use_uppercase": true,
                  "use_lowercase": true,
                  "disallowed_characters": "text"
                }
              ],
              "transformer_functions": [
                {
                  "function_expression": "text",
                  "definition": {
                    "name": "text",
                    "description": "text",
                    "parameters": [
                      {
                        "name": "text",
                        "description": "text",
                        "type": 1,
                        "allow_empty": true,
                        "optional": true,
                        "valid_values": [
                          "text"
                        ]
                      }
                    ],
                    "require_no_input": true,
                    "return_multiple_values": true,
                    "input_is_optional": true
                  }
                }
              ]
            },
            "config_version": "text",
            "created_by": "text",
            "created_at": "2025-08-26T13:07:04.310Z",
            "updated_at": "2025-08-26T13:07:04.310Z",
            "published_by": "text",
            "published_at": "2025-08-26T13:07:04.310Z"
          },
          "initial_complete": true,
          "secondary_source_of_identities": [
            {
              "entity_type": "text",
              "datasource_ids": [
                "text"
              ],
              "provider_external_ids": [
                "text"
              ],
              "correlation_attribute_names": {
                "ANY_ADDITIONAL_PROPERTY": "text"
              },
              "only_enrich_existing": true
            }
          ],
          "sync_only_when_source_changes": true,
          "time_before_sync_if_no_source_changes_in_minutes": 1,
          "identity_attribute_mappings": [
            {
              "identity_attribute": 1,
              "entity_attribute_name": "text"
            }
          ],
          "safety_limit_settings": {
            "enable_change_limit": true,
            "enable_predictive_change_limit": true,
            "max_identities_affected_percentage": 1,
            "max_identities_affected_count": "text",
            "warning_email_addresses": [
              "text"
            ]
          },
          "safety_limit_warning": {
            "warning_type": 1,
            "occurred_at": "2025-08-26T13:07:04.310Z",
            "caused_by_extraction_event": {
              "id": "text",
              "data_source_id": "text",
              "provider_id": "text",
              "provider_type": "text",
              "state": 1,
              "provider_external_id": "text",
              "agent_type": 1,
              "error_message": "text",
              "extracted_at": "2025-08-26T13:07:04.310Z",
              "policy_id": "text",
              "event_type": 1,
              "number_of_identities_affected": "text",
              "disregard_change_limit": true
            },
            "identities_changed_count": "text",
            "predicted_identities_changed_count": "text"
          },
          "no_retry_for_failed_workflow": true,
          "max_retries_for_failed_workflow": 1,
          "event_notification_settings": [
            {
              "event_type": 1,
              "notification_settings": {
                "notification_type": 1,
                "notification_id": "text",
                "type_settings": {
                  "@type": "text",
                  "ANY_ADDITIONAL_PROPERTY": "anything"
                }
              },
              "on_success": true,
              "on_failure": true
            }
          ],
          "created_by": "text",
          "created_at": "2025-08-26T13:07:04.310Z",
          "updated_at": "2025-08-26T13:07:04.310Z"
        }
      ],
      "next_page_token": "text",
      "has_more": true
    }
    GET /api/private/lifecycle_management/policies HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Accept: */*
    
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"
    {
      "value": {
        "id": "text",
        "name": "text",
        "description": "text",
        "state": 1,
        "current_version_number": 1,
        "draft_version_number": 1,
        "entity_type": "text",
        "datasource_ids": [
          "text"
        ],
        "access_profiles_used": [
          "text"
        ],
        "provider_external_ids": [
          "text"
        ],
        "current_version": {
          "policy_id": "text",
          "version_number": 1,
          "state": 1,
          "config": {
            "workflows": [
              {
                "trigger_type": 1,
                "description": "text",
                "trigger_string": "text",
                "conditions_on_success": [
                  {
                    "condition_type": 1,
                    "condition_string": "text",
                    "actions_to_run": [
                      {
                        "name": "text",
                        "type": 1
                      }
                    ],
                    "name": "text",
                    "continue_actions_if_any_error": true,
                    "state": 1
                  }
                ],
                "continuous_sync": true,
                "name": "text",
                "state": 1,
                "attribute_to_get_execute_date": "text",
                "local_time_zone_diff_from_utc": 1,
                "local_time_zone_attribute": "text",
                "trigger_at_local_time_hour": 1,
                "execute_date_time_formatters": [
                  {
                    "date_formatter": "text",
                    "pipeline_functions": "text"
                  }
                ],
                "grace_period_in_sec": 1,
                "skip_trigger_recheck_after_grace_period": true,
                "priority": 1
              }
            ],
            "actions": [
              {
                "name": "text",
                "description": "text",
                "type": 1,
                "config": {
                  "@type": "text",
                  "ANY_ADDITIONAL_PROPERTY": "anything"
                },
                "conditions_on_success": [
                  {
                    "condition_type": 1,
                    "condition_string": "text",
                    "actions_to_run": [
                      {
                        "name": "text",
                        "type": 1
                      }
                    ],
                    "name": "text",
                    "continue_actions_if_any_error": true,
                    "state": 1
                  }
                ],
                "action_notification_settings": [
                  {
                    "notification_settings": {
                      "notification_type": 1,
                      "notification_id": "text",
                      "type_settings": {
                        "@type": "text",
                        "ANY_ADDITIONAL_PROPERTY": "anything"
                      }
                    },
                    "on_success": true,
                    "on_failure": true
                  }
                ],
                "state": 1,
                "run_once": true
              }
            ],
            "attribute_common_transformers": [
              {
                "name": "text",
                "description": "text",
                "entity_type": "text",
                "entity_attribute_transformers": [
                  {
                    "destination_attribute": "text",
                    "destination_value_formatter": "text",
                    "continuous_sync": true,
                    "additional_value_formatter": [
                      "text"
                    ],
                    "pipeline_functions": "text",
                    "unique_identifier": true
                  }
                ]
              }
            ],
            "lookup_table_references": [
              {
                "name": "text",
                "description": "text",
                "column_names": [
                  "text"
                ],
                "lookup_table_id": "text"
              }
            ],
            "mover_properties": [
              "text"
            ],
            "password_complexity_rules": [
              {
                "name": "text",
                "length": 1,
                "use_special_characters": true,
                "use_numbers": true,
                "use_uppercase": true,
                "use_lowercase": true,
                "disallowed_characters": "text"
              }
            ],
            "transformer_functions": [
              {
                "function_expression": "text",
                "definition": {
                  "name": "text",
                  "description": "text",
                  "parameters": [
                    {
                      "name": "text",
                      "description": "text",
                      "type": 1,
                      "allow_empty": true,
                      "optional": true,
                      "valid_values": [
                        "text"
                      ]
                    }
                  ],
                  "require_no_input": true,
                  "return_multiple_values": true,
                  "input_is_optional": true
                }
              }
            ]
          },
          "config_version": "text",
          "created_by": "text",
          "created_at": "2025-08-26T13:07:04.310Z",
          "updated_at": "2025-08-26T13:07:04.310Z",
          "published_by": "text",
          "published_at": "2025-08-26T13:07:04.310Z"
        },
        "initial_complete": true,
        "secondary_source_of_identities": [
          {
            "entity_type": "text",
            "datasource_ids": [
              "text"
            ],
            "provider_external_ids": [
              "text"
            ],
            "correlation_attribute_names": {
              "ANY_ADDITIONAL_PROPERTY": "text"
            },
            "only_enrich_existing": true
          }
        ],
        "sync_only_when_source_changes": true,
        "time_before_sync_if_no_source_changes_in_minutes": 1,
        "identity_attribute_mappings": [
          {
            "identity_attribute": 1,
            "entity_attribute_name": "text"
          }
        ],
        "safety_limit_settings": {
          "enable_change_limit": true,
          "enable_predictive_change_limit": true,
          "max_identities_affected_percentage": 1,
          "max_identities_affected_count": "text",
          "warning_email_addresses": [
            "text"
          ]
        },
        "safety_limit_warning": {
          "warning_type": 1,
          "occurred_at": "2025-08-26T13:07:04.310Z",
          "caused_by_extraction_event": {
            "id": "text",
            "data_source_id": "text",
            "provider_id": "text",
            "provider_type": "text",
            "state": 1,
            "provider_external_id": "text",
            "agent_type": 1,
            "error_message": "text",
            "extracted_at": "2025-08-26T13:07:04.310Z",
            "policy_id": "text",
            "event_type": 1,
            "number_of_identities_affected": "text",
            "disregard_change_limit": true
          },
          "identities_changed_count": "text",
          "predicted_identities_changed_count": "text"
        },
        "no_retry_for_failed_workflow": true,
        "max_retries_for_failed_workflow": 1,
        "event_notification_settings": [
          {
            "event_type": 1,
            "notification_settings": {
              "notification_type": 1,
              "notification_id": "text",
              "type_settings": {
                "@type": "text",
                "ANY_ADDITIONAL_PROPERTY": "anything"
              }
            },
            "on_success": true,
            "on_failure": true
          }
        ],
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z"
      }
    }
    GET /api/private/lifecycle_management/policies/{id} HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Accept: */*
    
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"
    {
      "integrations": [
        "text"
      ]
    }
    GET /api/private/lifecycle_management/access_profiles:available_integrations HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Accept: */*
    
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"

    profile_type eq "13ddf132-0868-4330-a0a3-41b088f6a4dc"

    Exact match on profile type

    ?filter=profile_type+eq+%2213ddf132-0868-4330-a0a3-41b088f6a4dc%22

    List all access profiles:

    curl -X GET "$BASE_URL/api/private/lifecycle_management/access_profiles" \
      -H "authorization: Bearer $VEZA_TOKEN"

    List profiles with detailed entity information:

    curl -X GET "$BASE_URL/api/private/lifecycle_management/access_profiles?entity_extra_info=true" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Filter by integration type:

    curl -X GET "$BASE_URL/api/private/lifecycle_management/access_profiles?filter=integrations+co+%22SALESFORCE%22" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Filter by multiple criteria:

    curl -X GET "$BASE_URL/api/private/lifecycle_management/access_profiles?filter=%28integrations+co+%22SALESFORCE%22+or+integrations+co+%22AWS%22%29+and+profile_type+eq+%22a730b9cd-d600-4fb7-a803-8ab5b697c0b9%22" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Filter by labels:

    curl -X GET "$BASE_URL/api/private/lifecycle_management/access_profiles?filter=labels+co+%22requestable%22" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Standard list response:

    {
      "has_more": false,
      "next_page_token": "",
      "values": [
        {
          "id": "3a2371b6-95ec-4d9e-b95c-d75d51daa39b",
          "name": "Developer",
          "current_version_number": 1,
          "state": "RUNNING",
          "profile_type": "a730b9cd-d600-4fb7-a803-8ab5b697c0b9",
          "access_profiles_inherited": [
            "software-developers-profile-id"
          ],
          "access_profiles_inherited_by": [],
          "created_at": "2024-04-12T15:29:36.709931506Z",
          "created_by": "3cedc292-4014-45e9-b7d9-8cb1695e1454",
          "current_version": {
            "access_profile_id": "3a2371b6-95ec-4d9e-b95c-d75d51daa39b",
            "created_at": "2024-04-12T15:29:36.711717422Z",
            "created_by": "3cedc292-4014-45e9-b7d9-8cb1695e1454",
            "entities_to_create_relationships_to": [
              {
                "entity_type": "SalesforceGroup",
                "datasource_id": "sf-datasource-id",
                "entity_id": "veza-dev-ed:00GDp0000019laeMAA"
              }
            ],
            "inherit_entities_from_access_profiles": [
              "software-developers-profile-id"
            ],
            "state": "PUBLISHED",
            "updated_at": "2024-04-12T15:29:36.711717422Z",
            "version_number": 1
          },
          "description": "",
          "draft_version_number": 0,
          "inherited_by_other_profiles": false,
          "inherits_from_other_profiles": true,
          "integrations": [
            "SALESFORCE"
          ],
          "provider_ids": ["sf-provider-id"],
          "provider_external_ids": ["external-sf-id"],
          "labels": ["requestable", "development"],
          "updated_at": "2024-04-12T15:29:36.743000797Z",
          "used_by_workflow": false
        }
      ]
    }

    Response with entity_extra_info=true:

    Detailed Response Structure
    {
      "has_more": false,
      "next_page_token": "",
      "values": [
        {
          "id": "3a2371b6-95ec-4d9e-b95c-d75d51daa39b",
          "name": "Developer",
          "current_version_number": 1,
          "state": "RUNNING",
          "profile_type": "a730b9cd-d600-4fb7-a803-8ab5b697c0b9",
          "access_profiles_inherited": [
            "software-developers-profile-id"
          ],
          "access_profiles_inherited_by": [],
          "created_at": "2024-04-12T15:29:36.709931506Z",
          "created_by": "3cedc292-4014-45e9-b7d9-8cb1695e1454",
          "current_version": {
            "access_profile_id": "3a2371b6-95ec-4d9e-b95c-d75d51daa39b",
            "created_at": "2024-04-12T15:29:36.711717422Z",
            "created_by": "3cedc292-4014-45e9-b7d9-8cb1695e1454",
            "entities_to_create_relationships_to": [
              {
                "entity_type": "SalesforceGroup",
                "datasource_id": "lifecycle-manager-datasource-id",
                "extraction_datasource_id": "extraction-datasource-id", 
                "provider_id": "provider-id",
                "entity_name": "Developer Group",
                "provider_external_id": "external-provider-id",
                "sync_identity_action": {
                  "policy_id": "policy-12345",
                  "name": "salesforce_sync_action"
                }
              }
            ],
            "inherit_entities_from_access_profiles": [
              "software-developers-profile-id"
            ],
            "state": "PUBLISHED",
            "updated_at": "2024-04-12T15:29:36.711717422Z",
            "version_number": 1
          },
          "description": "",
          "draft_version_number": 0,
          "inherited_by_other_profiles": false,
          "inherits_from_other_profiles": true,
          "integrations": [
            "SALESFORCE"
          ],
          "provider_ids": ["provider-id"],
          "provider_external_ids": ["external-provider-id"],
          "labels": ["requestable", "development"],
          "updated_at": "2024-04-12T15:29:36.743000797Z",
          "used_by_workflow": false
        }
      ],
      "entities_to_create_relationships_to": [
        {
          "entity_type": "SalesforceGroup",
          "datasource_id": "lifecycle-manager-datasource-id",
          "extraction_datasource_id": "extraction-datasource-id",
          "provider_id": "provider-id",
          "entity_name": "Developer Group",
          "provider_external_id": "external-provider-id"
        }
      ]
    }
    get
    Authorizations
    Query parameters
    filterstringOptional
    order_bystringOptional
    page_sizeinteger · int32Optional
    page_tokenstringOptional
    entity_extra_infobooleanOptional
    include_requestablebooleanOptional
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json

    filter

    string

    Optional

    SCIM filter expression to filter results

    entity_extra_info

    boolean

    Optional

    When true, includes additional entity relationship details with provider names and external IDs

    integrations co "SALESFORCE"

    Contains SALESFORCE in integrations

    ?filter=integrations+co+%22SALESFORCE%22

    integrations eq "SALESFORCE"

    Exact match on SALESFORCE

    ?filter=integrations+eq+%22SALESFORCE%22

    provider_ids co "3cedc292-4014-45e9-b7d9-8cb1695e1454"

    Contains provider ID

    ?filter=provider_ids+co+%223cedc292-4014-45e9-b7d9-8cb1695e1454%22

    labels co "requestable"

    Contains label

    (integrations co "SALESFORCE" or integrations co "AWS") and profile_type eq "13ddf132-0868-4330-a0a3-41b088f6a4dc"
    Authentication
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"

    ?filter=labels+co+%22requestable%22

    sync_identity_action

    object

    Optional

    Action to use when creating an identity for this entity

    Update direct entity relationships:

    curl -X PATCH "$BASE_URL/api/private/lifecycle_management/access_profiles/3a2371b6-95ec-4d9e-b95c-d75d51daa39b/versions/1" \
      -H "authorization: Bearer $VEZA_TOKEN" \
      -H "Content-Type: application/json" \
      --data-raw '{
        "entities_to_create_relationships_to": [
          {
            "entity_type": "SalesforceGroup",
            "datasource_id": "sf-dev-org-12345",
            "entity_id": "veza-dev-ed:00GDp0000019laeMAA"
          },
          {
            "entity_type": "SalesforcePermissionSet",
            "datasource_id": "sf-dev-org-12345",
            "entity_id": "veza4-dev-ed:0PSDn000000ED4MOAW"
          },
          {
            "entity_type": "SalesforceRole",
            "datasource_id": "sf-dev-org-12345",
            "entity_id": "veza4-dev-ed:00E5g00000ACyDEEA1"
          }
        ],
        "inherit_entities_from_access_profiles": []
      }'

    Update access profile inheritance:

    curl -X PATCH "$BASE_URL/api/private/lifecycle_management/access_profiles/business-role-id/versions/2" \
      -H "authorization: Bearer $VEZA_TOKEN" \
      -H "Content-Type: application/json" \
      --data-raw '{
        "entities_to_create_relationships_to": [],
        "inherit_entities_from_access_profiles": [
          "base-developer-profile-id",
          "salesforce-access-profile-id"
        ]
      }'

    Update both relationships and inheritance:

    curl -X PATCH "$BASE_URL/api/private/lifecycle_management/access_profiles/combined-profile-id/versions/1" \
      -H "authorization: Bearer $VEZA_TOKEN" \
      -H "Content-Type: application/json" \
      --data-raw '{
        "entities_to_create_relationships_to": [
          {
            "entity_type": "ActiveDirectoryGroup",
            "datasource_id": "ad-datasource-id",
            "entity_id": "ad-dev-group-123"
          }
        ],
        "inherit_entities_from_access_profiles": [
          "base-permissions-profile-id"
        ]
      }'
    patch
    Authorizations
    Path parameters
    value.access_profile_idstringRequired
    value.version_numberstringRequired
    Query parameters
    update_maskstring · field-maskOptional
    Body

    id

    string

    Required

    Unique identifier of the access profile

    version

    string

    Required

    Version number of the access profile to update

    entities_to_create_relationships_to

    array

    Optional

    Array of entity objects to create direct relationships to

    inherit_entities_from_access_profiles

    array

    Optional

    Array of access profile IDs to inherit entities from

    entity_type

    string

    Required

    Type of the entity (e.g., "SalesforceGroup", "ActiveDirectoryGroup")

    datasource_id

    string

    Required

    ID of the lifecycle manager datasource containing the entity

    entity_id

    string

    Required

    {
      "value": {
        "id": "3a2371b6-95ec-4d9e-b95c-d75d51daa39b",
        "version": 1,
        "entities_to_create_relationships_to": [
          {
            "entity_type": "SalesforceGroup",
            "datasource_id": "sf-dev-org-12345",
            "entity_id": "veza-dev-ed:00GDp0000019laeMAA"
          },
          {
            "entity_type": "SalesforcePermissionSet",
            "datasource_id": "sf-dev-org-12345",
            "entity_id": "veza4-dev-ed:0PSDn000000ED4MOAW"
          },
          {
            "entity_type": "SalesforceRole",
            "datasource_id": "sf-dev-org-12345",
            "entity_id": "veza4-dev-ed:00E5g00000ACyDEEA1"
          }
        ],
        "inherit_entities_from_access_profiles": [],
        "updated_at": "2024-07-15T16:45:30.789123456Z"
      }
    }
    List Access Profiles

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See Authentication for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Unique identifier of the entity within the datasource

    Initial policy state: INITIAL, RUNNING, PAUSED, DRY_RUN, PENDING (default: INITIAL)

    datasource_ids

    array[string]

    Yes

    The source of truth data source(s) for this policy (must have one and must be of the same type)

    event_notification_settings

    array[object]

    No

    What notifications are to be sent when an event occurs

    secondary_source_of_identities

    array[object]

    No

    Allows the ability to enrich the primary source of identity

    sync_only_when_source_changes

    boolean

    No

    If true will only sync if the source of identity changes

    time_before_sync_if_no_source_changes_in_minutes

    integer

    No

    If sync_only_when_source_changes is true, how quickly (in minutes) to run a check when no changes are detected (default is 1 day 1440)

    identity_attribute_mappings

    array[object]

    No

    Mappings between the Identity attributes and the SOI attribute

    safety_limit_settings

    object

    No

    Settings that determine when to block changes and send warnings

    no_retry_for_failed_workflow

    boolean

    No

    If true will not retry failed workflows

    max_retries_for_failed_workflow

    integer

    No

    How many times we will retry a failed workflow (default is 10)

    warning_email_addresses

    array[string]

    Email addresses to notify when safety limits are triggered

    Authentication
    post
    Authorizations
    Body
    namestringOptional
    descriptionstringOptional
    stateinteger · enumOptional
    datasource_idsstring[]Optional

    The source of truth data source(s) for this policy (must have one and must be of the same type)

    sync_only_when_source_changesbooleanOptional

    If true will only sync if the source of identity changes

    time_before_sync_if_no_source_changes_in_minutesinteger · int32Optional

    If sync_only_when_source_changes is true, how quickly (in minutes) to run a check when no changes are detected (default is 1 day 1440)

    safety_limit_settingsall ofOptional

    Settings that determine when to block changes and send warnings

    no_retry_for_failed_workflowbooleanOptional

    if true will not retry failed workflows

    max_retries_for_failed_workflowinteger · int32Optional

    how many times we will retry a failed workflow (default is 10)

    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    post
    post
    Authorizations
    Body
    namestringOptional
    descriptionstringOptional
    stateinteger · enumOptional
    datasource_idsstring[]Optional

    The source of truth data source(s) for this policy (must have one and must be of the same type)

    sync_only_when_source_changesbooleanOptional

    If true will only sync if the source of identity changes

    time_before_sync_if_no_source_changes_in_minutesinteger · int32Optional

    If sync_only_when_source_changes is true, how quickly (in minutes) to run a check when no changes are detected (default is 1 day 1440)

    safety_limit_settingsall ofOptional

    Settings that determine when to block changes and send warnings

    no_retry_for_failed_workflowbooleanOptional

    if true will not retry failed workflows

    max_retries_for_failed_workflowinteger · int32Optional

    how many times we will retry a failed workflow (default is 10)

    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    post
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Action object to add

    Action type (see ActionType enum values)

    config

    object

    Yes

    Configuration specific to the action type

    conditions_on_success

    array[object]

    No

    Conditions to run after successful action execution

    action_notification_settings

    array[object]

    No

    Notification settings for this action

    state

    string

    No

    Action state: ENABLED, DISABLED

    run_once

    boolean

    No

    Whether this action should only run once per identity

    Authentication
    post
    Authorizations
    Path parameters
    policy_idstringRequired
    version_numberinteger · int32Required
    Body
    policy_idstringOptional
    version_numberinteger · int32Optional
    workflowstringOptional
    conditionstringOptional
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    post
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"
    Authentication
    patch
    Authorizations
    Path parameters
    value.idstringRequired
    Query parameters
    update_maskstring · field-maskOptional
    Body

    The main object for controlling the policy it includes descriptions Has multiple versions of it if, one of which is live and up to one of which is in draft mode, all others are historical

    idstringRead-onlyOptional
    namestringOptional
    descriptionstringOptional
    stateinteger · enumOptional
    current_version_numberinteger · int32Read-onlyOptional

    The version that is currently live and running

    draft_version_numberinteger · int32Read-onlyOptional

    The version that is being edited and in draft form (0 if there is none)

    entity_typestringRead-onlyOptional

    The entity type to use for this policy (derived from the data sources passed in)

    datasource_idsstring[]Optional

    The source of identity data source(s) for this policy (must have one and must be of the same type)

    access_profiles_usedstring[]Read-onlyOptional

    List of the access profiles that are

    provider_external_idsstring[]Read-onlyOptional

    List of the providers used by this policy (derived from the data sources passed in)

    current_versionall ofRead-onlyOptional
    initial_completebooleanRead-onlyOptional
    sync_only_when_source_changesbooleanOptional

    If true will only sync if the source of identity changes

    time_before_sync_if_no_source_changes_in_minutesinteger · int32Optional

    If sync_only_when_source_changes is true, how quickly (in minutes) to run a check when no changes are detected (default is 1 day 1440)

    safety_limit_settingsall ofOptional

    Settings that determine when to block changes and send warnings

    safety_limit_warningall ofRead-onlyOptional

    Provides information about the most recent safety limit warning, cleared when an extraction is fully processed

    no_retry_for_failed_workflowbooleanOptional

    if true will not retry failed workflows

    max_retries_for_failed_workflowinteger · int32Optional

    how many times we will retry a failed workflow (default is 10)

    created_bystringRead-onlyOptional
    created_atstring · date-timeRead-onlyOptional
    updated_atstring · date-timeRead-onlyOptional
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    patch
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Policies

    Create and manage automated provisioning policies with conditions and actions for identity lifecycle

    Lifecycle Management Policies enable automated identity lifecycle processes through rule-based workflows. These APIs allow you to create, manage, and test policies that govern how identity attributes trigger actions across systems, enabling automated workflows for employee lifecycle events like onboarding, role changes, and offboarding.

    These APIs provide ways to:

    • Create automated provisioning and deprovisioning workflows

    • Configure conditional logic based on identity attributes

    • Define actions that execute when workflow conditions are met

    • Test policy configurations against specific identities without making changes

    • Manage policy states and versioning for controlled deployments

    Policy Concepts

    A Lifecycle Management Policy consists of two main components:

    1. Base Policy - Contains metadata such as name, description, state, and data source information

    2. Policy Configuration - Contains the workflows, conditions, and actions that define how the policy operates

    Policies are versioned, allowing for change management and testing of configurations before deployment.

    Policy States

    Policies can be in different operational states:

    Newly created policy, not yet active. Use this state when first creating policies to configure them before activation.

    Policy runs in test mode, showing what would happen without making changes. Essential for testing policy logic before production deployment.

    Policy is active and executing actions. Workflows will trigger and perform configured actions when conditions are met.

    Policy execution is temporarily stopped. Use this to halt policy operations without losing configuration.

    Endpoints

    Use the following endpoints to interact with Lifecycle Management Policies:

    Policy Management Operations

    Method
    Endpoint
    Description

    Policy Configuration Operations

    Method
    Endpoint
    Description

    Policy Testing Operations

    Method
    Endpoint
    Description

    Policy Workflow Structure

    Policies contain workflows that define:

    • Trigger Conditions - SCIM filter expressions that determine when the workflow activates

    • Success Conditions - Additional conditions evaluated when the trigger is met

    • Actions - Operations executed when conditions are satisfied

    • Transformers - Optional attribute transformations

    Authentication

    All Policy API requests require authentication. See for details on how to authenticate with Veza APIs.

    Getting Started

    To get started with Policy APIs:

    1. with basic metadata and datasource information

    2. to define workflows, conditions, and actions

    3. to verify the policy works as expected

    4. to activate the policy for production use

    For a comprehensive example of policy configuration, see the documentation.

    Policy Migration Between Environments

    When moving policies between environments (e.g., sandbox to production), you can export and import policy configurations using the API endpoints.

    Export a Policy

    1. Get the base policy information:

    2. Extract the current policy configuration:

      From the response, use the current_version.config object which contains the complete policy logic including workflows, conditions, actions, and transformers.

    Import to New Environment

    1. Create the base policy in the destination environment:

    2. Update the policy configuration with your exported configuration:

    When moving policies between environments, you'll need to update:

    • Access Profile IDs referenced in actions

    • Datasource IDs that may differ between environments

    Migration Best Practices

    • Test First: Always set the imported policy to DRY_RUN state initially to test in the new environment

    • Verify IDs: Ensure all referenced Access Profile IDs and datasource IDs exist in the target environment

    • Update Conditions: Review trigger strings and condition strings for environment-specific values

    Related Documentation

    For more information about Policy concepts and features, see:

    Run Dry Run on Identity

    Execute a policy dry run against a specific identity to preview actions without performing them

    Endpoint

    Description

    Execute a policy dry run against a specific identity to preview what actions would be taken without actually performing them. This is essential for testing policy configurations, validating conditions, and understanding policy behavior before activation.

    Use this endpoint to:

    {
      "value": {
        "id": "text",
        "name": "text",
        "description": "text",
        "state": 1,
        "current_version_number": 1,
        "draft_version_number": 1,
        "entity_type": "text",
        "datasource_ids": [
          "text"
        ],
        "access_profiles_used": [
          "text"
        ],
        "provider_external_ids": [
          "text"
        ],
        "current_version": {
          "policy_id": "text",
          "version_number": 1,
          "state": 1,
          "config": {
            "workflows": [
              {
                "trigger_type": 1,
                "description": "text",
                "trigger_string": "text",
                "conditions_on_success": [
                  {
                    "condition_type": 1,
                    "condition_string": "text",
                    "actions_to_run": [
                      {
                        "name": "text",
                        "type": 1
                      }
                    ],
                    "name": "text",
                    "continue_actions_if_any_error": true,
                    "state": 1
                  }
                ],
                "continuous_sync": true,
                "name": "text",
                "state": 1,
                "attribute_to_get_execute_date": "text",
                "local_time_zone_diff_from_utc": 1,
                "local_time_zone_attribute": "text",
                "trigger_at_local_time_hour": 1,
                "execute_date_time_formatters": [
                  {
                    "date_formatter": "text",
                    "pipeline_functions": "text"
                  }
                ],
                "grace_period_in_sec": 1,
                "skip_trigger_recheck_after_grace_period": true,
                "priority": 1
              }
            ],
            "actions": [
              {
                "name": "text",
                "description": "text",
                "type": 1,
                "config": {
                  "@type": "text",
                  "ANY_ADDITIONAL_PROPERTY": "anything"
                },
                "conditions_on_success": [
                  {
                    "condition_type": 1,
                    "condition_string": "text",
                    "actions_to_run": [
                      {
                        "name": "text",
                        "type": 1
                      }
                    ],
                    "name": "text",
                    "continue_actions_if_any_error": true,
                    "state": 1
                  }
                ],
                "action_notification_settings": [
                  {
                    "notification_settings": {
                      "notification_type": 1,
                      "notification_id": "text",
                      "type_settings": {
                        "@type": "text",
                        "ANY_ADDITIONAL_PROPERTY": "anything"
                      }
                    },
                    "on_success": true,
                    "on_failure": true
                  }
                ],
                "state": 1,
                "run_once": true
              }
            ],
            "attribute_common_transformers": [
              {
                "name": "text",
                "description": "text",
                "entity_type": "text",
                "entity_attribute_transformers": [
                  {
                    "destination_attribute": "text",
                    "destination_value_formatter": "text",
                    "continuous_sync": true,
                    "additional_value_formatter": [
                      "text"
                    ],
                    "pipeline_functions": "text",
                    "unique_identifier": true
                  }
                ]
              }
            ],
            "lookup_table_references": [
              {
                "name": "text",
                "description": "text",
                "column_names": [
                  "text"
                ],
                "lookup_table_id": "text"
              }
            ],
            "mover_properties": [
              "text"
            ],
            "password_complexity_rules": [
              {
                "name": "text",
                "length": 1,
                "use_special_characters": true,
                "use_numbers": true,
                "use_uppercase": true,
                "use_lowercase": true,
                "disallowed_characters": "text"
              }
            ],
            "transformer_functions": [
              {
                "function_expression": "text",
                "definition": {
                  "name": "text",
                  "description": "text",
                  "parameters": [
                    {
                      "name": "text",
                      "description": "text",
                      "type": 1,
                      "allow_empty": true,
                      "optional": true,
                      "valid_values": [
                        "text"
                      ]
                    }
                  ],
                  "require_no_input": true,
                  "return_multiple_values": true,
                  "input_is_optional": true
                }
              }
            ]
          },
          "config_version": "text",
          "created_by": "text",
          "created_at": "2025-08-26T13:07:04.310Z",
          "updated_at": "2025-08-26T13:07:04.310Z",
          "published_by": "text",
          "published_at": "2025-08-26T13:07:04.310Z"
        },
        "initial_complete": true,
        "secondary_source_of_identities": [
          {
            "entity_type": "text",
            "datasource_ids": [
              "text"
            ],
            "provider_external_ids": [
              "text"
            ],
            "correlation_attribute_names": {
              "ANY_ADDITIONAL_PROPERTY": "text"
            },
            "only_enrich_existing": true
          }
        ],
        "sync_only_when_source_changes": true,
        "time_before_sync_if_no_source_changes_in_minutes": 1,
        "identity_attribute_mappings": [
          {
            "identity_attribute": 1,
            "entity_attribute_name": "text"
          }
        ],
        "safety_limit_settings": {
          "enable_change_limit": true,
          "enable_predictive_change_limit": true,
          "max_identities_affected_percentage": 1,
          "max_identities_affected_count": "text",
          "warning_email_addresses": [
            "text"
          ]
        },
        "safety_limit_warning": {
          "warning_type": 1,
          "occurred_at": "2025-08-26T13:07:04.310Z",
          "caused_by_extraction_event": {
            "id": "text",
            "data_source_id": "text",
            "provider_id": "text",
            "provider_type": "text",
            "state": 1,
            "provider_external_id": "text",
            "agent_type": 1,
            "error_message": "text",
            "extracted_at": "2025-08-26T13:07:04.310Z",
            "policy_id": "text",
            "event_type": 1,
            "number_of_identities_affected": "text",
            "disregard_change_limit": true
          },
          "identities_changed_count": "text",
          "predicted_identities_changed_count": "text"
        },
        "no_retry_for_failed_workflow": true,
        "max_retries_for_failed_workflow": 1,
        "event_notification_settings": [
          {
            "event_type": 1,
            "notification_settings": {
              "notification_type": 1,
              "notification_id": "text",
              "type_settings": {
                "@type": "text",
                "ANY_ADDITIONAL_PROPERTY": "anything"
              }
            },
            "on_success": true,
            "on_failure": true
          }
        ],
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z"
      },
      "version": {
        "policy_id": "text",
        "version_number": 1,
        "state": 1,
        "config": {
          "workflows": [
            {
              "trigger_type": 1,
              "description": "text",
              "trigger_string": "text",
              "conditions_on_success": [
                {
                  "condition_type": 1,
                  "condition_string": "text",
                  "actions_to_run": [
                    {
                      "name": "text",
                      "type": 1
                    }
                  ],
                  "name": "text",
                  "continue_actions_if_any_error": true,
                  "state": 1
                }
              ],
              "continuous_sync": true,
              "name": "text",
              "state": 1,
              "attribute_to_get_execute_date": "text",
              "local_time_zone_diff_from_utc": 1,
              "local_time_zone_attribute": "text",
              "trigger_at_local_time_hour": 1,
              "execute_date_time_formatters": [
                {
                  "date_formatter": "text",
                  "pipeline_functions": "text"
                }
              ],
              "grace_period_in_sec": 1,
              "skip_trigger_recheck_after_grace_period": true,
              "priority": 1
            }
          ],
          "actions": [
            {
              "name": "text",
              "description": "text",
              "type": 1,
              "config": {
                "@type": "text",
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "conditions_on_success": [
                {
                  "condition_type": 1,
                  "condition_string": "text",
                  "actions_to_run": [
                    {
                      "name": "text",
                      "type": 1
                    }
                  ],
                  "name": "text",
                  "continue_actions_if_any_error": true,
                  "state": 1
                }
              ],
              "action_notification_settings": [
                {
                  "notification_settings": {
                    "notification_type": 1,
                    "notification_id": "text",
                    "type_settings": {
                      "@type": "text",
                      "ANY_ADDITIONAL_PROPERTY": "anything"
                    }
                  },
                  "on_success": true,
                  "on_failure": true
                }
              ],
              "state": 1,
              "run_once": true
            }
          ],
          "attribute_common_transformers": [
            {
              "name": "text",
              "description": "text",
              "entity_type": "text",
              "entity_attribute_transformers": [
                {
                  "destination_attribute": "text",
                  "destination_value_formatter": "text",
                  "continuous_sync": true,
                  "additional_value_formatter": [
                    "text"
                  ],
                  "pipeline_functions": "text",
                  "unique_identifier": true
                }
              ]
            }
          ],
          "lookup_table_references": [
            {
              "name": "text",
              "description": "text",
              "column_names": [
                "text"
              ],
              "lookup_table_id": "text"
            }
          ],
          "mover_properties": [
            "text"
          ],
          "password_complexity_rules": [
            {
              "name": "text",
              "length": 1,
              "use_special_characters": true,
              "use_numbers": true,
              "use_uppercase": true,
              "use_lowercase": true,
              "disallowed_characters": "text"
            }
          ],
          "transformer_functions": [
            {
              "function_expression": "text",
              "definition": {
                "name": "text",
                "description": "text",
                "parameters": [
                  {
                    "name": "text",
                    "description": "text",
                    "type": 1,
                    "allow_empty": true,
                    "optional": true,
                    "valid_values": [
                      "text"
                    ]
                  }
                ],
                "require_no_input": true,
                "return_multiple_values": true,
                "input_is_optional": true
              }
            }
          ]
        },
        "config_version": "text",
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z",
        "published_by": "text",
        "published_at": "2025-08-26T13:07:04.310Z"
      }
    }
    {
      "value": {
        "id": "text",
        "name": "text",
        "description": "text",
        "state": 1,
        "current_version_number": 1,
        "draft_version_number": 1,
        "entity_type": "text",
        "datasource_ids": [
          "text"
        ],
        "access_profiles_used": [
          "text"
        ],
        "provider_external_ids": [
          "text"
        ],
        "current_version": {
          "policy_id": "text",
          "version_number": 1,
          "state": 1,
          "config": {
            "workflows": [
              {
                "trigger_type": 1,
                "description": "text",
                "trigger_string": "text",
                "conditions_on_success": [
                  {
                    "condition_type": 1,
                    "condition_string": "text",
                    "actions_to_run": [
                      {
                        "name": "text",
                        "type": 1
                      }
                    ],
                    "name": "text",
                    "continue_actions_if_any_error": true,
                    "state": 1
                  }
                ],
                "continuous_sync": true,
                "name": "text",
                "state": 1,
                "attribute_to_get_execute_date": "text",
                "local_time_zone_diff_from_utc": 1,
                "local_time_zone_attribute": "text",
                "trigger_at_local_time_hour": 1,
                "execute_date_time_formatters": [
                  {
                    "date_formatter": "text",
                    "pipeline_functions": "text"
                  }
                ],
                "grace_period_in_sec": 1,
                "skip_trigger_recheck_after_grace_period": true,
                "priority": 1
              }
            ],
            "actions": [
              {
                "name": "text",
                "description": "text",
                "type": 1,
                "config": {
                  "@type": "text",
                  "ANY_ADDITIONAL_PROPERTY": "anything"
                },
                "conditions_on_success": [
                  {
                    "condition_type": 1,
                    "condition_string": "text",
                    "actions_to_run": [
                      {
                        "name": "text",
                        "type": 1
                      }
                    ],
                    "name": "text",
                    "continue_actions_if_any_error": true,
                    "state": 1
                  }
                ],
                "action_notification_settings": [
                  {
                    "notification_settings": {
                      "notification_type": 1,
                      "notification_id": "text",
                      "type_settings": {
                        "@type": "text",
                        "ANY_ADDITIONAL_PROPERTY": "anything"
                      }
                    },
                    "on_success": true,
                    "on_failure": true
                  }
                ],
                "state": 1,
                "run_once": true
              }
            ],
            "attribute_common_transformers": [
              {
                "name": "text",
                "description": "text",
                "entity_type": "text",
                "entity_attribute_transformers": [
                  {
                    "destination_attribute": "text",
                    "destination_value_formatter": "text",
                    "continuous_sync": true,
                    "additional_value_formatter": [
                      "text"
                    ],
                    "pipeline_functions": "text",
                    "unique_identifier": true
                  }
                ]
              }
            ],
            "lookup_table_references": [
              {
                "name": "text",
                "description": "text",
                "column_names": [
                  "text"
                ],
                "lookup_table_id": "text"
              }
            ],
            "mover_properties": [
              "text"
            ],
            "password_complexity_rules": [
              {
                "name": "text",
                "length": 1,
                "use_special_characters": true,
                "use_numbers": true,
                "use_uppercase": true,
                "use_lowercase": true,
                "disallowed_characters": "text"
              }
            ],
            "transformer_functions": [
              {
                "function_expression": "text",
                "definition": {
                  "name": "text",
                  "description": "text",
                  "parameters": [
                    {
                      "name": "text",
                      "description": "text",
                      "type": 1,
                      "allow_empty": true,
                      "optional": true,
                      "valid_values": [
                        "text"
                      ]
                    }
                  ],
                  "require_no_input": true,
                  "return_multiple_values": true,
                  "input_is_optional": true
                }
              }
            ]
          },
          "config_version": "text",
          "created_by": "text",
          "created_at": "2025-08-26T13:07:04.310Z",
          "updated_at": "2025-08-26T13:07:04.310Z",
          "published_by": "text",
          "published_at": "2025-08-26T13:07:04.310Z"
        },
        "initial_complete": true,
        "secondary_source_of_identities": [
          {
            "entity_type": "text",
            "datasource_ids": [
              "text"
            ],
            "provider_external_ids": [
              "text"
            ],
            "correlation_attribute_names": {
              "ANY_ADDITIONAL_PROPERTY": "text"
            },
            "only_enrich_existing": true
          }
        ],
        "sync_only_when_source_changes": true,
        "time_before_sync_if_no_source_changes_in_minutes": 1,
        "identity_attribute_mappings": [
          {
            "identity_attribute": 1,
            "entity_attribute_name": "text"
          }
        ],
        "safety_limit_settings": {
          "enable_change_limit": true,
          "enable_predictive_change_limit": true,
          "max_identities_affected_percentage": 1,
          "max_identities_affected_count": "text",
          "warning_email_addresses": [
            "text"
          ]
        },
        "safety_limit_warning": {
          "warning_type": 1,
          "occurred_at": "2025-08-26T13:07:04.310Z",
          "caused_by_extraction_event": {
            "id": "text",
            "data_source_id": "text",
            "provider_id": "text",
            "provider_type": "text",
            "state": 1,
            "provider_external_id": "text",
            "agent_type": 1,
            "error_message": "text",
            "extracted_at": "2025-08-26T13:07:04.310Z",
            "policy_id": "text",
            "event_type": 1,
            "number_of_identities_affected": "text",
            "disregard_change_limit": true
          },
          "identities_changed_count": "text",
          "predicted_identities_changed_count": "text"
        },
        "no_retry_for_failed_workflow": true,
        "max_retries_for_failed_workflow": 1,
        "event_notification_settings": [
          {
            "event_type": 1,
            "notification_settings": {
              "notification_type": 1,
              "notification_id": "text",
              "type_settings": {
                "@type": "text",
                "ANY_ADDITIONAL_PROPERTY": "anything"
              }
            },
            "on_success": true,
            "on_failure": true
          }
        ],
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z"
      },
      "version": {
        "policy_id": "text",
        "version_number": 1,
        "state": 1,
        "config": {
          "workflows": [
            {
              "trigger_type": 1,
              "description": "text",
              "trigger_string": "text",
              "conditions_on_success": [
                {
                  "condition_type": 1,
                  "condition_string": "text",
                  "actions_to_run": [
                    {
                      "name": "text",
                      "type": 1
                    }
                  ],
                  "name": "text",
                  "continue_actions_if_any_error": true,
                  "state": 1
                }
              ],
              "continuous_sync": true,
              "name": "text",
              "state": 1,
              "attribute_to_get_execute_date": "text",
              "local_time_zone_diff_from_utc": 1,
              "local_time_zone_attribute": "text",
              "trigger_at_local_time_hour": 1,
              "execute_date_time_formatters": [
                {
                  "date_formatter": "text",
                  "pipeline_functions": "text"
                }
              ],
              "grace_period_in_sec": 1,
              "skip_trigger_recheck_after_grace_period": true,
              "priority": 1
            }
          ],
          "actions": [
            {
              "name": "text",
              "description": "text",
              "type": 1,
              "config": {
                "@type": "text",
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "conditions_on_success": [
                {
                  "condition_type": 1,
                  "condition_string": "text",
                  "actions_to_run": [
                    {
                      "name": "text",
                      "type": 1
                    }
                  ],
                  "name": "text",
                  "continue_actions_if_any_error": true,
                  "state": 1
                }
              ],
              "action_notification_settings": [
                {
                  "notification_settings": {
                    "notification_type": 1,
                    "notification_id": "text",
                    "type_settings": {
                      "@type": "text",
                      "ANY_ADDITIONAL_PROPERTY": "anything"
                    }
                  },
                  "on_success": true,
                  "on_failure": true
                }
              ],
              "state": 1,
              "run_once": true
            }
          ],
          "attribute_common_transformers": [
            {
              "name": "text",
              "description": "text",
              "entity_type": "text",
              "entity_attribute_transformers": [
                {
                  "destination_attribute": "text",
                  "destination_value_formatter": "text",
                  "continuous_sync": true,
                  "additional_value_formatter": [
                    "text"
                  ],
                  "pipeline_functions": "text",
                  "unique_identifier": true
                }
              ]
            }
          ],
          "lookup_table_references": [
            {
              "name": "text",
              "description": "text",
              "column_names": [
                "text"
              ],
              "lookup_table_id": "text"
            }
          ],
          "mover_properties": [
            "text"
          ],
          "password_complexity_rules": [
            {
              "name": "text",
              "length": 1,
              "use_special_characters": true,
              "use_numbers": true,
              "use_uppercase": true,
              "use_lowercase": true,
              "disallowed_characters": "text"
            }
          ],
          "transformer_functions": [
            {
              "function_expression": "text",
              "definition": {
                "name": "text",
                "description": "text",
                "parameters": [
                  {
                    "name": "text",
                    "description": "text",
                    "type": 1,
                    "allow_empty": true,
                    "optional": true,
                    "valid_values": [
                      "text"
                    ]
                  }
                ],
                "require_no_input": true,
                "return_multiple_values": true,
                "input_is_optional": true
              }
            }
          ]
        },
        "config_version": "text",
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z",
        "published_by": "text",
        "published_at": "2025-08-26T13:07:04.310Z"
      }
    }
    POST /api/private/lifecycle_management/policies HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 910
    
    {
      "name": "text",
      "description": "text",
      "state": 1,
      "datasource_ids": [
        "text"
      ],
      "event_notification_settings": [
        {
          "event_type": 1,
          "notification_settings": {
            "notification_type": 1,
            "notification_id": "text",
            "type_settings": {
              "@type": "text",
              "ANY_ADDITIONAL_PROPERTY": "anything"
            }
          },
          "on_success": true,
          "on_failure": true
        }
      ],
      "secondary_source_of_identities": [
        {
          "datasource_ids": [
            "text"
          ],
          "correlation_attribute_names": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          },
          "only_enrich_existing": true
        }
      ],
      "sync_only_when_source_changes": true,
      "time_before_sync_if_no_source_changes_in_minutes": 1,
      "identity_attribute_mappings": [
        {
          "identity_attribute": 1,
          "entity_attribute_name": "text"
        }
      ],
      "safety_limit_settings": {
        "enable_change_limit": true,
        "enable_predictive_change_limit": true,
        "max_identities_affected_percentage": 1,
        "max_identities_affected_count": "text",
        "warning_email_addresses": [
          "text"
        ]
      },
      "no_retry_for_failed_workflow": true,
      "max_retries_for_failed_workflow": 1
    }
    POST /api/private/lifecycle_management/policies HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 910
    
    {
      "name": "text",
      "description": "text",
      "state": 1,
      "datasource_ids": [
        "text"
      ],
      "event_notification_settings": [
        {
          "event_type": 1,
          "notification_settings": {
            "notification_type": 1,
            "notification_id": "text",
            "type_settings": {
              "@type": "text",
              "ANY_ADDITIONAL_PROPERTY": "anything"
            }
          },
          "on_success": true,
          "on_failure": true
        }
      ],
      "secondary_source_of_identities": [
        {
          "datasource_ids": [
            "text"
          ],
          "correlation_attribute_names": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          },
          "only_enrich_existing": true
        }
      ],
      "sync_only_when_source_changes": true,
      "time_before_sync_if_no_source_changes_in_minutes": 1,
      "identity_attribute_mappings": [
        {
          "identity_attribute": 1,
          "entity_attribute_name": "text"
        }
      ],
      "safety_limit_settings": {
        "enable_change_limit": true,
        "enable_predictive_change_limit": true,
        "max_identities_affected_percentage": 1,
        "max_identities_affected_count": "text",
        "warning_email_addresses": [
          "text"
        ]
      },
      "no_retry_for_failed_workflow": true,
      "max_retries_for_failed_workflow": 1
    }
    {
      "value": {
        "id": "text",
        "name": "text",
        "description": "text",
        "state": 1,
        "current_version_number": 1,
        "draft_version_number": 1,
        "entity_type": "text",
        "datasource_ids": [
          "text"
        ],
        "access_profiles_used": [
          "text"
        ],
        "provider_external_ids": [
          "text"
        ],
        "current_version": {
          "policy_id": "text",
          "version_number": 1,
          "state": 1,
          "config": {
            "workflows": [
              {
                "trigger_type": 1,
                "description": "text",
                "trigger_string": "text",
                "conditions_on_success": [
                  {
                    "condition_type": 1,
                    "condition_string": "text",
                    "actions_to_run": [
                      {
                        "name": "text",
                        "type": 1
                      }
                    ],
                    "name": "text",
                    "continue_actions_if_any_error": true,
                    "state": 1
                  }
                ],
                "continuous_sync": true,
                "name": "text",
                "state": 1,
                "attribute_to_get_execute_date": "text",
                "local_time_zone_diff_from_utc": 1,
                "local_time_zone_attribute": "text",
                "trigger_at_local_time_hour": 1,
                "execute_date_time_formatters": [
                  {
                    "date_formatter": "text",
                    "pipeline_functions": "text"
                  }
                ],
                "grace_period_in_sec": 1,
                "skip_trigger_recheck_after_grace_period": true,
                "priority": 1
              }
            ],
            "actions": [
              {
                "name": "text",
                "description": "text",
                "type": 1,
                "config": {
                  "@type": "text",
                  "ANY_ADDITIONAL_PROPERTY": "anything"
                },
                "conditions_on_success": [
                  {
                    "condition_type": 1,
                    "condition_string": "text",
                    "actions_to_run": [
                      {
                        "name": "text",
                        "type": 1
                      }
                    ],
                    "name": "text",
                    "continue_actions_if_any_error": true,
                    "state": 1
                  }
                ],
                "action_notification_settings": [
                  {
                    "notification_settings": {
                      "notification_type": 1,
                      "notification_id": "text",
                      "type_settings": {
                        "@type": "text",
                        "ANY_ADDITIONAL_PROPERTY": "anything"
                      }
                    },
                    "on_success": true,
                    "on_failure": true
                  }
                ],
                "state": 1,
                "run_once": true
              }
            ],
            "attribute_common_transformers": [
              {
                "name": "text",
                "description": "text",
                "entity_type": "text",
                "entity_attribute_transformers": [
                  {
                    "destination_attribute": "text",
                    "destination_value_formatter": "text",
                    "continuous_sync": true,
                    "additional_value_formatter": [
                      "text"
                    ],
                    "pipeline_functions": "text",
                    "unique_identifier": true
                  }
                ]
              }
            ],
            "lookup_table_references": [
              {
                "name": "text",
                "description": "text",
                "column_names": [
                  "text"
                ],
                "lookup_table_id": "text"
              }
            ],
            "mover_properties": [
              "text"
            ],
            "password_complexity_rules": [
              {
                "name": "text",
                "length": 1,
                "use_special_characters": true,
                "use_numbers": true,
                "use_uppercase": true,
                "use_lowercase": true,
                "disallowed_characters": "text"
              }
            ],
            "transformer_functions": [
              {
                "function_expression": "text",
                "definition": {
                  "name": "text",
                  "description": "text",
                  "parameters": [
                    {
                      "name": "text",
                      "description": "text",
                      "type": 1,
                      "allow_empty": true,
                      "optional": true,
                      "valid_values": [
                        "text"
                      ]
                    }
                  ],
                  "require_no_input": true,
                  "return_multiple_values": true,
                  "input_is_optional": true
                }
              }
            ]
          },
          "config_version": "text",
          "created_by": "text",
          "created_at": "2025-08-26T13:07:04.310Z",
          "updated_at": "2025-08-26T13:07:04.310Z",
          "published_by": "text",
          "published_at": "2025-08-26T13:07:04.310Z"
        },
        "initial_complete": true,
        "secondary_source_of_identities": [
          {
            "entity_type": "text",
            "datasource_ids": [
              "text"
            ],
            "provider_external_ids": [
              "text"
            ],
            "correlation_attribute_names": {
              "ANY_ADDITIONAL_PROPERTY": "text"
            },
            "only_enrich_existing": true
          }
        ],
        "sync_only_when_source_changes": true,
        "time_before_sync_if_no_source_changes_in_minutes": 1,
        "identity_attribute_mappings": [
          {
            "identity_attribute": 1,
            "entity_attribute_name": "text"
          }
        ],
        "safety_limit_settings": {
          "enable_change_limit": true,
          "enable_predictive_change_limit": true,
          "max_identities_affected_percentage": 1,
          "max_identities_affected_count": "text",
          "warning_email_addresses": [
            "text"
          ]
        },
        "safety_limit_warning": {
          "warning_type": 1,
          "occurred_at": "2025-08-26T13:07:04.310Z",
          "caused_by_extraction_event": {
            "id": "text",
            "data_source_id": "text",
            "provider_id": "text",
            "provider_type": "text",
            "state": 1,
            "provider_external_id": "text",
            "agent_type": 1,
            "error_message": "text",
            "extracted_at": "2025-08-26T13:07:04.310Z",
            "policy_id": "text",
            "event_type": 1,
            "number_of_identities_affected": "text",
            "disregard_change_limit": true
          },
          "identities_changed_count": "text",
          "predicted_identities_changed_count": "text"
        },
        "no_retry_for_failed_workflow": true,
        "max_retries_for_failed_workflow": 1,
        "event_notification_settings": [
          {
            "event_type": 1,
            "notification_settings": {
              "notification_type": 1,
              "notification_id": "text",
              "type_settings": {
                "@type": "text",
                "ANY_ADDITIONAL_PROPERTY": "anything"
              }
            },
            "on_success": true,
            "on_failure": true
          }
        ],
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z"
      }
    }
    PATCH /api/private/lifecycle_management/policies/{value.id} HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 910
    
    {
      "name": "text",
      "description": "text",
      "state": 1,
      "datasource_ids": [
        "text"
      ],
      "secondary_source_of_identities": [
        {
          "datasource_ids": [
            "text"
          ],
          "correlation_attribute_names": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          },
          "only_enrich_existing": true
        }
      ],
      "sync_only_when_source_changes": true,
      "time_before_sync_if_no_source_changes_in_minutes": 1,
      "identity_attribute_mappings": [
        {
          "identity_attribute": 1,
          "entity_attribute_name": "text"
        }
      ],
      "safety_limit_settings": {
        "enable_change_limit": true,
        "enable_predictive_change_limit": true,
        "max_identities_affected_percentage": 1,
        "max_identities_affected_count": "text",
        "warning_email_addresses": [
          "text"
        ]
      },
      "no_retry_for_failed_workflow": true,
      "max_retries_for_failed_workflow": 1,
      "event_notification_settings": [
        {
          "event_type": 1,
          "notification_settings": {
            "notification_type": 1,
            "notification_id": "text",
            "type_settings": {
              "@type": "text",
              "ANY_ADDITIONAL_PROPERTY": "anything"
            }
          },
          "on_success": true,
          "on_failure": true
        }
      ]
    }
    {
      "value": {
        "policy_id": "text",
        "version_number": 1,
        "state": 1,
        "config": {
          "workflows": [
            {
              "trigger_type": 1,
              "description": "text",
              "trigger_string": "text",
              "conditions_on_success": [
                {
                  "condition_type": 1,
                  "condition_string": "text",
                  "actions_to_run": [
                    {
                      "name": "text",
                      "type": 1
                    }
                  ],
                  "name": "text",
                  "continue_actions_if_any_error": true,
                  "state": 1
                }
              ],
              "continuous_sync": true,
              "name": "text",
              "state": 1,
              "attribute_to_get_execute_date": "text",
              "local_time_zone_diff_from_utc": 1,
              "local_time_zone_attribute": "text",
              "trigger_at_local_time_hour": 1,
              "execute_date_time_formatters": [
                {
                  "date_formatter": "text",
                  "pipeline_functions": "text"
                }
              ],
              "grace_period_in_sec": 1,
              "skip_trigger_recheck_after_grace_period": true,
              "priority": 1
            }
          ],
          "actions": [
            {
              "name": "text",
              "description": "text",
              "type": 1,
              "config": {
                "@type": "text",
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "conditions_on_success": [
                {
                  "condition_type": 1,
                  "condition_string": "text",
                  "actions_to_run": [
                    {
                      "name": "text",
                      "type": 1
                    }
                  ],
                  "name": "text",
                  "continue_actions_if_any_error": true,
                  "state": 1
                }
              ],
              "action_notification_settings": [
                {
                  "notification_settings": {
                    "notification_type": 1,
                    "notification_id": "text",
                    "type_settings": {
                      "@type": "text",
                      "ANY_ADDITIONAL_PROPERTY": "anything"
                    }
                  },
                  "on_success": true,
                  "on_failure": true
                }
              ],
              "state": 1,
              "run_once": true
            }
          ],
          "attribute_common_transformers": [
            {
              "name": "text",
              "description": "text",
              "entity_type": "text",
              "entity_attribute_transformers": [
                {
                  "destination_attribute": "text",
                  "destination_value_formatter": "text",
                  "continuous_sync": true,
                  "additional_value_formatter": [
                    "text"
                  ],
                  "pipeline_functions": "text",
                  "unique_identifier": true
                }
              ]
            }
          ],
          "lookup_table_references": [
            {
              "name": "text",
              "description": "text",
              "column_names": [
                "text"
              ],
              "lookup_table_id": "text"
            }
          ],
          "mover_properties": [
            "text"
          ],
          "password_complexity_rules": [
            {
              "name": "text",
              "length": 1,
              "use_special_characters": true,
              "use_numbers": true,
              "use_uppercase": true,
              "use_lowercase": true,
              "disallowed_characters": "text"
            }
          ],
          "transformer_functions": [
            {
              "function_expression": "text",
              "definition": {
                "name": "text",
                "description": "text",
                "parameters": [
                  {
                    "name": "text",
                    "description": "text",
                    "type": 1,
                    "allow_empty": true,
                    "optional": true,
                    "valid_values": [
                      "text"
                    ]
                  }
                ],
                "require_no_input": true,
                "return_multiple_values": true,
                "input_is_optional": true
              }
            }
          ]
        },
        "config_version": "text",
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z",
        "published_by": "text",
        "published_at": "2025-08-26T13:07:04.310Z"
      }
    }
    POST /api/private/lifecycle_management/policies/{policy_id}/versions/{version_number}:add_action HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 612
    
    {
      "policy_id": "text",
      "version_number": 1,
      "workflow": "text",
      "condition": "text",
      "action": {
        "name": "text",
        "description": "text",
        "type": 1,
        "config": {
          "@type": "text",
          "ANY_ADDITIONAL_PROPERTY": "anything"
        },
        "conditions_on_success": [
          {
            "condition_type": 1,
            "condition_string": "text",
            "actions_to_run": [
              {
                "name": "text",
                "type": 1
              }
            ],
            "name": "text",
            "continue_actions_if_any_error": true,
            "state": 1
          }
        ],
        "action_notification_settings": [
          {
            "notification_settings": {
              "notification_type": 1,
              "notification_id": "text",
              "type_settings": {
                "@type": "text",
                "ANY_ADDITIONAL_PROPERTY": "anything"
              }
            },
            "on_success": true,
            "on_failure": true
          }
        ],
        "state": 1,
        "run_once": true
      }
    }

    Any environment-specific attribute values or conditions

    Gradual Activation: Move from DRY_RUN → INITIAL → RUNNING to ensure proper testing

    GET

    List Policies

    Retrieves all lifecycle management policies

    POST

    Create Policy

    Creates a new lifecycle management policy

    GET

    Get Policy

    Retrieves a specific policy by ID

    PATCH

    Update Policy State

    PATCH

    Update Policy Configuration

    Updates the complete configuration of a policy version

    POST

    Add Condition to Policy

    Adds a condition to a specific workflow in a policy

    POST

    Add Action to Policy

    Adds an action to a specific condition in a workflow

    POST

    Run Dry Run on Identity

    Tests policy execution against a specific identity without making changes

    GET /api/private/lifecycle_management/policies/{policy_id}
    POST /api/private/lifecycle_management/policies
    PATCH /api/private/lifecycle_management/policies/{new_policy_id}/versions/{version_number}
    API Authentication
    Create a policy
    Update the policy configuration
    Test with a dry run
    Update the policy state
    Update Policy Configuration
    Policies and Workflows
    Actions
    Attribute Transformers
    Access Profile APIs

    Updates the operational state of a policy

    get
    GET /api/private/lifecycle_management/access_profiles HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Accept: */*
    

    The version of the access profile that includes how it is configured

    access_profile_idstringRead-onlyOptional
    version_numberinteger · int32Read-onlyOptional
    stateinteger · enumOptional
    inherit_entities_from_access_profilesstring[]Optional

    List of profiles that this one inherits from

    membersstring[]Read-onlyOptional

    List of identities (via id) that are part of the access profile

    rbac_idstringRead-onlyOptional
    access_request_policy_idstringOptional

    The access request policy that is associated with the access profile

    application_datasource_idstringOptional

    This is only available if the profile type is doesn't allow entitlements or inherited profiles This is the datasource to use for this profile in the assign application use case, when the profile is assigned it will create a relationship to the datasource

    created_bystringRead-onlyOptional
    created_atstring · date-timeRead-onlyOptional
    updated_atstring · date-timeRead-onlyOptional
    published_bystringRead-onlyOptional
    published_atstring · date-timeRead-onlyOptional
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    patch
    PATCH /api/private/lifecycle_management/access_profiles/{value.access_profile_id}/versions/{value.version_number} HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 576
    
    {
      "state": 1,
      "entities_to_create_relationships_to": [
        {
          "entity_type": "text",
          "datasource_id": "text",
          "entity_id": "text",
          "assigned_to_entity_type": "text",
          "assigned_to_entity_id": "text",
          "grant_by": 1,
          "created_by_access_profile": true,
          "custom_properties": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          },
          "sync_identity_action": {
            "policy_id": "text",
            "name": "text"
          },
          "condition": {
            "type": 1,
            "condition_string": "text"
          }
        }
      ],
      "inherit_entities_from_access_profiles": [
        "text"
      ],
      "access_request_policy_id": "text",
      "application_datasource_id": "text",
      "application_sync_identity_action": {
        "policy_id": "text",
        "name": "text"
      }
    }
  • Test new policies before activating them

  • Validate policy changes against specific users

  • Debug why policies are or aren't executing for certain identities

  • Demonstrate policy behavior to stakeholders

  • Ensure policy changes won't have unintended consequences

  • Dry runs are read-only operations that simulate policy execution without making any actual changes to user access or system state.

    API Reference

    Request Examples

    Response

    Example Response

    Dry Run Response

    This example shows a more detailed response including job requests and workflow matching:

    {
      "workflows_matched": [
        "Active Employees"
      ],
      "access_profile_ids": [
        "3a2371b6-95ec-4d9e-b95c-d75d51daa39b",
        "ead4616a-7f0e-45ad-a721-375320e15cfd"
      ],
      "job_requests": [
        {
          "job_id": "fd7624af-cc5f-4b7e-87ef-e21fa9868d87",
          "data_source": {
            "id": "549a4b5e-0328-4c87-a19d-ee8a2926d1aa",
            "name": "Workday HRIS",
            "type": "workday"
          },
          "input_entities": [
            {
              "entity_id": "employee_12345",
              "entity_type": "WorkdayWorker",
              "attributes": {
                "employment_status": "ACTIVE",
                "work_location": "US",
                "department": "Sales",
                "manager": true
              }
            }
          ],
          "action_type": "SYNC_IDENTITIES",
          "action_config": {
            "@type": "type.googleapis.com/lifecyclemanagement.v1.SyncIdentitiesJobConfig",
            "attributes_to_sync": {
              "email": "work_email",
              "name": "full_name",
              "department": "department_name"
            },
            "create_allowed": true,
            "continuous_sync_allowed": true,
            "attributes_not_to_continuous_sync": ["manager_approval_date"]
          },
          "action_job_id": "d55fda69-0720-4742-a963-f22bd8fd1b57",
          "action_name": "SyncADIdentities"
        },
        {
          "job_id": "f6b68999-43d8-49ae-8027-94e8985eafd8",
          "data_source": {
            "id": "ad-connector-001",
            "name": "Active Directory",
            "type": "active_directory"
          },
          "input_entities": [
            {
              "entity_id": "employee_12345",
              "entity_type": "ActiveDirectoryUser"
            }
          ],
          "action_type": "MANAGE_RELATIONSHIPS",
          "action_config": {
            "@type": "type.googleapis.com/lifecyclemanagement.v1.ManageRelationshipsJobConfig",
            "relationships_to_create": [
              {
                "entity_type": "ActiveDirectoryGroup",
                "entity_id": "366db2d0-6c4e-47fe-9c57-1a8dc4916da4"
              },
              {
                "entity_type": "ActiveDirectoryGroup",
                "entity_id": "cbb024a6-e227-4aaf-b893-f61478d45f8a"
              }
            ]
          },
          "action_job_id": "09b61164-d50f-4dbe-bcfc-bfff31530438",
          "action_name": "UsActiveDirectoryGroups"
        }
      ],
      "messages": [
        "Policy would execute for identity with email: [email protected]",
        "2 job requests generated",
        "Access profiles affected: 2"
      ]
    }

    Response Fields

    Field
    Description

    workflows_matched

    Array of workflow names that matched the dry run criteria

    job_requests

    Array of job request objects that would be created

    messages

    Array of informational messages about the dry run execution

    access_profile_ids

    Array of access profile IDs that were found in the dry run

    POST /api/private/lifecycle_management/policies/{policy_id}/identities/{identity_id}:dry_run
    curl -X POST "https://your-tenant.vezacloud.com/api/private/lifecycle_management/policies/policy-123e4567-e89b-12d3-a456-426614174000/identities/identity-456:dry_run" \
      -H "Authorization: Bearer YOUR_API_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "policy_id": "policy-123e4567-e89b-12d3-a456-426614174000",
        "id": "identity-456",
        "version_number": 2,
        "state": "NEW"
      }'

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    Add Condition to Policy Configuration

    Add a new condition to an existing policy's configuration with logical operators

    Endpoint

    POST /api/private/lifecycle_management/policies/{policy_id}/versions/{version_number}:add_condition`

    Description

    Add a new condition to an existing policy's configuration. Conditions determine when a policy should execute by evaluating user attributes, system events, or external triggers. Multiple conditions are combined using logical AND operations.

    Use this endpoint to:

    • Add additional triggering criteria to existing policies

    • Refine policy targeting without replacing entire configuration

    • Incrementally build complex policy logic

    • Add new conditions based on changing business requirements

    New conditions are immediately active for policies in the active state. All conditions must evaluate to true for the policy to execute.

    API Reference

    Request Examples

    Path Parameters

    Parameter
    Type
    Required
    Description

    Request Body

    Field
    Type
    Required
    Description

    Condition Object Fields

    Field
    Type
    Required
    Description

    Response Examples

    SCIM-based Condition Strings

    When using condition_type: CONDITION_STRING, you can use SCIM filter expressions to define complex conditions:

    Example SCIM Conditions

    • department eq "Engineering" - User belongs to Engineering department

    • is_active eq true and department eq "Sales" - Active user in Sales department

    • title co "Manager" - User title contains "Manager"

    SCIM Operators

    Operator
    Description
    Example

    Update Policy Configuration

    Update policy version configuration including conditions, actions, and settings

    Endpoints

    Description

    Update a specific version of an existing policy, including workflows, conditions, actions, and configuration settings. This endpoint allows you to modify the policy version's behavior and structure.

    Use this endpoint to:

    {
      "values": [
        {
          "id": "text",
          "name": "text",
          "description": "text",
          "state": 1,
          "profile_type": "text",
          "current_version_number": 1,
          "draft_version_number": 1,
          "used_by_workflow": true,
          "integrations": [
            "text"
          ],
          "current_version": {
            "access_profile_id": "text",
            "version_number": 1,
            "state": 1,
            "entities_to_create_relationships_to": [
              {
                "entity_type": "text",
                "datasource_id": "text",
                "entity_id": "text",
                "assigned_to_entity_type": "text",
                "assigned_to_entity_id": "text",
                "extraction_datasource_id": "text",
                "provider_id": "text",
                "provider_external_id": "text",
                "entity_name": "text",
                "native_id": "text",
                "grant_by": 1,
                "created_by_access_profile": true,
                "custom_properties": {
                  "ANY_ADDITIONAL_PROPERTY": "text"
                },
                "sync_identity_action": {
                  "policy_id": "text",
                  "name": "text"
                },
                "condition": {
                  "type": 1,
                  "condition_string": "text"
                },
                "create_entitlement_detail_id": "text",
                "created_at": "2025-08-26T13:07:04.310Z"
              }
            ],
            "inherit_entities_from_access_profiles": [
              "text"
            ],
            "members": [
              "text"
            ],
            "rbac_id": "text",
            "access_request_policy_id": "text",
            "application_datasource_id": "text",
            "application_sync_identity_action": {
              "policy_id": "text",
              "name": "text"
            },
            "created_by": "text",
            "created_at": "2025-08-26T13:07:04.310Z",
            "updated_at": "2025-08-26T13:07:04.310Z",
            "published_by": "text",
            "published_at": "2025-08-26T13:07:04.310Z"
          },
          "access_profiles_inherited": [
            "text"
          ],
          "access_profiles_inherited_by": [
            "text"
          ],
          "inherits_from_other_profiles": true,
          "inherited_by_other_profiles": true,
          "labels": [
            "text"
          ],
          "provider_ids": [
            "text"
          ],
          "provider_external_ids": [
            "text"
          ],
          "datasource_ids": [
            "text"
          ],
          "rbac_id": "text",
          "member_details": [
            {
              "access_profile_id": "text",
              "access_profile_name": "text",
              "identity_id": "text",
              "identity_name": "text",
              "created_from": 1,
              "workflow": "text"
            }
          ],
          "requestable": true,
          "require_approval_to_start": true,
          "started_at": "2025-08-26T13:07:04.310Z",
          "started_by": "text",
          "catalog_item_info": {
            "name": "text",
            "description": "text",
            "markdown_description": "text",
            "icon": "text",
            "recommended": true
          },
          "access_request_policy_id": "text",
          "created_entitlements": [
            {
              "datasource_id": "text",
              "entity_type": "text",
              "attribute_transformers": {
                "values": [
                  {
                    "destination_attribute": "text",
                    "destination_value_formatter": "text",
                    "continuous_sync": true,
                    "additional_value_formatter": [
                      "text"
                    ],
                    "pipeline_functions": "text",
                    "unique_identifier": true
                  }
                ]
              },
              "add_member_condition": {
                "type": 1,
                "condition_string": "text"
              },
              "created_entity_id": "text",
              "access_request_id": "text",
              "id": "text",
              "last_sync_job_id": "text"
            }
          ],
          "last_synced_at": "2025-08-26T13:07:04.310Z",
          "sync_allowed": true,
          "last_sync_job_ids": [
            "text"
          ],
          "identity_created_by": "text",
          "last_sync_error_message": "text",
          "profile_type_rbac_id": "text",
          "created_by": "text",
          "created_at": "2025-08-26T13:07:04.310Z",
          "updated_at": "2025-08-26T13:07:04.310Z",
          "custom_properties": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          }
        }
      ],
      "next_page_token": "text",
      "has_more": true
    }
    {
      "value": {
        "access_profile_id": "text",
        "version_number": 1,
        "state": 1,
        "entities_to_create_relationships_to": [
          {
            "entity_type": "text",
            "datasource_id": "text",
            "entity_id": "text",
            "assigned_to_entity_type": "text",
            "assigned_to_entity_id": "text",
            "extraction_datasource_id": "text",
            "provider_id": "text",
            "provider_external_id": "text",
            "entity_name": "text",
            "native_id": "text",
            "grant_by": 1,
            "created_by_access_profile": true,
            "custom_properties": {
              "ANY_ADDITIONAL_PROPERTY": "text"
            },
            "sync_identity_action": {
              "policy_id": "text",
              "name": "text"
            },
            "condition": {
              "type": 1,
              "condition_string": "text"
            },
            "create_entitlement_detail_id": "text",
            "created_at": "2025-08-26T13:07:04.310Z"
          }
        ],
        "inherit_entities_from_access_profiles": [
          "text"
        ],
        "members": [
          "text"
        ],
        "rbac_id": "text",
        "access_request_policy_id": "text",
        "application_datasource_id": "text",
        "application_sync_identity_action": {
          "policy_id": "text",
          "name": "text"
        },
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z",
        "published_by": "text",
        "published_at": "2025-08-26T13:07:04.310Z"
      }
    }

    name

    string

    Yes

    Name of the condition

    continue_actions_if_any_error

    boolean

    No

    Whether to continue with other actions if any action fails

    state

    string

    No

    Condition state: ENABLED, DISABLED

    startDate gt "2024-01-01" - Start date is after January 1, 2024

  • department eq "IT" or department eq "Security" - User in IT or Security departments

  • ew

    Ends with

    email ew "@company.com"

    gt

    Greater than

    salary gt 50000

    ge

    Greater than or equal

    experience ge 5

    lt

    Less than

    age lt 65

    le

    Less than or equal

    projects le 3

    post
    Authorizations
    Path parameters
    policy_idstringRequired
    version_numberinteger · int32Required
    Body

    policy_id

    string

    Yes

    Unique identifier of the policy

    version_number

    integer

    Yes

    Version number of the policy version to modify

    workflow

    string

    Yes

    Name of the workflow to add the condition to

    condition

    object

    Yes

    Condition object to add

    condition_type

    string

    Yes

    Type of condition: ANY, CONDITION_STRING

    condition_string

    string

    Conditional

    SCIM-based condition string (required if condition_type is CONDITION_STRING)

    actions_to_run

    array[object]

    No

    eq

    Equal

    department eq "Finance"

    ne

    Not equal

    status ne "inactive"

    co

    Contains

    title co "Director"

    sw

    Starts with

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See Authentication for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Actions that run when this condition is true

    email sw "admin"

  • Modify policy version workflows, conditions, and actions

  • Update attribute transformers and lookup table references

  • Adjust password complexity rules and mover properties

  • Configure transformer functions for the policy version

  • Configuration changes to active policies take effect immediately. Consider testing changes in a draft policy first, or temporarily setting the policy to inactive during updates.

    Version Number Usage: You must update the specific version that is currently active or the version you want to modify. Use Get Policy to retrieve the current_version_number before making updates. You cannot create new versions through this endpoint; it only updates existing versions.

    API Reference

    Request Examples

    Path Parameters

    Parameter
    Type
    Required
    Description

    policy_id

    string

    Yes

    Unique identifier of the policy

    version_number

    integer

    Yes

    Version number of the policy version to update

    Request Body

    Field
    Type
    Required
    Description

    value

    object

    Yes

    The updated PolicyVersion object

    update_mask

    object

    No

    Field mask specifying which fields to update

    PolicyVersion Object Fields

    Field
    Type
    Required
    Description

    policy_id

    string

    Yes

    ID of the policy this version belongs to

    version_number

    integer

    No

    Version number (output only)

    state

    string

    No

    Configuration Object Details

    The config field contains the core policy version logic:

    Field
    Type
    Description

    workflows

    array[object]

    Array of workflow objects that define when and how the policy triggers

    actions

    array[object]

    Array of action objects that define what happens when conditions are met

    attribute_common_transformers

    array[object]

    Common attribute transformation rules

    lookup_table_references

    array[object]

    References to lookup tables used by the policy

    Response Examples

    Example Configuration

    Complete Policy Configuration Example

    The following example shows a complete policy configuration with workflows, conditions, and actions:

    {
      "workflows": [
        {
          "name": "Active Employees",
          "description": "Triggered when any active employee is active",
          "trigger_type": "TRIGGER_STRING",
          "trigger_string": "employment_status eq \"ACTIVE\"",
          "continuous_sync": true,
          "conditions_on_success": [
            {
              "name": "sync",
              "condition_type": "work_location eq \"China\"",
              "actions_to_run": [
                {
                  "name": "ChinaEmployeeGroups",
                  "type": "SYNC_IDENTITIES"
                }
              ]
            },
            {
              "name": "sync",
              "condition_type": "work_location eq \"US\"",
              "actions_to_run": [
                {
                  "name": "UsEmployeeGroups",
                  "type": "SYNC_IDENTITIES"
                }
              ]
            },
            {
              "name": "sync",
              "condition_type": "department eq \"Sales\" and manager eq true",
              "actions_to_run": [
                {
                  "name": "SalesManagerGroups",
                  "type": "SYNC_IDENTITIES"
                }
              ]
            }
          ]
        }
      ],
      "actions": [
        {
          "name": "UsEmployeeGroups",
          "description": "Adds US employees to defined access profiles",
          "type": "MANAGE_RELATIONSHIPS",
          "config": {
            "@type": "type.googleapis.com/lifecyclemanagement.v1.ManageRelationshipsActionConfig",
            "remove_existing_relationships": true,
            "access_profiles": ["<access_profile_id1>", "<access_profile_id2>"]
          }
        },
        {
          "name": "ChinaEmployeeGroups",
          "description": "Adds China employees to defined access profiles",
          "type": "MANAGE_RELATIONSHIPS",
          "config": {
            "@type": "type.googleapis.com/lifecyclemanagement.v1.ManageRelationshipsActionConfig",
            "remove_existing_relationships": true,
            "access_profiles": ["<access_profile_id3>", "<access_profile_id4>"]
          }
        },
        {
          "name": "SalesManagerGroups",
          "description": "Adds Sales Manager profiles",
          "type": "MANAGE_RELATIONSHIPS",
          "config": {
            "@type": "type.googleapis.com/lifecyclemanagement.v1.ManageRelationshipsActionConfig",
            "remove_existing_relationships": true,
            "access_profiles": ["<access_profile_id5>"]
          }
        }
      ],
      "attribute_common_transformers": []
    }

    Configuration Structure Explanation

    Workflows define when the policy triggers:

    • trigger_string: SCIM filter expression that determines when the workflow activates

    • conditions_on_success: Array of conditions evaluated when the trigger is met

    • continuous_sync: Whether to continuously monitor for changes

    Conditions specify additional criteria:

    • condition_type: SCIM filter expression for the specific condition

    • actions_to_run: Actions executed when this condition is met

    Actions define what happens when conditions are satisfied:

    • type: Currently supports MANAGE_RELATIONSHIPS and SYNC_IDENTITIES

    • config: Action-specific configuration object

    • For MANAGE_RELATIONSHIPS: Defines access profiles to assign/remove

    Troubleshooting Common Issues

    404 Errors When Updating Policy Configuration

    If you receive a 404 error when attempting to update a policy configuration, verify:

    1. Policy ID is correct: Confirm the policy exists by first calling GET /api/private/lifecycle_management/policies/{policy_id}

    2. Version number exists: Check the current_version_number from the GET response and ensure you're using the correct version

    3. Endpoint path is correct: Ensure you're using /versions/ (plural) in the URL path

    Common mistake: Using /version/{number} instead of /versions/{number} in the endpoint path.

    Policy Version Not Found

    If you get errors about version not found:

    • Always use the current_version_number from the Get Policy response

    • Policy versions are auto-created and managed by the system - you can't create arbitrary version numbers

    • If you need to work with a different version, you may need to publish or manage the policy state first

    Configuration Validation Errors

    When policy configuration updates fail validation:

    1. Check JSON structure: Ensure your configuration object matches the expected schema

    2. Verify action types: Confirm action type values are valid (e.g., MANAGE_RELATIONSHIPS, SYNC_IDENTITIES)

    3. Validate SCIM expressions: Test trigger strings and condition strings for proper SCIM syntax

    4. Confirm referenced IDs: Ensure access profile IDs and other references exist in your environment

    Request Body Format

    Ensure your request body follows this structure:

    The configuration should be nested within a value.config object, not sent as the root object.

    PUT /api/private/lifecycle_management/policies/{policy_id}/versions/{version_number}
    PATCH /api/private/lifecycle_management/policies/{policy_id}/versions/{version_number}
    {
      "value": {
        "policy_id": "your-policy-id",
        "config": {
          "workflows": [...],
          "actions": [...],
          "attribute_common_transformers": [...]
        }
      }
    }

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    Authentication
    post
    Authorizations
    Path parameters
    policy_idstringRequired
    idstringRequired
    Body
    policy_idstringOptional
    idstringOptional
    version_numberinteger · int32Optional
    stateinteger · enumOptional
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    post
    post
    Authorizations
    Path parameters
    policy_idstringRequired
    idstringRequired
    Body
    policy_idstringOptional
    idstringOptional
    version_numberinteger · int32Optional
    stateinteger · enumOptional
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    post
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Create Access Profile

    Create a new access profile with specified entitlements and configuration

    Endpoint

    POST /api/private/lifecycle_management/access_profiles

    Prerequisites: Before creating Access Profiles, you must have:

    1. to define capabilities

    2. to identify datasource IDs

    Description

    Creates a new Veza Access Profile that defines a collection of entitlements that can be granted to users. Access profiles can contain direct relationships to entities (like groups, roles, or permissions) or can inherit entities from other access profiles, depending on the profile type capabilities.

    Access Profiles support versioning, allowing you to draft changes before publishing them to users. An Access Profile contains a version that will be modified after initial creation - the version allows drafts and retired versions in the future.

    API Reference

    Request schema

    Request body

    Field
    Type
    Required?
    Description

    Entity Object Schema

    Field
    Type
    Required?
    Description

    Sync Identity Action Schema

    Field
    Type
    Required?
    Description

    Request Examples

    Response Examples

    Complete Response Structure

    Simplified Response:

    List Access Profile Types

    Retrieve all access profile types configured in your organization

    Endpoint

    GET /api/private/lifecycle_management/access_profiles_types

    Description

    Lists all Access Profile Types that have been configured in your organization. Access Profile Types define the capabilities and configuration options available when creating Access Profiles.

    Use this endpoint to:

    • View all available Access Profile Types

    • Get type IDs needed when

    • Review the capabilities each type provides

    • Understand inheritance and relationship permissions

    API Reference

    Request example

    Response Examples

    Standard Response:

    Complete Response Structure

    profiles_count indicates how many Access Profiles are currently using each type. This helps you understand which types are actively in use.

    {
      "workflows_matched": [
        "text"
      ],
      "job_requests": [
        {
          "job_id": "text",
          "data_source": {
            "id": "text",
            "external_id": "text",
            "agent_type": "text",
            "data_provider_id": "text",
            "data_source_config": {
              "@type": "text",
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "data_provider_type": 1,
            "data_provider_secret_refs": [
              {
                "id": "text",
                "secret_id": "text",
                "vault_id": "text",
                "vault": {
                  "id": "text",
                  "name": "text",
                  "vault_provider": "text",
                  "insight_point_id": "text",
                  "deleted": true
                }
              }
            ]
          },
          "input_entities": [
            {
              "table": "text",
              "primary_key": [
                "text"
              ],
              "constraints": [
                {
                  "type": 1,
                  "field_names": [
                    "text"
                  ]
                }
              ]
            }
          ],
          "action_type": 1,
          "action_config": {
            "@type": "text",
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "action_job_id": "text",
          "action_name": "text",
          "identity_id": "text",
          "stop_on_error": true,
          "ttl": "text"
        }
      ],
      "messages": [
        "text"
      ],
      "access_profile_ids": [
        "text"
      ],
      "job_request_workflow_names": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
    {
      "workflows_matched": [
        "text"
      ],
      "job_requests": [
        {
          "job_id": "text",
          "data_source": {
            "id": "text",
            "external_id": "text",
            "agent_type": "text",
            "data_provider_id": "text",
            "data_source_config": {
              "@type": "text",
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "data_provider_type": 1,
            "data_provider_secret_refs": [
              {
                "id": "text",
                "secret_id": "text",
                "vault_id": "text",
                "vault": {
                  "id": "text",
                  "name": "text",
                  "vault_provider": "text",
                  "insight_point_id": "text",
                  "deleted": true
                }
              }
            ]
          },
          "input_entities": [
            {
              "table": "text",
              "primary_key": [
                "text"
              ],
              "constraints": [
                {
                  "type": 1,
                  "field_names": [
                    "text"
                  ]
                }
              ]
            }
          ],
          "action_type": 1,
          "action_config": {
            "@type": "text",
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "action_job_id": "text",
          "action_name": "text",
          "identity_id": "text",
          "stop_on_error": true,
          "ttl": "text"
        }
      ],
      "messages": [
        "text"
      ],
      "access_profile_ids": [
        "text"
      ],
      "job_request_workflow_names": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
    POST /api/private/lifecycle_management/policies/{policy_id}/identities/{id}:dry_run HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 61
    
    {
      "policy_id": "text",
      "id": "text",
      "version_number": 1,
      "state": 1
    }
    POST /api/private/lifecycle_management/policies/{policy_id}/identities/{id}:dry_run HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 61
    
    {
      "policy_id": "text",
      "id": "text",
      "version_number": 1,
      "state": 1
    }

    profile_type

    string

    Required

    ID of the access profile type to use

    entities_to_create_relationships_to

    array

    Optional

    Array of entity objects to create direct relationships to

    inherit_entities_from_access_profiles

    array

    Optional

    Array of access profile IDs to inherit entities from

    labels

    array[string]

    Optional

    Opaque field for customer to add any labels

    access_request_policy_id

    string

    Optional

    The access request policy associated with the access profile

    application_datasource_id

    string

    Optional

    Datasource to use for this profile in the assign application use case

    application_sync_identity_action

    object

    Optional

    Action to use when creating an identity for this datasource

    custom_properties

    object

    Optional

    Map of custom properties for the access profile

    assigned_to_entity_type

    string

    Optional

    Type of the entity to assign to

    assigned_to_entity_id

    string

    Optional

    ID of the entity to assign to

    grant_by

    string

    Optional

    How the grant is applied (PolicyRules.GrantBy enum)

    created_by_access_profile

    boolean

    Optional

    Whether this entity was created by the access profile

    custom_properties

    object

    Optional

    Map of custom properties for the entity

    sync_identity_action

    object

    Optional

    Action to use when creating an identity for this entity

    condition

    object

    Optional

    Condition to check if identity should be granted access

    Create a basic access profile with direct entity relationships:

    curl -X POST "$BASE_URL/api/private/lifecycle_management/access_profiles" \
      -H "authorization: Bearer $VEZA_TOKEN" \
      -H "Content-Type: application/json" \
      --data-raw '{
        "name": "Salesforce Developer",
        "state": "RUNNING",
        "profile_type": "a730b9cd-d600-4fb7-a803-8ab5b697c0b9",
        "entities_to_create_relationships_to": [
          {
            "entity_type": "SalesforceGroup",
            "datasource_id": "sf-dev-org-12345",
            "entity_id": "veza-dev-ed:00GDp0000019laeMAA"
          },
          {
            "entity_type": "SalesforcePermissionSet",
            "datasource_id": "sf-dev-org-12345",
            "entity_id": "veza4-dev-ed:0PSDn000000ED4MOAW"
          },
          {
            "entity_type": "SalesforceRole",
            "datasource_id": "sf-dev-org-12345",
            "entity_id": "veza4-dev-ed:0PSDn000000ED4MOAW"
          }
        ]
      }'

    Create a business role that inherits from other access profiles:

    curl -X POST "$BASE_URL/api/private/lifecycle_management/access_profiles" \
      -H "authorization: Bearer $VEZA_TOKEN" \
      -H "Content-Type: application/json" \
      --data-raw '{
        "name": "Developer",
        "state": "RUNNING",
        "profile_type": "business-role-type-id",
        "inherit_entities_from_access_profiles": [
          "software-developers-profile-id"
        ]
      }'

    Create an access profile with sync identity actions:

    curl -X POST "$BASE_URL/api/private/lifecycle_management/access_profiles" \
      -H "authorization: Bearer $VEZA_TOKEN" \
      -H "Content-Type: application/json" \
      --data-raw '{
        "name": "Advanced Salesforce Profile",
        "state": "RUNNING",
        "profile_type": "a730b9cd-d600-4fb7-a803-8ab5b697c0b9",
        "entities_to_create_relationships_to": [
          {
            "entity_type": "SalesforceGroup",
            "datasource_id": "sf-org-datasource-id",
            "entity_id": "veza-dev-ed:00GDp0000019laeMAA",
            "sync_identity_action": {
              "policy_id": "policy-12345",
              "name": "salesforce_sync_action"
            }
          }
        ],
        "labels": ["requestable", "salesforce"]
      }'
    post
    Authorizations
    Body

    name

    string

    Required

    Name of the access profile

    description

    string

    Optional

    Description of the access profile's purpose

    state

    string

    Required

    entity_type

    string

    Required

    Type of the entity (e.g., "SalesforceGroup", "ActiveDirectoryGroup")

    datasource_id

    string

    Required

    ID of the datasource containing the entity

    entity_id

    string

    Required

    policy_id

    string

    Required

    ID of the policy to use for sync action

    name

    string

    Required

    Name of the sync identity action

    {
      "value": {
        "id": "3a2371b6-95ec-4d9e-b95c-d75d51daa39b",
        "name": "Salesforce Developer",
        "profile_type": "a730b9cd-d600-4fb7-a803-8ab5b697c0b9",
        "current_version_number": 1,
        "created_at": "2024-04-12T15:29:36.187811047Z",
        "created_by": "3cedc292-4014-45e9-b7d9-8cb1695e1454",
        "current_version": {
          "access_profile_id": "3a2371b6-95ec-4d9e-b95c-d75d51daa39b",
          "created_at": "2024-04-12T15:29:36.188843505Z",
          "created_by": "3cedc292-4014-45e9-b7d9-8cb1695e1454",
          "entities_to_create_relationships_to": [
            {
              "entity_type": "SalesforceGroup",
              "datasource_id": "sf-dev-org-12345",
              "entity_id": "veza-dev-ed:00GDp0000019laeMAA"
            }
          ],
          "inherit_entities_from_access_profiles": [],
          "state": "PUBLISHED",
          "updated_at": "2024-04-12T15:29:36.188843505Z",
          "version_number": 1
        },
        "description": "",
        "draft_version_number": 0,
        "inherited_by_other_profiles": false,
        "inherits_from_other_profiles": false,
        "integrations": [
          "SALESFORCE"
        ],
        "provider_ids": [
          "sf-dev-org-12345"
        ],
        "provider_external_ids": [
          "external-id-123"
        ],
        "labels": [
          "requestable",
          "salesforce"
        ],
        "state": "RUNNING",
        "updated_at": "2024-04-12T15:29:36.217957547Z",
        "used_by_workflow": false,
        "access_profiles_inherited": [],
        "access_profiles_inherited_by": []
      }
    }
    {
      "value": {
        "id": "3a2371b6-95ec-4d9e-b95c-d75d51daa39b",
        "name": "Salesforce Developer",
        "state": "RUNNING",
        "profile_type": "a730b9cd-d600-4fb7-a803-8ab5b697c0b9",
        "current_version_number": 1,
        "integrations": ["SALESFORCE"],
        "provider_ids": ["sf-dev-org-12345"],
        "labels": ["requestable", "salesforce"],
        "created_at": "2024-04-12T15:29:36.187811047Z",
        "updated_at": "2024-04-12T15:29:36.217957547Z"
      }
    }
    Created an Access Profile Type
    Listed lifecycle management datasources

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See Authentication for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Initial state: INITIAL, RUNNING, PAUSED, DRY_RUN, PENDING

    Unique identifier of the entity

    policy_idstringOptional
    version_numberinteger · int32Optional
    workflowstringOptional
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    post
    POST /api/private/lifecycle_management/policies/{policy_id}/versions/{version_number}:add_condition HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 221
    
    {
      "policy_id": "text",
      "version_number": 1,
      "workflow": "text",
      "condition": {
        "condition_type": 1,
        "condition_string": "text",
        "actions_to_run": [
          {
            "name": "text",
            "type": 1
          }
        ],
        "name": "text",
        "continue_actions_if_any_error": true,
        "state": 1
      }
    }

    Version state: DRAFT, PUBLISHED, RETIRED

    config

    object

    No

    Policy version configuration containing workflows, actions, and transformers

    mover_properties

    array[string]

    List of properties that, when changed, mark an identity as a "mover"

    password_complexity_rules

    array[object]

    Password complexity rules for sync operations

    transformer_functions

    array[object]

    Custom transformation functions

    Authentication
    patch
    Authorizations
    Path parameters
    value.policy_idstringRequired
    value.version_numberstringRequired
    Query parameters
    update_maskstring · field-maskOptional
    Body

    A version of a policy, this includes the watcher profile for what starts the policy

    policy_idstringOptional
    version_numberinteger · int32Read-onlyOptional
    stateinteger · enumOptional
    config_versionstringRead-onlyOptional

    This is the version of the config in case it changes in the future

    created_bystringRead-onlyOptional
    created_atstring · date-timeRead-onlyOptional
    updated_atstring · date-timeRead-onlyOptional
    published_bystringRead-onlyOptional
    published_atstring · date-timeRead-onlyOptional
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    patch
    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"
    get
    Authorizations
    Query parameters
    filterstringOptional
    order_bystringOptional
    page_sizeinteger · int32Optional
    page_tokenstringOptional
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    curl -X GET "$BASE_URL/api/private/lifecycle_management/access_profiles_types" \
      -H "authorization: Bearer $VEZA_TOKEN"
    {
      "values": [
        {
          "id": "13ddf132-0868-4330-a0a3-41b088f6a4dc",
          "allow_create_relationships": false,
          "allow_inherit_entities": true,
          "description": "Access profile type for business roles that can inherit from other profiles",
          "integrations": [],
          "name": "Business Role",
          "profiles_count": 3,
          "require_single_datasource": false
        },
        {
          "id": "a730b9cd-d600-4fb7-a803-8ab5b697c0b9",
          "allow_create_relationships": true,
          "allow_inherit_entities": false,
          "description": "Basic Access Profile",
          "integrations": [],
          "name": "Profile",
          "profiles_count": 0,
          "require_single_datasource": false
        }
      ]
    }
    {
      "values": [
        {
          "id": "13ddf132-0868-4330-a0a3-41b088f6a4dc",
          "allow_create_relationships": false,
          "allow_inherit_entities": true,
          "allow_inherited_from_types": [],
          "description": "Access profile type for business roles that can inherit from other profiles",
          "integrations": [],
          "name": "Business Role",
          "profiles_count": 3,
          "require_single_datasource": false,
          "require_single_integration": false,
          "max_entitlements": 50,
          "create_entitlement_based_on_profile": false,
          "create_entitlements": [],
          "no_entitlements": false,
          "on_create_behavior": "INITIAL",
          "instructions": "This business role allows users to inherit permissions from multiple technical profiles.",
          "time_before_sync_check_in_seconds": 0,
          "access_request_policy_id": null,
          "allow_overwrite_of_access_request_policy": true,
          "name_transformer": null,
          "remove_entitlement_on_member_upon_update": false,
          "created_at": "2024-07-15T16:10:30.123456789Z",
          "updated_at": "2024-07-15T16:10:30.123456789Z"
        },
        {
          "id": "a730b9cd-d600-4fb7-a803-8ab5b697c0b9",
          "allow_create_relationships": true,
          "allow_inherit_entities": false,
          "allow_inherited_from_types": [],
          "description": "Basic Access Profile",
          "integrations": [],
          "name": "Profile",
          "profiles_count": 0,
          "require_single_datasource": false,
          "require_single_integration": false,
          "max_entitlements": null,
          "create_entitlement_based_on_profile": false,
          "create_entitlements": [],
          "no_entitlements": false,
          "on_create_behavior": "INITIAL",
          "instructions": "",
          "time_before_sync_check_in_seconds": 0,
          "access_request_policy_id": null,
          "allow_overwrite_of_access_request_policy": true,
          "name_transformer": null,
          "remove_entitlement_on_member_upon_update": false,
          "created_at": "2024-07-14T10:15:22.987654321Z",
          "updated_at": "2024-07-14T10:15:22.987654321Z"
        }
      ]
    }
    creating Access Profiles

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See Authentication for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Create Access Profile Type

    Create a new access profile type that defines capabilities and configuration options

    Endpoint

    POST /api/private/lifecycle_management/access_profiles_types

    Description

    Creates a new access profile type, which defines how access profiles of this type can be configured and used within your organization. Access profile types determine capabilities such as whether profiles can inherit entities from other profiles or create direct relationships to entities.

    Common access profile types include:

    • Profile - Basic access profiles for direct entity relationships

    • Business Role - Higher-level profiles that can inherit from other profiles

    API Reference

    Request schema

    Request body

    Field
    Type
    Required?
    Description

    Complex Field Details

    Field
    Description

    Request Examples

    Response Examples

    Standard Response:

    Complete Response Structure

    Access Profiles

    Create, manage, and organize access profiles and profile types for identity lifecycle management

    Veza Access Profiles are collections of entitlements that can be granted to users as part of their identity lifecycle management. These APIs enable you to create, manage, and organize access profiles and their types, which define what access should be granted in different roles or scenarios across your organization.

    Access Profiles help you automate consistent access provisioning with:

    • Reusable collections of entitlements across multiple systems

    • Organized access by business roles, departments, or functions

    {
      "value": {
        "policy_id": "text",
        "version_number": 1,
        "state": 1,
        "config": {
          "workflows": [
            {
              "trigger_type": 1,
              "description": "text",
              "trigger_string": "text",
              "conditions_on_success": [
                {
                  "condition_type": 1,
                  "condition_string": "text",
                  "actions_to_run": [
                    {
                      "name": "text",
                      "type": 1
                    }
                  ],
                  "name": "text",
                  "continue_actions_if_any_error": true,
                  "state": 1
                }
              ],
              "continuous_sync": true,
              "name": "text",
              "state": 1,
              "attribute_to_get_execute_date": "text",
              "local_time_zone_diff_from_utc": 1,
              "local_time_zone_attribute": "text",
              "trigger_at_local_time_hour": 1,
              "execute_date_time_formatters": [
                {
                  "date_formatter": "text",
                  "pipeline_functions": "text"
                }
              ],
              "grace_period_in_sec": 1,
              "skip_trigger_recheck_after_grace_period": true,
              "priority": 1
            }
          ],
          "actions": [
            {
              "name": "text",
              "description": "text",
              "type": 1,
              "config": {
                "@type": "text",
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "conditions_on_success": [
                {
                  "condition_type": 1,
                  "condition_string": "text",
                  "actions_to_run": [
                    {
                      "name": "text",
                      "type": 1
                    }
                  ],
                  "name": "text",
                  "continue_actions_if_any_error": true,
                  "state": 1
                }
              ],
              "action_notification_settings": [
                {
                  "notification_settings": {
                    "notification_type": 1,
                    "notification_id": "text",
                    "type_settings": {
                      "@type": "text",
                      "ANY_ADDITIONAL_PROPERTY": "anything"
                    }
                  },
                  "on_success": true,
                  "on_failure": true
                }
              ],
              "state": 1,
              "run_once": true
            }
          ],
          "attribute_common_transformers": [
            {
              "name": "text",
              "description": "text",
              "entity_type": "text",
              "entity_attribute_transformers": [
                {
                  "destination_attribute": "text",
                  "destination_value_formatter": "text",
                  "continuous_sync": true,
                  "additional_value_formatter": [
                    "text"
                  ],
                  "pipeline_functions": "text",
                  "unique_identifier": true
                }
              ]
            }
          ],
          "lookup_table_references": [
            {
              "name": "text",
              "description": "text",
              "column_names": [
                "text"
              ],
              "lookup_table_id": "text"
            }
          ],
          "mover_properties": [
            "text"
          ],
          "password_complexity_rules": [
            {
              "name": "text",
              "length": 1,
              "use_special_characters": true,
              "use_numbers": true,
              "use_uppercase": true,
              "use_lowercase": true,
              "disallowed_characters": "text"
            }
          ],
          "transformer_functions": [
            {
              "function_expression": "text",
              "definition": {
                "name": "text",
                "description": "text",
                "parameters": [
                  {
                    "name": "text",
                    "description": "text",
                    "type": 1,
                    "allow_empty": true,
                    "optional": true,
                    "valid_values": [
                      "text"
                    ]
                  }
                ],
                "require_no_input": true,
                "return_multiple_values": true,
                "input_is_optional": true
              }
            }
          ]
        },
        "config_version": "text",
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z",
        "published_by": "text",
        "published_at": "2025-08-26T13:07:04.310Z"
      }
    }
    {
      "value": {
        "policy_id": "text",
        "version_number": 1,
        "state": 1,
        "config": {
          "workflows": [
            {
              "trigger_type": 1,
              "description": "text",
              "trigger_string": "text",
              "conditions_on_success": [
                {
                  "condition_type": 1,
                  "condition_string": "text",
                  "actions_to_run": [
                    {
                      "name": "text",
                      "type": 1
                    }
                  ],
                  "name": "text",
                  "continue_actions_if_any_error": true,
                  "state": 1
                }
              ],
              "continuous_sync": true,
              "name": "text",
              "state": 1,
              "attribute_to_get_execute_date": "text",
              "local_time_zone_diff_from_utc": 1,
              "local_time_zone_attribute": "text",
              "trigger_at_local_time_hour": 1,
              "execute_date_time_formatters": [
                {
                  "date_formatter": "text",
                  "pipeline_functions": "text"
                }
              ],
              "grace_period_in_sec": 1,
              "skip_trigger_recheck_after_grace_period": true,
              "priority": 1
            }
          ],
          "actions": [
            {
              "name": "text",
              "description": "text",
              "type": 1,
              "config": {
                "@type": "text",
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "conditions_on_success": [
                {
                  "condition_type": 1,
                  "condition_string": "text",
                  "actions_to_run": [
                    {
                      "name": "text",
                      "type": 1
                    }
                  ],
                  "name": "text",
                  "continue_actions_if_any_error": true,
                  "state": 1
                }
              ],
              "action_notification_settings": [
                {
                  "notification_settings": {
                    "notification_type": 1,
                    "notification_id": "text",
                    "type_settings": {
                      "@type": "text",
                      "ANY_ADDITIONAL_PROPERTY": "anything"
                    }
                  },
                  "on_success": true,
                  "on_failure": true
                }
              ],
              "state": 1,
              "run_once": true
            }
          ],
          "attribute_common_transformers": [
            {
              "name": "text",
              "description": "text",
              "entity_type": "text",
              "entity_attribute_transformers": [
                {
                  "destination_attribute": "text",
                  "destination_value_formatter": "text",
                  "continuous_sync": true,
                  "additional_value_formatter": [
                    "text"
                  ],
                  "pipeline_functions": "text",
                  "unique_identifier": true
                }
              ]
            }
          ],
          "lookup_table_references": [
            {
              "name": "text",
              "description": "text",
              "column_names": [
                "text"
              ],
              "lookup_table_id": "text"
            }
          ],
          "mover_properties": [
            "text"
          ],
          "password_complexity_rules": [
            {
              "name": "text",
              "length": 1,
              "use_special_characters": true,
              "use_numbers": true,
              "use_uppercase": true,
              "use_lowercase": true,
              "disallowed_characters": "text"
            }
          ],
          "transformer_functions": [
            {
              "function_expression": "text",
              "definition": {
                "name": "text",
                "description": "text",
                "parameters": [
                  {
                    "name": "text",
                    "description": "text",
                    "type": 1,
                    "allow_empty": true,
                    "optional": true,
                    "valid_values": [
                      "text"
                    ]
                  }
                ],
                "require_no_input": true,
                "return_multiple_values": true,
                "input_is_optional": true
              }
            }
          ]
        },
        "config_version": "text",
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z",
        "published_by": "text",
        "published_at": "2025-08-26T13:07:04.310Z"
      }
    }
    PATCH /api/private/lifecycle_management/policies/{value.policy_id}/versions/{value.version_number} HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 2130
    
    {
      "policy_id": "text",
      "state": 1,
      "config": {
        "workflows": [
          {
            "trigger_type": 1,
            "description": "text",
            "trigger_string": "text",
            "conditions_on_success": [
              {
                "condition_type": 1,
                "condition_string": "text",
                "actions_to_run": [
                  {
                    "name": "text",
                    "type": 1
                  }
                ],
                "name": "text",
                "continue_actions_if_any_error": true,
                "state": 1
              }
            ],
            "continuous_sync": true,
            "name": "text",
            "state": 1,
            "attribute_to_get_execute_date": "text",
            "local_time_zone_diff_from_utc": 1,
            "local_time_zone_attribute": "text",
            "trigger_at_local_time_hour": 1,
            "execute_date_time_formatters": [
              {
                "date_formatter": "text",
                "pipeline_functions": "text"
              }
            ],
            "grace_period_in_sec": 1,
            "skip_trigger_recheck_after_grace_period": true,
            "priority": 1
          }
        ],
        "actions": [
          {
            "name": "text",
            "description": "text",
            "type": 1,
            "config": {
              "@type": "text",
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "conditions_on_success": [
              {
                "condition_type": 1,
                "condition_string": "text",
                "actions_to_run": [
                  {
                    "name": "text",
                    "type": 1
                  }
                ],
                "name": "text",
                "continue_actions_if_any_error": true,
                "state": 1
              }
            ],
            "action_notification_settings": [
              {
                "notification_settings": {
                  "notification_type": 1,
                  "notification_id": "text",
                  "type_settings": {
                    "@type": "text",
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  }
                },
                "on_success": true,
                "on_failure": true
              }
            ],
            "state": 1,
            "run_once": true
          }
        ],
        "attribute_common_transformers": [
          {
            "name": "text",
            "description": "text",
            "entity_type": "text",
            "entity_attribute_transformers": [
              {
                "destination_attribute": "text",
                "destination_value_formatter": "text",
                "continuous_sync": true,
                "additional_value_formatter": [
                  "text"
                ],
                "pipeline_functions": "text",
                "unique_identifier": true
              }
            ]
          }
        ],
        "lookup_table_references": [
          {
            "name": "text",
            "description": "text",
            "column_names": [
              "text"
            ],
            "lookup_table_id": "text"
          }
        ],
        "mover_properties": [
          "text"
        ],
        "password_complexity_rules": [
          {
            "name": "text",
            "length": 1,
            "use_special_characters": true,
            "use_numbers": true,
            "use_uppercase": true,
            "use_lowercase": true,
            "disallowed_characters": "text"
          }
        ],
        "transformer_functions": [
          {
            "function_expression": "text",
            "definition": {
              "name": "text",
              "description": "text",
              "parameters": [
                {
                  "name": "text",
                  "description": "text",
                  "type": 1,
                  "allow_empty": true,
                  "optional": true,
                  "valid_values": [
                    "text"
                  ]
                }
              ],
              "require_no_input": true,
              "return_multiple_values": true,
              "input_is_optional": true
            }
          }
        ]
      }
    }

    allow_inherited_from_types

    array[string]

    Optional

    List of access profile type IDs that profiles of this type can inherit from

    allow_create_relationships

    boolean

    Optional

    Whether profiles of this type can create direct relationships to entities

    require_single_datasource

    boolean

    Optional

    Whether profiles of this type must contain entities from only one datasource

    require_single_integration

    boolean

    Optional

    Whether profiles can only have access from a single integration (e.g., SNOWFLAKE)

    add_integration_prefix_to_access_profile_names

    boolean

    Optional

    Add integration prefix to profile names when require_single_integration is true

    max_entitlements

    integer

    Optional

    Maximum number of entitlements that can be added to profiles of this type

    create_entitlement_based_on_profile

    boolean

    Optional

    Create new entitlements if not found (only available if require_single_integration is true)

    create_entitlements

    array[object]

    Optional

    Entitlements to create based on attribute transformers when creating a profile

    no_entitlements

    boolean

    Optional

    If true, will not create any entitlements when creating a profile

    on_create_behavior

    string

    Optional

    Determines the state of the profile when created

    instructions

    string

    Optional

    Instructions for users when creating a profile of this type (markdown format)

    time_before_sync_check_in_seconds

    integer

    Optional

    How often to sync the profile (in seconds) with the target. Only allowed if create_entitlement_based_on_profile is true

    access_request_policy_id

    string

    Optional

    The access request policy associated with the access profile when creating a profile of this type

    allow_overwrite_of_access_request_policy

    boolean

    Optional

    Whether the access request policy can be overwritten when creating a profile

    name_transformer

    object

    Optional

    Name transformer rules for this profile type

    remove_entitlement_on_member_upon_update

    boolean

    Optional

    Remove deleted entitlements from members when access profile version is updated

    time_before_sync_check_in_seconds

    Defines sync frequency with target systems to ensure member lists stay current. Set to 0 to disable syncing.

    Inheritance Rules

    allow_inherited_from_types

    Restricts which other access profile types can be inherited from. An empty array allows inheritance from any type.

    allow_overwrite_of_access_request_policy

    When false, the access request policy cannot be changed when creating individual profiles.

    Create a basic access profile type for direct entity relationships:

    curl -X POST "$BASE_URL/api/private/lifecycle_management/access_profiles_types" \
      -H "authorization: Bearer $VEZA_TOKEN" \
      -H "Content-Type: application/json" \
      --data-raw '{
        "name": "Profile",
        "description": "Basic Access Profile",
        "allow_inherit_entities": false,
        "allow_create_relationships": true,
        "require_single_datasource": false
      }'

    Create a business role type that can inherit from other profiles:

    curl -X POST "$BASE_URL/api/private/lifecycle_management/access_profiles_types" \
      -H "authorization: Bearer $VEZA_TOKEN" \
      -H "Content-Type: application/json" \
      --data-raw '{
        "name": "Business Role",
        "description": "Access profile type for business roles that can inherit from other profiles",
        "allow_inherit_entities": true,
        "allow_create_relationships": false,
        "require_single_datasource": false,
        "max_entitlements": 50,
        "instructions": "This business role allows users to inherit permissions from multiple technical profiles. Use this for high-level organizational roles."
      }'

    Create an advanced profile type with detailed configuration:

    curl -X POST "$BASE_URL/api/private/lifecycle_management/access_profiles_types" \
      -H "authorization: Bearer $VEZA_TOKEN" \
      -H "Content-Type: application/json" \
      --data-raw '{
        "name": "Application-Specific Access",
        "description": "Profile type for application-specific access with sync capabilities",
        "allow_inherit_entities": false,
        "allow_create_relationships": true,
        "require_single_datasource": true,
        "require_single_integration": true,
        "create_entitlement_based_on_profile": true,
        "time_before_sync_check_in_seconds": 3600,
        "max_entitlements": 25,
        "instructions": "Use this type for application-specific profiles that require regular synchronization with target systems."
      }'
    post
    Authorizations
    Body
    namestringOptional
    descriptionstringOptional
    allow_inherit_entitiesbooleanOptional
    allow_inherited_from_typesstring[]Optional
    allow_create_relationshipsbooleanOptional
    require_single_datasourcebooleanOptional
    require_single_integrationbooleanOptional
    add_integration_prefix_to_access_profile_namesbooleanOptional
    max_entitlementsinteger · int32Optional
    create_entitlement_based_on_profilebooleanOptional
    no_entitlementsbooleanOptional
    on_create_behaviorinteger · enumOptional
    instructionsstringOptional
    time_before_sync_check_in_secondsstringOptional
    access_request_policy_idstringOptional
    allow_overwrite_of_access_request_policybooleanOptional
    remove_entitlement_on_member_upon_updatebooleanOptional

    name

    string

    Required

    Name of the access profile type

    description

    string

    Optional

    Description of the access profile type purpose

    allow_inherit_entities

    boolean

    Optional

    Integration and Entitlement Management

    require_single_integration

    When true, profiles of this type can only contain entities from a single integration (e.g., SNOWFLAKE, ACTIVE_DIRECTORY, etc.).

    create_entitlement_based_on_profile

    Automatically creates new entitlements if they don't exist, based on attribute transformers. Only available when require_single_integration is true.

    no_entitlements

    When true, creating profiles of this type will only create the application connection without any specific entitlements.

    Profile Behavior Configuration

    on_create_behavior

    Controls the initial state when profiles of this type are created (AccessProfile.OnCreateBehavior enum).

    {
      "value": {
        "id": "13ddf132-0868-4330-a0a3-41b088f6a4dc",
        "allow_create_relationships": false,
        "allow_inherit_entities": true,
        "description": "Access profile type for business roles that can inherit from other profiles",
        "integrations": [],
        "name": "Business Role",
        "profiles_count": 0,
        "require_single_datasource": false,
        "created_at": "2024-07-15T16:10:30.123456789Z",
        "updated_at": "2024-07-15T16:10:30.123456789Z"
      }
    }
    {
      "value": {
        "id": "13ddf132-0868-4330-a0a3-41b088f6a4dc",
        "allow_create_relationships": false,
        "allow_inherit_entities": true,
        "allow_inherited_from_types": [],
        "description": "Access profile type for business roles that can inherit from other profiles",
        "integrations": [],
        "name": "Business Role",
        "profiles_count": 0,
        "require_single_datasource": false,
        "require_single_integration": false,
        "max_entitlements": 50,
        "create_entitlement_based_on_profile": false,
        "create_entitlements": [],
        "no_entitlements": false,
        "on_create_behavior": "INITIAL",
        "instructions": "This business role allows users to inherit permissions from multiple technical profiles. Use this for high-level organizational roles.",
        "time_before_sync_check_in_seconds": 0,
        "access_request_policy_id": null,
        "allow_overwrite_of_access_request_policy": true,
        "name_transformer": null,
        "remove_entitlement_on_member_upon_update": false,
        "created_at": "2024-07-15T16:10:30.123456789Z",
        "updated_at": "2024-07-15T16:10:30.123456789Z"
      }
    }

    Authentication Required

    This endpoint requires a valid Veza API key for authentication.

    See Authentication for more about creating and managing API keys.

    All requests must include the API key as a Bearer token in the Authorization header.

    Example:

    curl -X GET "$BASE_URL/api/preview/keys" \
      -H "authorization: Bearer $VEZA_TOKEN"

    Whether profiles of this type can inherit entities from other access profiles

    namestringOptional
    descriptionstringOptional
    stateinteger · enumOptional
    profile_typestringOptional
    inherit_entities_from_access_profilesstring[]Optional

    List of profiles that this one inherits from

    labelsstring[]Optional
    access_request_policy_idstringOptional

    The access request policy that is associated with the access profile

    application_datasource_idstringOptional

    This is only available if the profile type is doesn't allow entitlements or inherited profiles This is the datasource to use for this profile in the assign application use case, when the profile is assigned it will create a relationship to the datasource

    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    post
    POST /api/private/lifecycle_management/access_profiles HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 706
    
    {
      "name": "text",
      "description": "text",
      "state": 1,
      "profile_type": "text",
      "entities_to_create_relationships_to": [
        {
          "entity_type": "text",
          "datasource_id": "text",
          "entity_id": "text",
          "assigned_to_entity_type": "text",
          "assigned_to_entity_id": "text",
          "grant_by": 1,
          "created_by_access_profile": true,
          "custom_properties": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          },
          "sync_identity_action": {
            "policy_id": "text",
            "name": "text"
          },
          "condition": {
            "type": 1,
            "condition_string": "text"
          }
        }
      ],
      "inherit_entities_from_access_profiles": [
        "text"
      ],
      "labels": [
        "text"
      ],
      "access_request_policy_id": "text",
      "application_datasource_id": "text",
      "application_sync_identity_action": {
        "policy_id": "text",
        "name": "text"
      },
      "custom_properties": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
    get
    GET /api/private/lifecycle_management/access_profiles_types HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Accept: */*
    

    Managed access profile types with distinct configurations

  • Versioned profiles for profile lifecycle management

  • Access Profile Types

    Access Profile Types define categories of access profiles and their capabilities within Veza. They determine how access profiles can be configured and used.

    Access Profiles

    Access Profiles define specific sets of entitlements that can be granted to users. Each profile contains versions that allow for drafting and managing changes over time.

    Integrations

    Integrations represent the available systems and platforms that can be used with Access Profiles for access management operations.

    Endpoints

    Use the following endpoints to interact with Access Profiles, Access Profile Types, and available integrations:

    Access Profile Type Operations

    Method
    Endpoint
    Description

    POST

    Creates a new access profile type

    GET

    Retrieves all access profile types

    Access Profile Operations

    Method
    Endpoint
    Description

    POST

    Creates a new access profile

    GET

    Retrieves all access profiles with filtering options

    PATCH

    Updates labels assigned to an access profile

    PATCH

    Member Management Operations

    Method
    Endpoint
    Description

    GET

    Lists all members of a specific access profile version

    PUT

    Adds or removes members from an access profile version

    Integration Operations

    Method
    Endpoint
    Description

    GET

    Lists all integrations available for use with access profiles

    Authentication

    All Access Profile API requests require authentication. See API Authentication for details on how to authenticate with Veza APIs.

    Getting Started

    To get started with Access Profile APIs:

    1. List available integrations to see what systems you can manage

    2. List lifecycle management datasources to view enabled systems

    3. Create an access profile type to define how access profiles will be configured

    4. Create access profiles with the entitlements your users need

    5. to grant access to users

    6. Use to automate when access profiles are assigned

    Prerequisites: Before creating Access Profiles, ensure you have Access Profile Types configured and lifecycle management datasources enabled for your target systems.

    Related Documentation

    For more information about Access Profile concepts and features, see:

    • Access Profiles

    • Lifecycle Management Implementation

    • Policy APIs

    {
      "value": {
        "id": "text",
        "name": "text",
        "description": "text",
        "state": 1,
        "profile_type": "text",
        "current_version_number": 1,
        "draft_version_number": 1,
        "used_by_workflow": true,
        "integrations": [
          "text"
        ],
        "current_version": {
          "access_profile_id": "text",
          "version_number": 1,
          "state": 1,
          "entities_to_create_relationships_to": [
            {
              "entity_type": "text",
              "datasource_id": "text",
              "entity_id": "text",
              "assigned_to_entity_type": "text",
              "assigned_to_entity_id": "text",
              "extraction_datasource_id": "text",
              "provider_id": "text",
              "provider_external_id": "text",
              "entity_name": "text",
              "native_id": "text",
              "grant_by": 1,
              "created_by_access_profile": true,
              "custom_properties": {
                "ANY_ADDITIONAL_PROPERTY": "text"
              },
              "sync_identity_action": {
                "policy_id": "text",
                "name": "text"
              },
              "condition": {
                "type": 1,
                "condition_string": "text"
              },
              "create_entitlement_detail_id": "text",
              "created_at": "2025-08-26T13:07:04.310Z"
            }
          ],
          "inherit_entities_from_access_profiles": [
            "text"
          ],
          "members": [
            "text"
          ],
          "rbac_id": "text",
          "access_request_policy_id": "text",
          "application_datasource_id": "text",
          "application_sync_identity_action": {
            "policy_id": "text",
            "name": "text"
          },
          "created_by": "text",
          "created_at": "2025-08-26T13:07:04.310Z",
          "updated_at": "2025-08-26T13:07:04.310Z",
          "published_by": "text",
          "published_at": "2025-08-26T13:07:04.310Z"
        },
        "access_profiles_inherited": [
          "text"
        ],
        "access_profiles_inherited_by": [
          "text"
        ],
        "inherits_from_other_profiles": true,
        "inherited_by_other_profiles": true,
        "labels": [
          "text"
        ],
        "provider_ids": [
          "text"
        ],
        "provider_external_ids": [
          "text"
        ],
        "datasource_ids": [
          "text"
        ],
        "rbac_id": "text",
        "member_details": [
          {
            "access_profile_id": "text",
            "access_profile_name": "text",
            "identity_id": "text",
            "identity_name": "text",
            "created_from": 1,
            "workflow": "text"
          }
        ],
        "requestable": true,
        "require_approval_to_start": true,
        "started_at": "2025-08-26T13:07:04.310Z",
        "started_by": "text",
        "catalog_item_info": {
          "name": "text",
          "description": "text",
          "markdown_description": "text",
          "icon": "text",
          "recommended": true
        },
        "access_request_policy_id": "text",
        "created_entitlements": [
          {
            "datasource_id": "text",
            "entity_type": "text",
            "attribute_transformers": {
              "values": [
                {
                  "destination_attribute": "text",
                  "destination_value_formatter": "text",
                  "continuous_sync": true,
                  "additional_value_formatter": [
                    "text"
                  ],
                  "pipeline_functions": "text",
                  "unique_identifier": true
                }
              ]
            },
            "add_member_condition": {
              "type": 1,
              "condition_string": "text"
            },
            "created_entity_id": "text",
            "access_request_id": "text",
            "id": "text",
            "last_sync_job_id": "text"
          }
        ],
        "last_synced_at": "2025-08-26T13:07:04.310Z",
        "sync_allowed": true,
        "last_sync_job_ids": [
          "text"
        ],
        "identity_created_by": "text",
        "last_sync_error_message": "text",
        "profile_type_rbac_id": "text",
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z",
        "custom_properties": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      },
      "version": {
        "access_profile_id": "text",
        "version_number": 1,
        "state": 1,
        "entities_to_create_relationships_to": [
          {
            "entity_type": "text",
            "datasource_id": "text",
            "entity_id": "text",
            "assigned_to_entity_type": "text",
            "assigned_to_entity_id": "text",
            "extraction_datasource_id": "text",
            "provider_id": "text",
            "provider_external_id": "text",
            "entity_name": "text",
            "native_id": "text",
            "grant_by": 1,
            "created_by_access_profile": true,
            "custom_properties": {
              "ANY_ADDITIONAL_PROPERTY": "text"
            },
            "sync_identity_action": {
              "policy_id": "text",
              "name": "text"
            },
            "condition": {
              "type": 1,
              "condition_string": "text"
            },
            "create_entitlement_detail_id": "text",
            "created_at": "2025-08-26T13:07:04.310Z"
          }
        ],
        "inherit_entities_from_access_profiles": [
          "text"
        ],
        "members": [
          "text"
        ],
        "rbac_id": "text",
        "access_request_policy_id": "text",
        "application_datasource_id": "text",
        "application_sync_identity_action": {
          "policy_id": "text",
          "name": "text"
        },
        "created_by": "text",
        "created_at": "2025-08-26T13:07:04.310Z",
        "updated_at": "2025-08-26T13:07:04.310Z",
        "published_by": "text",
        "published_at": "2025-08-26T13:07:04.310Z"
      }
    }
    {
      "values": [
        {
          "id": "text",
          "name": "text",
          "description": "text",
          "allow_inherit_entities": true,
          "allow_inherited_from_types": [
            "text"
          ],
          "profiles_count": 1,
          "integrations": [
            "text"
          ],
          "allow_create_relationships": true,
          "require_single_datasource": true,
          "require_single_integration": true,
          "add_integration_prefix_to_access_profile_names": true,
          "rbac_id": "text",
          "max_entitlements": 1,
          "create_entitlement_based_on_profile": true,
          "create_entitlements": [
            {
              "datasource_id": "text",
              "entity_type": "text",
              "attribute_transformers": {
                "values": [
                  {
                    "destination_attribute": "text",
                    "destination_value_formatter": "text",
                    "continuous_sync": true,
                    "additional_value_formatter": [
                      "text"
                    ],
                    "pipeline_functions": "text",
                    "unique_identifier": true
                  }
                ]
              },
              "add_member_condition": {
                "type": 1,
                "condition_string": "text"
              },
              "created_entity_id": "text",
              "access_request_id": "text",
              "id": "text",
              "last_sync_job_id": "text"
            }
          ],
          "no_entitlements": true,
          "enabled": true,
          "on_create_behavior": 1,
          "instructions": "text",
          "time_before_sync_check_in_seconds": "text",
          "access_request_policy_id": "text",
          "allow_overwrite_of_access_request_policy": true,
          "name_transformer": {
            "destination_attribute": "text",
            "destination_value_formatter": "text",
            "continuous_sync": true,
            "additional_value_formatter": [
              "text"
            ],
            "pipeline_functions": "text",
            "unique_identifier": true
          },
          "remove_entitlement_on_member_upon_update": true
        }
      ],
      "next_page_token": "text",
      "has_more": true
    }

    Updates a specific version of an access profile

    Add members to access profiles
    policy APIs
    Create Access Profile Type
    List Access Profile Types
    Create Access Profile
    List Access Profiles
    Update Access Profile Labels
    Update Access Profile Version
    List Access Profile Members
    Update Access Profile Members
    List Available Integrations
    Responses
    200

    OK

    application/json
    default

    Default error response

    application/json
    post
    POST /api/private/lifecycle_management/access_profiles_types HTTP/1.1
    Host: your-tenant.cookiecloud.ai
    Authorization: Bearer JWT
    Content-Type: application/json
    Accept: */*
    Content-Length: 1119
    
    {
      "name": "text",
      "description": "text",
      "allow_inherit_entities": true,
      "allow_inherited_from_types": [
        "text"
      ],
      "allow_create_relationships": true,
      "require_single_datasource": true,
      "require_single_integration": true,
      "add_integration_prefix_to_access_profile_names": true,
      "max_entitlements": 1,
      "create_entitlement_based_on_profile": true,
      "create_entitlements": [
        {
          "datasource_id": "text",
          "entity_type": "text",
          "attribute_transformers": {
            "values": [
              {
                "destination_attribute": "text",
                "destination_value_formatter": "text",
                "continuous_sync": true,
                "additional_value_formatter": [
                  "text"
                ],
                "pipeline_functions": "text",
                "unique_identifier": true
              }
            ]
          },
          "add_member_condition": {
            "type": 1,
            "condition_string": "text"
          }
        }
      ],
      "no_entitlements": true,
      "on_create_behavior": 1,
      "instructions": "text",
      "time_before_sync_check_in_seconds": "text",
      "access_request_policy_id": "text",
      "allow_overwrite_of_access_request_policy": true,
      "name_transformer": {
        "destination_attribute": "text",
        "destination_value_formatter": "text",
        "continuous_sync": true,
        "additional_value_formatter": [
          "text"
        ],
        "pipeline_functions": "text",
        "unique_identifier": true
      },
      "remove_entitlement_on_member_upon_update": true
    }
    {
      "value": {
        "id": "text",
        "name": "text",
        "description": "text",
        "allow_inherit_entities": true,
        "allow_inherited_from_types": [
          "text"
        ],
        "profiles_count": 1,
        "integrations": [
          "text"
        ],
        "allow_create_relationships": true,
        "require_single_datasource": true,
        "require_single_integration": true,
        "add_integration_prefix_to_access_profile_names": true,
        "rbac_id": "text",
        "max_entitlements": 1,
        "create_entitlement_based_on_profile": true,
        "create_entitlements": [
          {
            "datasource_id": "text",
            "entity_type": "text",
            "attribute_transformers": {
              "values": [
                {
                  "destination_attribute": "text",
                  "destination_value_formatter": "text",
                  "continuous_sync": true,
                  "additional_value_formatter": [
                    "text"
                  ],
                  "pipeline_functions": "text",
                  "unique_identifier": true
                }
              ]
            },
            "add_member_condition": {
              "type": 1,
              "condition_string": "text"
            },
            "created_entity_id": "text",
            "access_request_id": "text",
            "id": "text",
            "last_sync_job_id": "text"
          }
        ],
        "no_entitlements": true,
        "enabled": true,
        "on_create_behavior": 1,
        "instructions": "text",
        "time_before_sync_check_in_seconds": "text",
        "access_request_policy_id": "text",
        "allow_overwrite_of_access_request_policy": true,
        "name_transformer": {
          "destination_attribute": "text",
          "destination_value_formatter": "text",
          "continuous_sync": true,
          "additional_value_formatter": [
            "text"
          ],
          "pipeline_functions": "text",
          "unique_identifier": true
        },
        "remove_entitlement_on_member_upon_update": true
      }
    }