VocalDocscontracts 1.65.0

Change the Organization's Compliance profile

PATCH /v1/compliance-profile

PropertyValue
Operationupdate_compliance_profile
GroupCompliance profile
Scopecompliance:write
Route classcontrol
IdempotencyNo Idempotency-Key
AuditAudited compliance_profile.update (mutation)
Released in1.32.0
Phase 0 hostServed (the hosted api pins 1.65.0)

Writes the next version of the Compliance profile at the version If-Match names and the Audit event compliance_profile.update with the values before and after, in one transaction (1.32.0, workspace ADR 0082). Session only: the api refuses the route to every API key, whatever its scopes, and to a Member who is not an owner, with 403 forbidden and the detail owner_required; only the owner holds compliance:write. A provider_regions value outside the cell's own set is refused with validation_failed and the issue region_not_in_cell. The change applies from the next Call: a Call in progress keeps the version it was admitted with. A change that leaves a published Agent version unable to run is accepted, and admission then refuses that version's Calls (provider_not_allowed).

Request

Set VOCAL_API to the base URL of your API and VOCAL_API_KEY to an API key with the compliance:write scope (Authentication and keys). Replace each placeholder, such as agt_... or <name>, with your own value.

curl -X PATCH "$VOCAL_API/v1/compliance-profile" \
  -H "Authorization: Bearer $VOCAL_API_KEY" \
  -H 'If-Match: "1"' \
  -H "Content-Type: application/json" \
  -d '{}'

Parameters

NameInTypeRequiredDescription
if-matchheaderstringyesThe revision the change was made against, quoted as the ETag returns it, or * to overwrite.

Request body

Content type application/json, required: ComplianceProfileUpdateRequest.

FieldTypeRequiredDescription
byok_platform_fallbackByokPlatformFallbacknoWhether a stage on the Organization's own key may fall back to Vocal's; forbidden by default.
contact_inactivity_daysintegernoDays without a Call, a message, an enrollment or an API write after which a Contact is deleted by the daily retention.scrub job (1.61.0): 30 to 365, 365 by default (targets).
content_visibilityContentVisibilityInputnoThe visibility matrix of the content classes by role (1.57.0), checked at read time against the profile in force.
export_contentExportContentnoWhether an S3 export may carry content (1.57.0, not built); off by default.
live_call_judgingLiveCallJudgingnoWhether live Calls may be judged (1.63.0); off by default.
live_call_judging_sample_ratenumbernoThe share of eligible Calls a judge reads while live_call_judging is on (1.63.0): 0.01 to 1, 0.1 by default (a target), drawn at finalize.
provider_regionsarray of ProviderRegionnoThe regions where the Organization's Providers may process, one to as many as ProviderRegion holds (four from 1.38.0, three before), each once; us by default. Admission and publish apply the intersection with the cell's own set, and a Provider whose descriptor names a region outside it is dropped from every chain (region_not_allowed). A region outside the cell's set is refused with validation_failed and the issue region_not_in_cell.
recording_policyRecordingPolicynoThe recording policy; on_with_announcement by default.
require_baabooleannoWhen true, the chain resolver drops every Provider whose descriptor baa_available is neither yes nor not_applicable (baa_not_stated). Every real descriptor of 1.32.0 reads unknown, so an Organization that sets it runs only mock Providers, in test. False by default.
reveal_approvalRevealApprovalnoWhether a reveal grant needs a second approver (1.57.0); none by default.
revocation_scopeRevocationScopenoHow far an opt-out reaches (1.61.0): all_channels (the default) or per_channel. per_channel needs revocation_scope_attestation.
revocation_scope_attestationtruenoThe owner's attestation that per-channel revocation fits the Organization's obligations (1.61.0), required with revocation_scope: per_channel (revocation_scope_attestation_required) and recorded in the Audit event.
trace_retention_daysinteger or nullnoShortens the retention of stage traces below the Call row's (1.57.0): 1 day up to the platform ceiling, or null, the default, to keep them with the Call row. The api refuses a value above the ceiling with the issue trace_retention_above_ceiling.
verbose_captureVerboseCapturenoWhere verbose capture may run (1.57.0); allowed by default.

