arrow-left
All pages
gitbookPowered by GitBook
1 of 1

Loading...

OAA Operations

API calls for managing and updating custom data sources

Use these REST API calls to manage and update custom providers and data sources with Open Authorization API.

hashtag
Create Custom Provider

Creates a custom provider and returns the provider ID.

hashtag
List Custom Providers

Lists all configured custom providers.

hashtag
Get Custom Provider by ID

Returns details for an individual custom provider.

hashtag
Delete Custom Provider

Delete a custom provider by ID.

hashtag
List Custom Provider Datasources

Return all data sources for a Custom Provider ID.

You can constrain large responses by adding a filter to the request query string. Include the operator (eq), and value, for example:

CURL <VEZA_URL>/api/v1/providers/custom?filter=name eq "GitHub"&order_by=state

circle-info

Veza expects that spaces in URLS are encoded as "+" (for example?name+eq+"GitHub"&order_by=state). Note that some libraries and clients will encode spaces as "%2B" by default, which will cause errors unless you override this behavior.

hashtag
Create Custom Provider Datasource

Register a new datasource for a custom provider. There can be more than one datasource for a single provider.

hashtag
Get Datasource by ID

Returns details for a single datasource.

hashtag
Delete Custom Provider Datasource

Unbind a datasource from a custom provider, and delete it.

circle-info

You can also delete OAA datasources from the Veza web interface. On the Integrations page, find the OAA datasource in the list and click the action menu (⋮) to access the Delete option.

hashtag
Push Custom Provider Datasource

To push authorization metadata for a custom datasource, you can specify the source and provider IDs, and upload a payload with the entities and permissions in JSON format.

A warning is returned for any non-critical errors during payload processing. These can indicate incomplete or inaccurate data in the payload that do not prevent processing, but may warrant attention.

hashtag
Push Custom Provider Datasource CSV

For , this endpoint pushes CSV data to an existing datasource. Typically, you will first create the integration and define column mappings using the "Add Integration" flow in Veza.

CSV data must base64 encoded into the JSON body of the request.

hashtag
Compression

The populated template can be compressed and encoded, for significantly reduced payload size.

  • Specify the compression_type. Currently supported: GZIP.

  • If compression is selected, Veza will expect the payload json_data as a compressed, base64-encoded string.

To compress using shell commands:

Size is typically not an issue when updating custom datasources. However, you may want to compress large payloads. The maximum body size is 100MB (compressed or uncompressed).

hashtag
Escaping unsafe characters

Veza expects the populated template as a single JSON string, enclosed in the request body json_data field. Any "s and non-ASCII characters must be escaped.

To convert a template to JSON string using Python, the json.dumps() method could be used:

hashtag
Custom Provider Icons

You can optionally add an icon for your custom provider by uploading a PNG or SVG file (less than 64kb) as a base64-encoded string:

hashtag
Create Custom Provider Icon

Upload a custom icon to display for an OAA provider.

hashtag
Get Custom Provider Icon

Return the type and string-encoded icon for a custom provider.

hashtag
Delete Custom Provider Icon

Delete the icon associated with an OAA provider.

CSV Upload Integrations
{
    "csv_data": "abc123="
}
CSV_PAYLOAD=$(cat my_app_data.csv | base64)
curl --location https://example.vezacloud.com/api/v1/providers/custom/40bdd318-d320-4574-be90-ca556d59889a/datasources/9bc29dc6-8cd0-4926-992e-7d720305ae2f:push_csv \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer $VEZA_API_KEY" \
--data "{\"csv_data\": \"${CSV_PAYLOAD}\"}"
cat app_payload.json | gzip | base64 -o json_data.b64
payload = {"id": provider_id,
           "data_source_id": data_source_id,
           "json_data": json.dumps(template_contents)
           }
