# List Lifecycle Manager Datasources

### Endpoint

```sh
GET /api/v1/providers/datasources/lifecycle_managers
```

### Description

Lists all data sources that have enabled lifecycle management and their detailed capabilities. This endpoint shows which systems can be used as sources of identity information and as targets for access management operations in Veza Lifecycle Management.

Use this endpoint to:

* Discover which datasources support lifecycle management
* View the capabilities each datasource provides
* Get datasource IDs needed for other lifecycle management operations
* Identify available actions, syncable attributes, and grantable entitlements for each datasource

### API Reference

{% openapi src="/files/Aco9gj4MY2XoNiD4zIjr" path="/api/v1/providers/datasources/lifecycle\_managers" method="get" %}
[openapi.yaml](https://1967633068-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZDkWMxox3pekd0NsZJ%2Fuploads%2Fgit-blob-7fffa1b503c9e0990ac3091c19a420bf184d1dec%2Fopenapi.yaml?alt=media)
{% endopenapi %}

### Query Parameters

| Parameter    | Type    | Required? | Description                                                                                       |
| ------------ | ------- | --------- | ------------------------------------------------------------------------------------------------- |
| `filter`     | string  | Optional  | When present, only returns data sources matching the filter                                       |
| `order_by`   | string  | Optional  | Sort results by specified field                                                                   |
| `page_size`  | integer | Optional  | The maximum number of results to return. Fewer results may be returned even when more pages exist |
| `page_token` | string  | Optional  | The token specifying the specific page of results to retrieve                                     |

### Request Examples

{% tabs %}
{% tab title="List All Lifecycle Datasources" %}

```bash
curl -X GET "$BASE_URL/api/v1/providers/datasources/lifecycle_managers" \
  -H "authorization: Bearer $VEZA_TOKEN"
```

{% endtab %}

{% tab title="With Pagination" %}

```bash
curl -X GET "$BASE_URL/api/v1/providers/datasources/lifecycle_managers?page_size=10" \
  -H "authorization: Bearer $VEZA_TOKEN"
```

{% endtab %}
{% endtabs %}

### Response Examples

{% tabs %}
{% tab title="Standard Response" %}

```json
{
  "values": [
    {
      "id": "549a4b5e-0328-4c87-a19d-ee8a2926d1aa",
      "name": "Workday Integration", 
      "provider_type": "WORKDAY",
      "external_id": "https://wd5-impl-services1.workday.com/veza_preview",
      "lifecycle_management_enabled": true,
      "supported_capabilities": [
        "IDENTITY_SOURCE",
        "ACCESS_TARGET"
      ]
    },
    {
      "id": "2b1c8d4e-5f2a-4b3c-9e7f-1d2e3f4a5b6c",
      "name": "Active Directory",
      "provider_type": "ACTIVE_DIRECTORY", 
      "external_id": "corp.example.com",
      "lifecycle_management_enabled": true,
      "supported_capabilities": [
        "ACCESS_TARGET"
      ]
    }
  ],
  "has_more": false,
  "next_page_token": ""
}
```

{% endtab %}

{% tab title="Detailed Capabilities Response" %}

```json
{
  "values": [
    {
      "id": "549a4b5e-0328-4c87-a19d-ee8a2926d1aa",
      "name": "SCIM Demo Server",
      "provider_type": "SCIM",
      "external_id": "https://scim.example.com",
      "lifecycle_management_enabled": true,
      "supported_capabilities": [
        "ACCESS_TARGET"
      ],
      "available_actions": [
        {
          "action_type": "MANAGE_RELATIONSHIPS",
          "description": "Add or remove user memberships in groups",
          "supported_entity_types": ["User", "Group"],
          "supported_relationship_types": ["MemberOf"]
        }
      ],
      "syncable_attributes": [
        {
          "entity_type": "User",
          "attributes": [
            {
              "name": "userName",
              "type": "string",
              "required": true,
              "description": "Primary identifier for the user"
            },
            {
              "name": "displayName", 
              "type": "string",
              "required": false,
              "description": "Display name for the user"
            },
            {
              "name": "emails",
              "type": "array",
              "required": false,
              "description": "Email addresses associated with the user"
            }
          ]
        },
        {
          "entity_type": "Group",
          "attributes": [
            {
              "name": "displayName",
              "type": "string", 
              "required": true,
              "description": "Display name for the group"
            }
          ]
        }
      ],
      "grantable_entitlements": [
        {
          "entity_type": "Group",
          "entitlement_type": "MemberOf",
          "description": "Grant membership in the specified group"
        }
      ]
    }
  ],
  "has_more": false,
  "next_page_token": ""
}
```

{% endtab %}
{% endtabs %}

### Response Fields

#### Basic Datasource Information

* **id**: Unique identifier for the datasource
* **name**: Human-readable name of the datasource
* **provider\_type**: The type of integration (e.g., SCIM, WORKDAY, ACTIVE\_DIRECTORY)
* **external\_id**: External system identifier or endpoint URL
* **lifecycle\_management\_enabled**: Whether LCM is enabled for this datasource

#### Supported Capabilities

The `supported_capabilities` field indicates what operations each datasource can perform:

* **IDENTITY\_SOURCE**: Can provide identity information for lifecycle management
* **ACCESS\_TARGET**: Can receive and execute access management operations

#### Available Actions

The `available_actions` array details specific lifecycle management operations supported:

* **action\_type**: Type of action (e.g., MANAGE\_RELATIONSHIPS)
* **description**: Human-readable description of the action
* **supported\_entity\_types**: Entity types this action can work with (User, Group, etc.)
* **supported\_relationship\_types**: Relationship types this action can manage (MemberOf, etc.)

#### Syncable Attributes

The `syncable_attributes` array shows which entity attributes can be synchronized:

* **entity\_type**: The type of entity (User, Group, etc.)
* **attributes**: Array of attribute definitions including:
  * **name**: Attribute name in the target system
  * **type**: Data type (string, array, boolean, etc.)
  * **required**: Whether the attribute is required
  * **description**: Purpose and usage of the attribute

#### Grantable Entitlements

The `grantable_entitlements` array shows what access can be granted through this datasource:

* **entity\_type**: Type of entity that can grant access (typically Group)
* **entitlement\_type**: Type of entitlement relationship (MemberOf, etc.)
* **description**: What access is granted through this entitlement


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/management/datasources/listlifecyclemanagerdatasources.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