Responses

StatusContent typeShapeError codes
200application/jsonComplianceProfile
400application/jsonErrorEnvelopeinvalid_request
401application/jsonErrorEnvelopeunauthenticated
403application/jsonErrorEnvelopeforbidden, org_suspended
412application/jsonErrorEnveloperevision_mismatch
422application/jsonErrorEnvelopevalidation_failed
428application/jsonErrorEnvelopeprecondition_required
429application/jsonErrorEnveloperate_limited
500application/jsonErrorEnvelopeinternal_error

Fields of the 200 answer

The shape is ComplianceProfile.

FieldTypeRequiredDescription
byok_platform_fallbackByokPlatformFallbackyesWhether a stage on the Organization's own key may fall back to Vocal's; forbidden by default.
contact_inactivity_daysintegernoDays without a Call, a message, an enrollment or an API write after which a Contact is deleted by the daily retention.scrub job (1.61.0): 30 to 365, 365 by default (targets). Absent, from an api before 1.61.0, 365.
content_visibilityContentVisibilitynoThe visibility matrix of the content classes by role (1.57.0), checked at read time against the profile in force. Absent from an api older than 1.57.0; a reader treats its absence as the default.
export_contentExportContentnoWhether an S3 export may carry content (1.57.0, not built); off by default. Absent from an api older than 1.57.0; a reader treats its absence as the default.
live_call_judgingLiveCallJudgingnoWhether live Calls may be judged (1.63.0); off by default. Absent from an api before 1.63.0, which a reader treats as the default.
live_call_judging_sample_ratenumbernoThe share of eligible Calls a judge reads while live_call_judging is on (1.63.0): 0.01 to 1, 0.1 by default (a target), drawn at finalize. Absent from an api before 1.63.0, which a reader treats as the default.
object"compliance_profile"yes
provider_regionsarray of ProviderRegionyesThe regions where the Organization's Providers may process, one to as many as ProviderRegion holds (four from 1.38.0, three before), each once; us by default. Admission and publish apply the intersection with the cell's own set, and a Provider whose descriptor names a region outside it is dropped from every chain (region_not_allowed).
recording_policyRecordingPolicyyesThe recording policy; on_with_announcement by default.
require_baabooleanyesWhen true, the chain resolver drops every Provider whose descriptor baa_available is neither yes nor not_applicable (baa_not_stated). Every real descriptor of 1.32.0 reads unknown, so an Organization that sets it runs only mock Providers, in test. False by default.
reveal_approvalRevealApprovalnoWhether a reveal grant needs a second approver (1.57.0); none by default. Absent from an api older than 1.57.0; a reader treats its absence as the default.
revocation_scopeRevocationScopenoHow far an opt-out reaches (1.61.0): all_channels (the default) or per_channel. Absent, from an api before 1.61.0, all_channels.
trace_retention_daysinteger or nullnoShortens the retention of stage traces below the Call row's (1.57.0): 1 day up to the platform ceiling, or null, the default, to keep them with the Call row. The api refuses a value above the ceiling with the issue trace_retention_above_ceiling. Absent from an api older than 1.57.0; a reader treats its absence as the default.
updated_atTimestamp or nullyesWhen the version was written; null for version 0.
updated_byActorRef or nullyesThe Member who wrote the version, always an owner; null for version 0.
verbose_captureVerboseCapturenoWhere verbose capture may run (1.57.0); allowed by default. Absent from an api older than 1.57.0; a reader treats its absence as the default.
versionintegeryesThe version in force: 0 for the defaults before the first update, then one more per update. Returned as the ETag and required in the If-Match of PATCH /v1/compliance-profile.