curl -X POST '{{VezaURL}}/api/v1/providers/custom/962d5eff-285c-4b08-a54e-400eead1e680:icon' \
-H "authorization: Bearer $API_KEY" \
-d '{"icon_base64": "PHN2ZyBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciICB2aWV3Qm94PSIwIDAgNjQgNjQiIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiPjxwYXRoIGQ9Ik0zMiA2QzE3LjY0MSA2IDYgMTcuNjQxIDYgMzJjMCAxMi4yNzcgOC41MTIgMjIuNTYgMTkuOTU1IDI1LjI4Ni0uNTkyLS4xNDEtMS4xNzktLjI5OS0xLjc1NS0uNDc5VjUwLjg1YzAgMC0uOTc1LjMyNS0yLjI3NS4zMjUtMy42MzcgMC01LjE0OC0zLjI0NS01LjUyNS00Ljg3NS0uMjI5LS45OTMtLjgyNy0xLjkzNC0xLjQ2OS0yLjUwOS0uNzY3LS42ODQtMS4xMjYtLjY4Ni0xLjEzMS0uOTItLjAxLS40OTEuNjU4LS40NzEuOTc1LS40NzEgMS42MjUgMCAyLjg1NyAxLjcyOSAzLjQyOSAyLjYyMyAxLjQxNyAyLjIwNyAyLjkzOCAyLjU3NyAzLjcyMSAyLjU3Ny45NzUgMCAxLjgxNy0uMTQ2IDIuMzk3LS40MjYuMjY4LTEuODg4IDEuMTA4LTMuNTcgMi40NzgtNC43NzQtNi4wOTctMS4yMTktMTAuNC00LjcxNi0xMC40LTEwLjQgMC0yLjkyOCAxLjE3NS01LjYxOSAzLjEzMy03Ljc5MkMxOS4zMzMgMjMuNjQxIDE5IDIyLjQ5NCAxOSAyMC42MjVjMC0xLjIzNS4wODYtMi43NTEuNjUtNC4yMjUgMCAwIDMuNzA4LjAyNiA3LjIwNSAzLjMzOEMyOC40NjkgMTkuMjY4IDMwLjE5NiAxOSAzMiAxOXMzLjUzMS4yNjggNS4xNDUuNzM4YzMuNDk3LTMuMzEyIDcuMjA1LTMuMzM4IDcuMjA1LTMuMzM4LjU2NyAxLjQ3NC42NSAyLjk5LjY1IDQuMjI1IDAgMi4wMTUtLjI2OCAzLjE5LS40MzIgMy42OTdDNDYuNDY2IDI2LjQ3NSA0Ny42IDI5LjEyNCA0Ny42IDMyYzAgNS42ODQtNC4zMDMgOS4xODEtMTAuNCAxMC40IDEuNjI4IDEuNDMgMi42IDMuNTEzIDIuNiA1Ljg1djguNTU3Yy0uNTc2LjE4MS0xLjE2Mi4zMzgtMS43NTUuNDc5QzQ5LjQ4OCA1NC41NiA1OCA0NC4yNzcgNTggMzIgNTggMTcuNjQxIDQ2LjM1OSA2IDMyIDZ6TTMzLjgxMyA1Ny45M0MzMy4yMTQgNTcuOTcyIDMyLjYxIDU4IDMyIDU4IDMyLjYxIDU4IDMzLjIxMyA1Ny45NzEgMzMuODEzIDU3Ljkzek0zNy43ODYgNTcuMzQ2Yy0xLjE2NC4yNjUtMi4zNTcuNDUxLTMuNTc1LjU1NEMzNS40MjkgNTcuNzk3IDM2LjYyMiA1Ny42MSAzNy43ODYgNTcuMzQ2ek0zMiA1OGMtLjYxIDAtMS4yMTQtLjAyOC0xLjgxMy0uMDdDMzAuNzg3IDU3Ljk3MSAzMS4zOSA1OCAzMiA1OHpNMjkuNzg4IDU3LjljLTEuMjE3LS4xMDMtMi40MTEtLjI4OS0zLjU3NC0uNTU0QzI3LjM3OCA1Ny42MSAyOC41NzEgNTcuNzk3IDI5Ljc4OCA1Ny45eiIvPjwvc3ZnPg=="}'
post
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Body
namestringOptional
custom_templatestringOptional
provisioningbooleanOptional
push_typeinteger · enumOptional
internal_app_namestringOptional
configuration_jsonstringOptional
data_plane_idstringOptional
custom_templatesstring[]Optional
external_lifecycle_management_typeinteger · enumOptional

