Upload large OAA payloads using chunked multipart requests
For OAA payloads that exceed 100 MB after compression, you can use multipart upload to split the payload into smaller chunks and upload them sequentially. The Veza platform assembles the chunks server-side before processing.
Multipart upload is useful when:
The payload is too large for a single HTTP request
Network reliability is a concern for large transfers
You need to monitor upload progress for very large data sources
Start the upload by sending a start request — the server creates an upload session and returns an upload_id.
Upload chunks sequentially, each base64-encoding a raw slice of the payload. Include the upload_id from step 1 and an incrementing sequence_number.
Each chunk must be base64-encoded from raw bytes before sending. The server decodes and reassembles chunks in sequence order when the complete operation is received.
The response returns an upload_id (UUID string) to use in all subsequent requests for this upload session.
Send a separate POST to the same endpoint after all chunks are uploaded:
The oaaclient Python SDK handles multipart upload automatically when enabled:
When enable_multipart is set to True, the SDK automatically switches to multipart for payloads exceeding 50 MB (uncompressed) and:
Splits the payload into chunks and base64-encodes each one individually
Starts an upload session and tracks the upload_id
Uploads each chunk sequentially with the correct sequence_number
All chunks for a given upload_id must be uploaded before sending the completion operation.
You can re-upload a chunk with the same sequence_number and upload_id if needed — the last upload for a given sequence number is used. All chunks must be present before the completion operation is sent.
Chunk order is determined by sequence_number
complete request with the upload_id and total sequence_count.POST /api/v1/providers/custom/{id}/datasources/{data_source_id}:partsoperation
string
Must be start
operation
string
Must be upload
upload_id
string
operation
string
Must be complete
upload_id
string
PAYLOAD_FILE="large_payload.json"
CHUNK_SIZE=10485760 # 10 MB per chunk
# 1. Start the upload session
RESPONSE=$(curl -s -X POST "https://$VEZA_URL/api/v1/providers/custom/$PROVIDER_ID/datasources/$DATASOURCE_ID:parts" \
-H "authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"start"}')
UPLOAD_ID=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin)['upload_id'])")
# 2. Split into raw chunks and upload each
SEQUENCE=0
split -b $CHUNK_SIZE "$PAYLOAD_FILE" /tmp/oaa_chunk_
for CHUNK_FILE in $(ls /tmp/oaa_chunk_* | sort); do
SEQUENCE=$((SEQUENCE + 1))
ENCODED=$(base64 -w 0 < "$CHUNK_FILE") # use -b 0 on macOS
curl -s -X POST "https://$VEZA_URL/api/v1/providers/custom/$PROVIDER_ID/datasources/$DATASOURCE_ID:parts" \
-H "authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"operation\": \"upload\",
\"upload_id\": \"$UPLOAD_ID\",
\"sequence_number\": $SEQUENCE,
\"data\": \"$ENCODED\"
}"
done
# 3. Finalize the upload
curl -s -X POST "https://$VEZA_URL/api/v1/providers/custom/$PROVIDER_ID/datasources/$DATASOURCE_ID:parts" \
-H "authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"operation\": \"complete\",
\"upload_id\": \"$UPLOAD_ID\",
\"sequence_count\": $SEQUENCE
}"
rm /tmp/oaa_chunk_*from oaaclient.client import OAAClient
client = OAAClient(url=veza_url, token=veza_api_key)
client.enable_multipart = True
# Push as usual - the SDK automatically chunks large payloads
client.push_application(provider_name, data_source_name, application_object=app)UUID returned by the start response
sequence_number
integer
Sequence number for this chunk, starting from 1. Maximum 99 chunks per upload.
data
string
Base64-encoded chunk of the raw payload
UUID from the start response
sequence_count
integer
Total number of chunks uploaded
Enrich OAA custom application users with SSO last login timestamps from Okta
Early Access: This feature is not enabled by default. Contact your Veza support team to enable the INTEG_OAA_SSO_LAST_LOGIN flag for your tenant.
Veza can enrich custom application (OAA) users with SSO last login timestamps by correlating Okta sign-in activity with your application's local users. When enabled, each local user in the Veza graph gains a sso_last_login_at property showing the last time that user accessed the application through Okta SSO.
This is useful for identifying dormant accounts, auditing access patterns, and supporting access reviews.
You specify the Okta Application ID (okta_app_id) for your custom application.
For this enrichment, Veza matches your OAA local users to Okta users using the matching property you set with the Veza API in Step 2.
On each data push, Veza looks up Okta SSO activity for your application and writes the last login timestamp to matching local users.
Enrichment runs in the OAA service after data submission. If Okta activity data is unavailable, the push completes normally without SSO timestamps, and no data is lost.
Veza queries Okta activity at push time, stores the result with the submission, and replays that stored result on later parses without querying again. A sso_last_login_at value therefore reflects the most recent push of that application, not the most recent parse or Okta extraction.
After an Okta audit log extraction completes, push the application again to include the new activity. A scheduled parse of the application does not retrieve it, because the parse replays the stored result. For a CSV integration, upload the file again. A second extraction of the Okta integration is not required: the regular Okta extraction only places the Okta users in Access Graph so that they can be matched.
An active Okta integration in Veza with . Audit log data is the source for sso_last_login_at timestamps.
A custom application (OAA) integration, using either API push or CSV upload.
The Okta App ID (okta_app_id) set on the application, described in Step 4.
Contact your Veza representative or support team and request:
Enable the
INTEG_OAA_SSO_LAST_LOGINfeature flag on this tenant.
This flag is Veza-administered and cannot be self-enabled.
Configure which Okta user property Veza uses to correlate Okta users with your application's local users. You can set this yourself using the Veza API.
The string you pass as value specifies which OktaUser attribute to use for identity mapping. The attribute value on each Okta user must match the identities field on the linked OAA local users.
For example, if local users have identities: ["jane.doe@company.com"] and OktaUser nodes have login: "jane.doe@company.com", use login.
Custom attributes (e.g., customprop_employee_id) are also supported.
To set the property, send a PUT request with an API key that has the admin or system_monitoring role:
Replace <okta_user_property_name> with the OktaUser property to match on (e.g., login, email, or a custom attribute such as customprop_idx_uid).
To verify the current value:
Look for the okta_sso_user_matching_property key in the response.
Locate the Okta Application ID (0oa…) for the application you want to enrich:
Log in to your Okta Admin Console.
Navigate to Applications > Applications.
Select the application.
Copy the application ID from the URL (format: 0oaXXXXXXXXXXXXXXXX).
The method depends on how you push data to Veza.
Add the okta_app_id field to your application payload at the application level:
okta_app_id (application level): Your Okta Application ID.
identities (user level): One or more identity strings matched against the configured Okta user property.
Navigate to Integrations > Custom Application (CSV).
Enter your Okta Application ID in the Okta App ID field in the application configuration form.
Upload your CSV as usual, ensuring users have identity values that match their Okta profiles.
After pushing data, verify enrichment is working:
Open Query Builder in Veza.
Query for your custom application's local users.
Check the sso_last_login_at column on user nodes.
Users whose identities matched an Okta user with SSO activity for your application will have a sso_last_login_at timestamp. Users without a match (such as service accounts or users not in Okta) will not have this property — this is expected.
Matching is case-insensitive. Jane.Doe@company.com and jane.doe@company.com are treated as the same identity.
First match wins. If a user has multiple identities, the first one that matches an Okta user is used.
Enrichment is non-blocking. If Okta data is unavailable, the push completes without SSO timestamps. No data is lost.
The tenant configuration okta_sso_user_matching_property set to the Okta user property that holds your join key, described in Step 2. Veza uses this one property tenant-wide; it does not search every property on the Okta profile.
identities values on your OAA local users that equal that Okta property's value for each user.
Timestamps reflect Okta access pattern data. The sso_last_login_at value comes from Okta's recorded activity for your specific application.
curl -X PUT \
"https://<tenant>.vezacloud.com/api/private/namespaces/integrations/configurations/okta_sso_user_matching_property" \
-H "Authorization: Bearer <api_key>" \
-H "Content-Type: application/json" \
-d '{"value": "<okta_user_property_name>"}'curl -s "https://<tenant>.vezacloud.com/api/private/namespaces/integrations/configurations?page_size=100" \
-H "Authorization: Bearer <api_key>"{
"name": "My Application",
"application_type": "my_app_type",
"okta_app_id": "0oaABCDEF1234567890",
"local_users": [
{
"unique_id": "jdoe",
"name": "Jane Doe",
"identities": ["jane.doe@company.com"],
"email": "jane.doe@company.com"
}
]
}sso_last_login_at not appearing on any users
Feature flag not enabled
Contact Veza support to verify INTEG_OAA_SSO_LAST_LOGIN is enabled
sso_last_login_at not appearing on any users
Matching property not configured
Holding the same value on both sides is not sufficient on its own. For example, when Okta users and your CSV users both carry an employee ID, enrichment still requires okta_sso_user_matching_property to point at the Okta employee ID property and the same employee ID to be present in each local user's identities value.
/api/private/ endpoints are not part of the public API contract and may change between releases.
Use the API in Step 2 to set okta_sso_user_matching_property, or contact Veza support to verify it is set
sso_last_login_at missing on specific users
Identity mismatch
Ensure the user's identities values match the OktaUser property values (check casing and email format)
sso_last_login_at missing on specific users
No Okta SSO activity
The user may not have accessed this application through Okta SSO
sso_last_login_at missing on specific users
No audit log activity for the app
Check Audit Logs for entries where the identity (GPID) accessed the OktaApp matching your okta_app_id. Enrichment only occurs when Veza has recorded SSO activity for that identity and application. This requires on the Okta integration.
Okta App ID field not visible in CSV form
Feature flag not enabled
Contact Veza support to enable the feature
sso_last_login_at is older than the sign-in Okta reports
No push has run since that sign-in
Veza refreshes these values only during a push, even when the data source was parsed more recently or the Okta integration extracted activity more recently. Push the application again. For a CSV integration, upload the file again. See
Methods for working with Custom Data Providers and Sources
This document provides a basic overview of the API requests for creating and updating an OAA data source. These steps and API calls can be adapted for your client or programming language of choice. You can also use the oaaclient Python module to handle Veza authentication, register the data source, and push the populated template.
While registering sources and pushing authorization metadata with Open Authorization API is relatively straightforward, it is important to understand how Veza organizes custom providers and data sources as endpoints:
You will first register a new custom application provider with a POST request to /api/providers/custom (specifying the app name and template).
The determines the type of entities the provider supports (application, identity_provider, or hris).
Each custom provider can have one or more data sources (such as different instances or domains), generated using .
The populated template can describe additional resources and sub-resources, such as individual databases, repositories, or views.
You can for each custom data source.
All custom data sources are shown on the Configuration > Apps & Data Sources menu, and can be retrieved using .
You should typically name the provider based on the generic application provider (such as GitHub) and the data source after the top-level instance (such as GitHub - Organization). See the for more information about parsing and identifying entities using metadata from the source application.
Your requests will need to include a Veza API Key. For OAA APIs, using a is recommended. Provide it as the bearer auth token in the header of each request, for example:
Follow best practices for managing API keys: Do not save credentials in connector code. Consider using a secrets manager to securely store API keys and make them available at run time.
To add a custom application, you will need to:
Create a new custom provider and data source.
push the entity and authorization data in a JSON payload.
Use to register a new top-level custom provider. The custom_template determines what kind of entities you can push to the provider.
Custom Application provider
This is a common configuration with broad support for modeling applications with local identities, resources, and authorization:
Custom Application with SCIM lifecycle management
If your application exposes SCIM 2.0 endpoints, it can support automated provisioning and deprovisioning through :
Custom Application with REST lifecycle management
For applications that expose custom REST APIs (but not SCIM) for user provisioning. Veza sends REST requests to the application's endpoints through the Insight Point, which must have network access to the target application:
Custom Identity Provider
This template is for modeling custom or unsupported identity providers as a source of users and groups:
Identities and groups in the custom provider can mapped to local accounts in other systems, and assigned as entity owners. Custom IdPs can also be used a source of identity for Lifecycle Management policies.
HRIS Provider
This template is intended to model HR information systems. Set provisioning to true to use the HRIS as a system of record for Lifecycle Management policies:
Provider creation response
All provider creation requests return the Provider ID, which you will need to create and manage data sources:
Provider creation fields
Using the Python SDK
The oaaclient SDK provides create_provider() with an options parameter for advanced fields:
Each provider needs at least one data source. Create one with
The response will include the data source ID:
Datasources should be unique to the data collected by an OAA integration instance. For example, if an application has a "prod" and "dev" instance, creating a datasource for each will enable independent updates to each environment.
Name the data source uniquely based on the application instance to discover. Try to include the hostname or organization name in the data source. For example, don't use "GitHub" use "GitHub - Acme Inc" or "Portal - prod.corp.com"
Note that a provider id is required in both the request path and body.
Once the data source and provider are active, publish the payload with . The request body must include the Provider ID and Data Source ID.
json_data must contain the populated OAA template as a single JSON string (escaping any unsafe characters such as ").
Specifying the Provider ID and Data Source ID, perform the same used for the initial push.
To update an existing data source, use the operations and operations to get the provider and data source IDs.
curl -X GET "https://$VEZA_URL/api/v1/providers/custom" \
-H "authorization: Bearer $API_KEY"Template
custom_template value
Use case
application
Applications and services with users, groups, roles, resources, and permissions
identity_provider
curl -X POST "https://$VEZA_URL/api/v1/providers/custom" \
-H "authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"GitHub","custom_template":"application"}'curl -X POST "https://$VEZA_URL/api/v1/providers/custom" \
-H "authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Internal Portal",
"custom_template": "application",
"external_lifecycle_management_type": "SCIM"
}'curl -X POST "https://$VEZA_URL/api/v1/providers/custom" \
-H "authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Legacy Access System",
"custom_template": "application",
"external_lifecycle_management_type": "SEND_REST_PAYLOAD"
}'curl -X POST "https://$VEZA_URL/api/v1/providers/custom" \
-H "authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Corporate LDAP","custom_template":"identity_provider"}'curl -X POST "https://$VEZA_URL/api/v1/providers/custom" \
-H "authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Workday",
"custom_template": "hris",
"provisioning": true
}'{
"value": {
"id": "a6ef8d8d-d17b-4491-a67a-635ad70f1ba9",
"name": "GitHub",
"custom_template": "application",
"state": "ENABLED",
"application_types": [],
"resource_types": [],
"idp_types": [],
"schema_definition_json": "e30="
}
}name
string
Yes
Provider name. Use the generic application name (e.g., "GitHub", not "GitHub - Acme").
from oaaclient.client import OAAClient
client = OAAClient(url=veza_url, token=veza_api_key)
# Basic application provider
provider = client.create_provider(name="GitHub", custom_template="application")
# Application with SCIM lifecycle management
provider = client.create_provider(
name="Internal Portal", custom_template="application",
options={"external_lifecycle_management_type": "SCIM"}
)
# HRIS as system of record
provider = client.create_provider(
name="Acme HR", custom_template="hris",
options={"provisioning": True}
)curl -X POST "https://${VEZA_URL}/api/v1/providers/custom/${PROVIDER_ID}/datasources" \
-H 'accept: application/json' \
-H 'authorization: Bearer '${API_KEY} \
-d '{"id": "<PROVIDER ID>", "name":"DemoApp - Documentation Datasource"}'{
"value": {
"id": "1bd31da0-64ee-4dfe-82c9-cb9f0f2fc369",
"name": "DemoApp - Documentation Datasource"
}
}{
"id": "532f6fe3-189f-4576-afdf-8913088961e4",
"compression_type": "none",
"data_source_id": "b6a32af6-b854-47e1-8325-e5984f78bb4d",
"json_data": "{\"name\":\"CustomApp\",\"application_type\"...}"
}curl -X POST "https://$VEZA_URL/api/v1/providers/custom/$PROVIDER_ID/datasources/$DATASOURCE_ID:push" \
-H 'accept: application/json' \
-H 'authorization: Bearer '$API_KEY \
--compressed --data-binary @body.jsoncurl -X GET "https://$VEZA_URL/api/v1/providers/custom" \
-H 'accept: application/json' \
-H 'authorization: Bearer '$API_KEYcurl -X GET "https://$VEZA_URL/api/v1/providers/custom/$PROVIDER_ID" \
-H 'accept: application/json' \
-H 'authorization: Bearer '$API_KEYcurl -X POST "https://$VEZA_URL/api/v1/providers/custom/$PROVIDER_ID/datasources/$DATASOURCE_ID:push" \
-H 'accept: application/json' \
-H 'authorization: Bearer '$API_KEY \
--compressed --data-binary @payload.jsonIdentity sources with users, groups, domains, and app assignments
hris
HR systems with employees, managers, and organizational groups
custom_template
string
Yes
Template type: application, identity_provider, or hris.
external_lifecycle_management_type
string
No
Enable lifecycle management: SCIM (standard SCIM 2.0 protocol) or SEND_REST_PAYLOAD (custom REST calls via Insight Point). Only for application template.
provisioning
boolean
No
Set to true to use as system of record for Lifecycle Management. Primarily for hris template.
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.
Creates a custom provider and returns the provider ID.
Lists all configured custom providers.
Returns details for an individual custom provider.
Delete a custom provider by ID.
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
Register a new datasource for a custom provider. There can be more than one datasource for a single provider.
Returns details for a single datasource.
Unbind a datasource from a custom provider, and delete it.
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.
For large payloads that exceed 100 MB, use the multipart upload endpoint to upload the payload in chunks. See for details, examples, and Python SDK usage.
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.
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).
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:
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:
Upload a custom icon to display for an OAA provider.
Return the type and string-encoded icon for a custom provider.
Delete the icon associated with an OAA provider.
POST /api/v1/providers/custom/{id}/datasources/{data_source_id}:parts{
"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.b64payload = {"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=="}'Veza API key for authentication. Generate keys in Administration > API Keys.
Must be unique within an insight point
Provider type: "azure_key_vault", "aws_secrets_manager", etc.
Owning insight point ID, or "internal" for control plane vaults
Soft-deleted flag for external vaults; restored by re-registering (internal vaults are hard-deleted)
For external OAA, how to manage lifecycle management requests
OK
Unique identifier for the provider instance.
External identifier for the provider, typically set by the integration that created it.
Display name of the provider.
The OAA template type used to create this provider (e.g., "application", "idp").
List of OAA template types associated with this provider instance (e.g., "application", "idp", "hris").
Current provider state.
Application type classifications for this provider.
Deprecated. Resource type classifications. Use application_types, idp_types, hris_types, or file_system_types instead.
Identity provider type classifications (if this provider represents an IdP).
File system type classifications (if this provider represents a file system).
HRIS system type classifications (if this provider represents an HR system).
Principal (identity) type classifications for this provider.
Whether provisioning (write-back) operations are enabled for this provider.
JSON string containing the provider's connection configuration parameters.
Identifier of the data plane that runs this provider's extraction. Empty for cloud-hosted extraction.
Current lifecycle management state for this provider (enum). Indicates whether provisioning and deprovisioning workflows are active.
Identifier of the team that owns this provider instance.
Must be unique within an insight point
Provider type: "azure_key_vault", "aws_secrets_manager", etc.
Owning insight point ID, or "internal" for control plane vaults
Soft-deleted flag for external vaults; restored by re-registering (internal vaults are hard-deleted)
For external OAA, how to manage lifecycle management requests
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
POST /api/v1/providers/custom HTTP/1.1
Host: your-tenant.vezacloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1934
{
"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,
"is_required": true
}
],
"application": {
"application_name": "text",
"application_type": "text",
"identity": [
"text"
],
"resource_type": "text",
"okta_app_id": "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"
}
],
"property_match_operator": 1
}
],
"use_email": true
},
"hris_provisioning_source": true
},
"cmdb": {
"cmdb_instance_name": "text",
"cmdb_instance_type": "text",
"csc_global_config": {
"owner_id_column_name": "text",
"asset_id_column_name": "text",
"asset_type_column_name": "text",
"owner_node_type": "text",
"owner_id_property": "text",
"asset_connections": [
{
"asset_type_value": "text",
"asset_node_type": "text",
"asset_property_name": "text"
}
]
}
}
},
"secret_references": [
{
"secret_id": "text",
"secret_mapping": {
"type": 1,
"mapping": "text"
},
"vault_id": "text"
}
],
"external_lifecycle_management_type": 1,
"notification_preferences": {
"enabled": true,
"subscribed_events": [
1
],
"notify_integration_owner": true,
"additional_recipients": [
"text"
],
"delivery_methods": [
{
"type": 1,
"id": "text"
}
]
}
}{
"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"
],
"secret_store_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,
"is_required": true
}
],
"application": {
"application_name": "text",
"application_type": "text",
"identity": [
"text"
],
"resource_type": "text",
"okta_app_id": "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"
}
],
"property_match_operator": 1
}
],
"use_email": true
},
"hris_provisioning_source": true
},
"cmdb": {
"cmdb_instance_name": "text",
"cmdb_instance_type": "text",
"csc_global_config": {
"owner_id_column_name": "text",
"asset_id_column_name": "text",
"asset_type_column_name": "text",
"owner_node_type": "text",
"owner_id_property": "text",
"asset_connections": [
{
"asset_type_value": "text",
"asset_node_type": "text",
"asset_property_name": "text"
}
]
}
}
},
"secret_references": [
{
"id": "text",
"secret_id": "text",
"secret_mapping": {
"type": 1,
"mapping": "text"
},
"vault_id": "text",
"vault": {
"id": "text",
"name": "text",
"vault_provider": "text",
"insight_point_id": "text",
"deleted": true
}
}
],
"external_lifecycle_management_type": 1,
"cmdb_types": [
"text"
],
"notification_preferences": {
"enabled": true,
"subscribed_events": [
1
],
"notify_integration_owner": true,
"additional_recipients": [
"text"
],
"delivery_methods": [
{
"type": 1,
"id": "text"
}
]
}
}
}Retrieve all custom (OAA) providers configured in the tenant. Custom providers represent integrations built using the Open Authorization API (OAA), including both Veza-managed connectors and customer-built integrations. Use the filter parameter to narrow results by name, state, or custom_template (e.g., filter=name eq "My App"). Set page_size to control results per page (default varies), and use page_token from the response to retrieve subsequent pages.
Veza API key for authentication. Generate keys in Administration > API Keys.
The maximum number of results to be returned. Fewer results may be returned even when more pages exist.
The token specifying the specific page of results to retrieve.
OK
Paginated list of custom (OAA) providers.
Unique identifier for the provider instance.
External identifier for the provider, typically set by the integration that created it.
Display name of the provider.
The OAA template type used to create this provider (e.g., "application", "idp").
List of OAA template types associated with this provider instance (e.g., "application", "idp", "hris").
Current provider state.
Application type classifications for this provider.
Deprecated. Resource type classifications. Use application_types, idp_types, hris_types, or file_system_types instead.
Identity provider type classifications (if this provider represents an IdP).
File system type classifications (if this provider represents a file system).
HRIS system type classifications (if this provider represents an HR system).
Principal (identity) type classifications for this provider.
Whether provisioning (write-back) operations are enabled for this provider.
JSON string containing the provider's connection configuration parameters.
Identifier of the data plane that runs this provider's extraction. Empty for cloud-hosted extraction.
Current lifecycle management state for this provider (enum). Indicates whether provisioning and deprovisioning workflows are active.
Identifier of the team that owns this provider instance.
Must be unique within an insight point
Provider type: "azure_key_vault", "aws_secrets_manager", etc.
Owning insight point ID, or "internal" for control plane vaults
Soft-deleted flag for external vaults; restored by re-registering (internal vaults are hard-deleted)
For external OAA, how to manage lifecycle management requests
Token to retrieve the next page of results. Empty when no more pages exist.
If true, additional pages of results are available.
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
GET /api/v1/providers/custom HTTP/1.1
Host: your-tenant.vezacloud.com
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"
],
"secret_store_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,
"is_required": true
}
],
"application": {
"application_name": "text",
"application_type": "text",
"identity": [
"text"
],
"resource_type": "text",
"okta_app_id": "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"
}
],
"property_match_operator": 1
}
],
"use_email": true
},
"hris_provisioning_source": true
},
"cmdb": {
"cmdb_instance_name": "text",
"cmdb_instance_type": "text",
"csc_global_config": {
"owner_id_column_name": "text",
"asset_id_column_name": "text",
"asset_type_column_name": "text",
"owner_node_type": "text",
"owner_id_property": "text",
"asset_connections": [
{
"asset_type_value": "text",
"asset_node_type": "text",
"asset_property_name": "text"
}
]
}
}
},
"secret_references": [
{
"id": "text",
"secret_id": "text",
"secret_mapping": {
"type": 1,
"mapping": "text"
},
"vault_id": "text",
"vault": {
"id": "text",
"name": "text",
"vault_provider": "text",
"insight_point_id": "text",
"deleted": true
}
}
],
"external_lifecycle_management_type": 1,
"cmdb_types": [
"text"
],
"notification_preferences": {
"enabled": true,
"subscribed_events": [
1
],
"notify_integration_owner": true,
"additional_recipients": [
"text"
],
"delivery_methods": [
{
"type": 1,
"id": "text"
}
]
}
}
],
"next_page_token": "text",
"has_more": true
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Unique identifier for the provider instance.
External identifier for the provider, typically set by the integration that created it.
Display name of the provider.
The OAA template type used to create this provider (e.g., "application", "idp").
List of OAA template types associated with this provider instance (e.g., "application", "idp", "hris").
Current provider state.
Application type classifications for this provider.
Deprecated. Resource type classifications. Use application_types, idp_types, hris_types, or file_system_types instead.
Identity provider type classifications (if this provider represents an IdP).
File system type classifications (if this provider represents a file system).
HRIS system type classifications (if this provider represents an HR system).
Principal (identity) type classifications for this provider.
Whether provisioning (write-back) operations are enabled for this provider.
JSON string containing the provider's connection configuration parameters.
Identifier of the data plane that runs this provider's extraction. Empty for cloud-hosted extraction.
Current lifecycle management state for this provider (enum). Indicates whether provisioning and deprovisioning workflows are active.
Identifier of the team that owns this provider instance.
Must be unique within an insight point
Provider type: "azure_key_vault", "aws_secrets_manager", etc.
Owning insight point ID, or "internal" for control plane vaults
Soft-deleted flag for external vaults; restored by re-registering (internal vaults are hard-deleted)
For external OAA, how to manage lifecycle management requests
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
GET /api/v1/providers/custom/{id} HTTP/1.1
Host: your-tenant.vezacloud.com
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"
],
"secret_store_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,
"is_required": true
}
],
"application": {
"application_name": "text",
"application_type": "text",
"identity": [
"text"
],
"resource_type": "text",
"okta_app_id": "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"
}
],
"property_match_operator": 1
}
],
"use_email": true
},
"hris_provisioning_source": true
},
"cmdb": {
"cmdb_instance_name": "text",
"cmdb_instance_type": "text",
"csc_global_config": {
"owner_id_column_name": "text",
"asset_id_column_name": "text",
"asset_type_column_name": "text",
"owner_node_type": "text",
"owner_id_property": "text",
"asset_connections": [
{
"asset_type_value": "text",
"asset_node_type": "text",
"asset_property_name": "text"
}
]
}
}
},
"secret_references": [
{
"id": "text",
"secret_id": "text",
"secret_mapping": {
"type": 1,
"mapping": "text"
},
"vault_id": "text",
"vault": {
"id": "text",
"name": "text",
"vault_provider": "text",
"insight_point_id": "text",
"deleted": true
}
}
],
"external_lifecycle_management_type": 1,
"cmdb_types": [
"text"
],
"notification_preferences": {
"enabled": true,
"subscribed_events": [
1
],
"notify_integration_owner": true,
"additional_recipients": [
"text"
],
"delivery_methods": [
{
"type": 1,
"id": "text"
}
]
}
}
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
DELETE /api/v1/providers/custom/{id} HTTP/1.1
Host: your-tenant.vezacloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{}Veza API key for authentication. Generate keys in Administration > API Keys.
The maximum number of results to be returned. Fewer results may be returned even when more pages exist.
The token specifying the specific page of results to retrieve.
OK
The pagination token to retrieve the next page of results.
If true, more results are available.
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
GET /api/v1/providers/custom/{id}/datasources HTTP/1.1
Host: your-tenant.vezacloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"values": [
{}
],
"next_page_token": "text",
"has_more": true
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
POST /api/v1/providers/custom/{id}/datasources HTTP/1.1
Host: your-tenant.vezacloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 52
{
"id": "text",
"name": "text",
"custom_template": "text"
}{
"value": {
"id": "text",
"name": "text"
}
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
GET /api/v1/providers/custom/{id}/datasources/{data_source_id} HTTP/1.1
Host: your-tenant.vezacloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"value": {}
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
DELETE /api/v1/providers/custom/{id}/datasources/{data_source_id} HTTP/1.1
Host: your-tenant.vezacloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
POST /api/v1/providers/custom/{id}/datasources/{data_source_id}:push HTTP/1.1
Host: your-tenant.vezacloud.com
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
}{
"warnings": [
{
"message": "text"
}
]
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
POST /api/v1/providers/custom/{id}/datasources/{data_source_id}:push_csv HTTP/1.1
Host: your-tenant.vezacloud.com
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
}{
"warnings": [
{
"message": "text"
}
]
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
POST /api/v1/providers/custom/{id}/datasources/{data_source_id}:push HTTP/1.1
Host: your-tenant.vezacloud.com
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
}{
"warnings": [
{
"message": "text"
}
]
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
POST /api/v1/providers/custom/{id}/datasources/{data_source_id}:push_csv HTTP/1.1
Host: your-tenant.vezacloud.com
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
}{
"warnings": [
{
"message": "text"
}
]
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
POST /api/v1/providers/custom/{id}:icon HTTP/1.1
Host: your-tenant.vezacloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 34
{
"id": "text",
"icon_base64": "text"
}{}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
GET /api/v1/providers/custom/{id}:icon HTTP/1.1
Host: your-tenant.vezacloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"mime_type": "text",
"icon_base64": "text"
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
GET /api/v1/providers/custom:icon HTTP/1.1
Host: your-tenant.vezacloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"mime_type": "text",
"icon_base64": "text",
"provider_id": "text"
}Veza API key for authentication. Generate keys in Administration > API Keys.
OK
Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
The type of the serialized message.
DELETE /api/v1/providers/custom/{id}:icon HTTP/1.1
Host: your-tenant.vezacloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{}