For external OAA, how to manage lifecycle management requests

Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
post
/api/v1/providers/custom
get
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Query parameters
filterstringOptional
order_bystringOptional
page_sizeinteger · int32Optional

The maximum number of results to be returned. Fewer results may be returned even when more pages exist.

page_tokenstringOptional

The token specifying the specific page of results to retrieve.

Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
get
/api/v1/providers/custom
get
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
get
/api/v1/providers/custom/{id}
delete
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
Responses
chevron-right
200

OK

application/json
Responseobject
chevron-right
default

Default error response

application/json
delete
/api/v1/providers/custom/{id}
get
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
Query parameters
filterstringOptional
order_bystringOptional
page_sizeinteger · int32Optional

The maximum number of results to be returned. Fewer results may be returned even when more pages exist.

page_tokenstringOptional

The token specifying the specific page of results to retrieve.

Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
get
/api/v1/providers/custom/{id}/datasources
post
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
Body
idstringOptional
namestringOptional
custom_templatestringOptional
Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
post
/api/v1/providers/custom/{id}/datasources
get
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
data_source_idstringRequired
Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
get
/api/v1/providers/custom/{id}/datasources/{data_source_id}
delete
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
data_source_idstringRequired
Responses
chevron-right
200

OK

application/json
Responseobject
chevron-right
default

Default error response

application/json
delete
/api/v1/providers/custom/{id}/datasources/{data_source_id}
post
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
data_source_idstringRequired
Body
idstringOptional
data_source_idstringOptional
json_datastringOptional
compression_typeinteger · enumOptional
priority_pushbooleanOptional
Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
post
/api/v1/providers/custom/{id}/datasources/{data_source_id}:push
post
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
data_source_idstringRequired
Body
idstringOptional
data_source_idstringOptional
csv_datastringOptional
namestringOptional
typestringOptional
compression_typeinteger · enumOptional
priority_pushbooleanOptional
Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
post
/api/v1/providers/custom/{id}/datasources/{data_source_id}:push_csv
post
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
data_source_idstringRequired
Body
idstringOptional
data_source_idstringOptional
json_datastringOptional
compression_typeinteger · enumOptional
priority_pushbooleanOptional
Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
post
/api/v1/providers/custom/{id}/datasources/{data_source_id}:push
post
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
data_source_idstringRequired
Body
idstringOptional
data_source_idstringOptional
csv_datastringOptional
namestringOptional
typestringOptional
compression_typeinteger · enumOptional
priority_pushbooleanOptional
Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
post
/api/v1/providers/custom/{id}/datasources/{data_source_id}:push_csv
post
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
Body
idstringOptional
icon_base64stringOptional
Responses
chevron-right
200

OK

application/json
Responseobject
chevron-right
default

Default error response

application/json
post
/api/v1/providers/custom/{id}:icon
get
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
get
/api/v1/providers/custom/{id}:icon
get
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Query parameters
app_or_idp_typestringOptionalDeprecated
custom_schema_typestringOptional
node_typestringOptional
Responses
chevron-right
200

OK

application/json
chevron-right
default

Default error response

application/json
get
/api/v1/providers/custom:icon
delete
Authorizations
AuthorizationstringRequired

Bearer token authentication using a Veza Personal API key.

Header Format: Authorization: Bearer <your-api-key>

Creating an API Key:

  1. Log into your Veza tenant
  2. Navigate to Administration → API Keys
  3. Generate a new API key and save the value securely
Path parameters
idstringRequired
Responses
chevron-right
200

OK

application/json
Responseobject
chevron-right
default

Default error response

application/json
delete
/api/v1/providers/custom/{id}:icon
{
  "value": {
    "id": "text",
    "external_id": "text",
    "name": "text",
    "custom_template": "text",
    "custom_templates": [
      "text"
    ],
    "state": 1,
    "application_types": [
      "text"
    ],
    "idp_types": [
      "text"
    ],
    "file_system_types": [
      "text"
    ],
    "hris_types": [
      "text"
    ],
    "principal_types": [
      "text"
    ],
    "schema_definition_json": "text",
    "provisioning": true,
    "push_type": 1,
    "rbac_id": "text",
    "internal_app_name": "text",
    "configuration_json": "text",
    "data_plane_id": "text",
    "lifecycle_management_state": 1,
    "team_id": "text",
    "csv_mapping_configuration": {
      "template_type": "text",
      "column_mappings": [
        {
          "column_name": "text",
          "destination_type": "text",
          "destination_property": "text",
          "custom_property": {
            "name": "text",
            "type": 1,
            "lcm_unique_identifier": true
          },
          "as_list": true,
          "template": "text",
          "property_type": 1
        }
      ],
      "application": {
        "application_name": "text",
        "application_type": "text",
        "identity": [
          "text"
        ],
        "resource_type": "text"
      },
      "advanced": {
        "list_delimiter": "text"
      },
      "idp": {
        "idp_type": "text",
        "domain": "text"
      },
      "hris": {
        "hris_name": "text",
        "hris_type": "text",
        "hris_url": "text",
        "hris_identity_mapping": {
          "mappings": [
            {
              "destination_datasource_type": "text",
              "destination_datasource_oaa_app_type": "text",
              "type": 1,
              "mode": 1,
              "transformations": [
                1
              ],
              "custom_value": "text",
              "property_matchers": [
                {
                  "source_property": 1,
                  "destination_property": 1,
                  "custom_source_property": "text",
                  "custom_destination_property": "text"
                }
              ],
              "id_matchers": [
                {
                  "source_id": "text",
                  "destination_id": "text"
                }
              ],
              "destination_datasources": [
                {
                  "type": "text",
                  "oaa_app_type": "text"
                }
              ]
            }
          ],
          "use_email": true
        },
        "hris_provisioning_source": true
      }
    },
    "secret_references": [
      {
        "id": "text",
        "secret_id": "text",
        "vault_id": "text",
        "vault": {
          "id": "text",
          "name": "text",
          "vault_provider": "text",
          "insight_point_id": "text",
          "deleted": true
        }
      }
    ],
    "external_lifecycle_management_type": 1
  }
}
{
  "values": [
    {}
  ],
  "next_page_token": "text",
  "has_more": true
}
{
  "value": {
    "id": "text",
    "name": "text"
  }
}
{
  "warnings": [
    {
      "message": "text"
    }
  ]
}
{
  "warnings": [
    {
      "message": "text"
    }
  ]
}
{
  "warnings": [
    {
      "message": "text"
    }
  ]
}
{
  "warnings": [
    {
      "message": "text"
    }
  ]
}
{}
POST /api/v1/providers/custom HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1309

{
  "name": "text",
  "custom_template": "text",
  "provisioning": true,
  "push_type": 1,
  "internal_app_name": "text",
  "configuration_json": "text",
  "data_plane_id": "text",
  "custom_templates": [
    "text"
  ],
  "csv_mapping_configuration": {
    "template_type": "text",
    "column_mappings": [
      {
        "column_name": "text",
        "destination_type": "text",
        "destination_property": "text",
        "custom_property": {
          "name": "text",
          "type": 1,
          "lcm_unique_identifier": true
        },
        "as_list": true,
        "template": "text",
        "property_type": 1
      }
    ],
    "application": {
      "application_name": "text",
      "application_type": "text",
      "identity": [
        "text"
      ],
      "resource_type": "text"
    },
    "advanced": {
      "list_delimiter": "text"
    },
    "idp": {
      "idp_type": "text",
      "domain": "text"
    },
    "hris": {
      "hris_name": "text",
      "hris_type": "text",
      "hris_url": "text",
      "hris_identity_mapping": {
        "mappings": [
          {
            "destination_datasource_type": "text",
            "destination_datasource_oaa_app_type": "text",
            "type": 1,
            "mode": 1,
            "transformations": [
              1
            ],
            "custom_value": "text",
            "property_matchers": [
              {
                "source_property": 1,
                "destination_property": 1,
                "custom_source_property": "text",
                "custom_destination_property": "text"
              }
            ],
            "id_matchers": [
              {
                "source_id": "text",
                "destination_id": "text"
              }
            ],
            "destination_datasources": [
              {
                "type": "text",
                "oaa_app_type": "text"
              }
            ]
          }
        ],
        "use_email": true
      },
      "hris_provisioning_source": true
    }
  },
  "secret_references": [
    {
      "secret_id": "text",
      "vault_id": "text"
    }
  ],
  "external_lifecycle_management_type": 1
}
GET /api/v1/providers/custom HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "values": [
    {
      "id": "text",
      "external_id": "text",
      "name": "text",
      "custom_template": "text",
      "custom_templates": [
        "text"
      ],
      "state": 1,
      "application_types": [
        "text"
      ],
      "idp_types": [
        "text"
      ],
      "file_system_types": [
        "text"
      ],
      "hris_types": [
        "text"
      ],
      "principal_types": [
        "text"
      ],
      "schema_definition_json": "text",
      "provisioning": true,
      "push_type": 1,
      "rbac_id": "text",
      "internal_app_name": "text",
      "configuration_json": "text",
      "data_plane_id": "text",
      "lifecycle_management_state": 1,
      "team_id": "text",
      "csv_mapping_configuration": {
        "template_type": "text",
        "column_mappings": [
          {
            "column_name": "text",
            "destination_type": "text",
            "destination_property": "text",
            "custom_property": {
              "name": "text",
              "type": 1,
              "lcm_unique_identifier": true
            },
            "as_list": true,
            "template": "text",
            "property_type": 1
          }
        ],
        "application": {
          "application_name": "text",
          "application_type": "text",
          "identity": [
            "text"
          ],
          "resource_type": "text"
        },
        "advanced": {
          "list_delimiter": "text"
        },
        "idp": {
          "idp_type": "text",
          "domain": "text"
        },
        "hris": {
          "hris_name": "text",
          "hris_type": "text",
          "hris_url": "text",
          "hris_identity_mapping": {
            "mappings": [
              {
                "destination_datasource_type": "text",
                "destination_datasource_oaa_app_type": "text",
                "type": 1,
                "mode": 1,
                "transformations": [
                  1
                ],
                "custom_value": "text",
                "property_matchers": [
                  {
                    "source_property": 1,
                    "destination_property": 1,
                    "custom_source_property": "text",
                    "custom_destination_property": "text"
                  }
                ],
                "id_matchers": [
                  {
                    "source_id": "text",
                    "destination_id": "text"
                  }
                ],
                "destination_datasources": [
                  {
                    "type": "text",
                    "oaa_app_type": "text"
                  }
                ]
              }
            ],
            "use_email": true
          },
          "hris_provisioning_source": true
        }
      },
      "secret_references": [
        {
          "id": "text",
          "secret_id": "text",
          "vault_id": "text",
          "vault": {
            "id": "text",
            "name": "text",
            "vault_provider": "text",
            "insight_point_id": "text",
            "deleted": true
          }
        }
      ],
      "external_lifecycle_management_type": 1
    }
  ],
  "next_page_token": "text",
  "has_more": true
}
GET /api/v1/providers/custom/{id} HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "value": {
    "id": "text",
    "external_id": "text",
    "name": "text",
    "custom_template": "text",
    "custom_templates": [
      "text"
    ],
    "state": 1,
    "application_types": [
      "text"
    ],
    "idp_types": [
      "text"
    ],
    "file_system_types": [
      "text"
    ],
    "hris_types": [
      "text"
    ],
    "principal_types": [
      "text"
    ],
    "schema_definition_json": "text",
    "provisioning": true,
    "push_type": 1,
    "rbac_id": "text",
    "internal_app_name": "text",
    "configuration_json": "text",
    "data_plane_id": "text",
    "lifecycle_management_state": 1,
    "team_id": "text",
    "csv_mapping_configuration": {
      "template_type": "text",
      "column_mappings": [
        {
          "column_name": "text",
          "destination_type": "text",
          "destination_property": "text",
          "custom_property": {
            "name": "text",
            "type": 1,
            "lcm_unique_identifier": true
          },
          "as_list": true,
          "template": "text",
          "property_type": 1
        }
      ],
      "application": {
        "application_name": "text",
        "application_type": "text",
        "identity": [
          "text"
        ],
        "resource_type": "text"
      },
      "advanced": {
        "list_delimiter": "text"
      },
      "idp": {
        "idp_type": "text",
        "domain": "text"
      },
      "hris": {
        "hris_name": "text",
        "hris_type": "text",
        "hris_url": "text",
        "hris_identity_mapping": {
          "mappings": [
            {
              "destination_datasource_type": "text",
              "destination_datasource_oaa_app_type": "text",
              "type": 1,
              "mode": 1,
              "transformations": [
                1
              ],
              "custom_value": "text",
              "property_matchers": [
                {
                  "source_property": 1,
                  "destination_property": 1,
                  "custom_source_property": "text",
                  "custom_destination_property": "text"
                }
              ],
              "id_matchers": [
                {
                  "source_id": "text",
                  "destination_id": "text"
                }
              ],
              "destination_datasources": [
                {
                  "type": "text",
                  "oaa_app_type": "text"
                }
              ]
            }
          ],
          "use_email": true
        },
        "hris_provisioning_source": true
      }
    },
    "secret_references": [
      {
        "id": "text",
        "secret_id": "text",
        "vault_id": "text",
        "vault": {
          "id": "text",
          "name": "text",
          "vault_provider": "text",
          "insight_point_id": "text",
          "deleted": true
        }
      }
    ],
    "external_lifecycle_management_type": 1
  }
}
DELETE /api/v1/providers/custom/{id} HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{}
GET /api/v1/providers/custom/{id}/datasources HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
POST /api/v1/providers/custom/{id}/datasources HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 52

{
  "id": "text",
  "name": "text",
  "custom_template": "text"
}
GET /api/v1/providers/custom/{id}/datasources/{data_source_id} HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "value": {}
}
DELETE /api/v1/providers/custom/{id}/datasources/{data_source_id} HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{}
POST /api/v1/providers/custom/{id}/datasources/{data_source_id}:push HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 98

{
  "id": "text",
  "data_source_id": "text",
  "json_data": "text",
  "compression_type": 1,
  "priority_push": true
}
POST /api/v1/providers/custom/{id}/datasources/{data_source_id}:push_csv HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 125

{
  "id": "text",
  "data_source_id": "text",
  "csv_data": "text",
  "name": "text",
  "type": "text",
  "compression_type": 1,
  "priority_push": true
}
POST /api/v1/providers/custom/{id}/datasources/{data_source_id}:push HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 98

{
  "id": "text",
  "data_source_id": "text",
  "json_data": "text",
  "compression_type": 1,
  "priority_push": true
}
POST /api/v1/providers/custom/{id}/datasources/{data_source_id}:push_csv HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 125

{
  "id": "text",
  "data_source_id": "text",
  "csv_data": "text",
  "name": "text",
  "type": "text",
  "compression_type": 1,
  "priority_push": true
}
POST /api/v1/providers/custom/{id}:icon HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 34

{
  "id": "text",
  "icon_base64": "text"
}
GET /api/v1/providers/custom/{id}:icon HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "mime_type": "text",
  "icon_base64": "text"
}
GET /api/v1/providers/custom:icon HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "mime_type": "text",
  "icon_base64": "text",
  "provider_id": "text"
}
DELETE /api/v1/providers/custom/{id}:icon HTTP/1.1
Host: your-tenant.cookiecloud.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{}