OneTrust · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Consent & Preferences - Universal Consent & Preference…

12 actions 12 updates phrasing extends openapi/onetrust-data-subjects-v4-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for OneTrust's API. It is a proposal applied on top of the contract, not a document OneTrust publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 12

$.info
$.paths['/rest/api/consent/v4/data-subjects'].delete
$.paths['/rest/api/consent/v4/data-subjects/profiles'].delete
$.paths['/rest/api/consent/v4/datasubjects'].get
$.paths['/rest/api/consent/v4/datasubjects/basic-details'].get
$.paths['/rest/api/consent/v4/datasubjects/details'].get
$.paths['/rest/api/consent/v4/datasubjects/ds-profiles'].get
$.paths['/rest/api/consent/v4/datasubjects/profiles'].get
$.paths['/rest/api/consent/v4/datasubjects/profiles/unordered'].get
$.paths['/rest/api/consent/v4/datasubjects/profiles/{purposeGuid}'].get
$.paths['/rest/api/consent/v4/datasubjects/search-by-element'].post
$.paths['/rest/api/consent/v4/datasubjects/unordered'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Consent & Preferences - Universal Consent & Preference…
  version: 1.0.0
extends: openapi/onetrust-data-subjects-v4-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-02'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 11
- target: $.paths['/rest/api/consent/v4/data-subjects'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a data subject
      effect: destructive
      questions:
      - Can I delete a data subject's consent profile entirely?
      - Is it possible to keep consent receipts when a data subject is deleted?
      instructions:
      - text: Delete data subject {identifier}.
        slots:
          identifier: requestBody.identifier
      - text: 'Delete data subject {identifier}, retaining receipts: {retainReceipts}.'
        slots:
          identifier: requestBody.identifier
          retainReceipts: requestBody.retainReceipts
      method: generated
      generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/data-subjects/profiles'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove purposes from a data subject
      effect: destructive
      questions:
      - Can I remove just certain purposes from a data subject without deleting them?
      - Which purposes can be wiped from a consent profile?
      instructions:
      - text: Remove purposes {purposes} from data subject {identifier}.
        slots:
          purposes: requestBody.purposes
          identifier: requestBody.identifier
      - text: Delete the purpose records {purposes} for {identifier}.
        slots:
          purposes: requestBody.purposes
          identifier: requestBody.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects'].get
  update:
    x-apievangelist-phrasing:
      intent: List data subjects updated in a date range
      effect: read
      questions:
      - Which data subjects were updated between two dates?
      - Can I include do-not-call records when listing data subjects?
      instructions:
      - text: List data subjects updated from {fromDate} to {toDate}.
        slots:
          fromDate: query.fromDate
          toDate: query.toDate
      - text: Show sorted data subjects changed between {fromDate} and {toDate}, sorted by {sort}.
        slots:
          fromDate: query.fromDate
          toDate: query.toDate
          sort: query.sort
      method: generated
      generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/basic-details'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a data subject's basic details
      effect: read
      questions:
      - Can I get only a data subject's basic details, such as when it was created and last transacted?
      - Can I get just the basic details and data elements for one data subject?
      instructions:
      - text: Get basic details for data subject {identifier}.
        slots:
          identifier: header.identifier
      - text: Show the created date and data elements of {identifier}.
        slots:
          identifier: header.identifier
      method: generated
      generated: '2026-10-02'
- target: $.paths['/rest/api/consent/v4/datasubjects/details'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a data subject's full consent details
      effect: read
      questions:
      - Can I see everything about a data subject, including purposes and email link tokens?
      - Does the full data subject view include consent strings and attachments?
      instructions:
      - text: Get complete details for data subject {identifier}.
        slots:
          identifier: header.identifier
      - text: Fetch full details of {identifier} including consent groups {includeConsentGroups}.
        slots:
          identifier: header.identifier
          includeConsentGroups: query.includeConsentGroups
      method: generated
      generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/ds-profiles'].get
  update:
    x-apievangelist-phrasing:
      intent: List all purposes for one data subject
      effect: read
      questions:
      - Which purposes has a given person interacted with, and what is each status?
      - Can I page through every purpose record for one data subject?
      instructions:
      - text: List all purpose details for data subject {identifier}.
        slots:
          identifier: header.identifier
      - text: Show every purpose status recorded for {identifier}.
        slots:
          identifier: header.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/profiles'].get
  update:
    x-apievangelist-phrasing:
      intent: List purpose details across all data subjects
      effect: read
      questions:
      - What is the maximum date range for pulling purpose details across all data subjects?
      - Can I filter everyone's purpose records by collection point or status?
      instructions:
      - text: List purpose details for all data subjects updated between {updatedSince} and {updatedUntil}.
        slots:
          updatedSince: query.updatedSince
          updatedUntil: query.updatedUntil
      - text: Show sorted purpose records for purpose {purposeId} changed from {updatedSince} to {updatedUntil}.
        slots:
          purposeId: query.purposeId
          updatedSince: query.updatedSince
          updatedUntil: query.updatedUntil
      method: generated
      generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/profiles/unordered'].get
  update:
    x-apievangelist-phrasing:
      intent: Bulk-pull unordered purpose details
      effect: read
      questions:
      - Is there a faster, unsorted way to export purpose details for all data subjects?
      - Can I get an optimized unordered feed of purpose changes by status?
      instructions:
      - text: Pull the unordered purpose feed from {updatedSince} to {updatedUntil}.
        slots:
          updatedSince: query.updatedSince
          updatedUntil: query.updatedUntil
      - text: Fetch optimized unsorted purpose records with status {status} since {updatedSince} until {updatedUntil}.
        slots:
          status: query.status
          updatedSince: query.updatedSince
          updatedUntil: query.updatedUntil
      method: generated
      generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/profiles/{purposeGuid}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one purpose for a data subject
      effect: read
      questions:
      - What did a person consent to for one specific purpose, and when?
      - Can I check a single purpose's preferences for a data subject?
      instructions:
      - text: Get purpose {purposeGuid} details for data subject {identifier}.
        slots:
          purposeGuid: path.purposeGuid
          identifier: header.identifier
      - text: Show the consent date for {identifier} on purpose {purposeGuid}.
        slots:
          identifier: header.identifier
          purposeGuid: path.purposeGuid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/search-by-element'].post
  update:
    x-apievangelist-phrasing:
      intent: Search data subjects by a data element
      effect: read
      questions:
      - Can I find data subjects by a data element like a phone number or customer ID?
      - Does the data element search support continuation tokens for big result sets?
      instructions:
      - text: Search data subjects where {dataElementName} equals {dataElementValue}.
        slots:
          dataElementName: requestBody.dataElementName
          dataElementValue: requestBody.dataElementValue
      - text: Find the data subject whose data element {dataElementName} is {dataElementValue}.
        slots:
          dataElementName: requestBody.dataElementName
          dataElementValue: requestBody.dataElementValue
      method: generated
      generated: '2026-09-26'
- target: $.paths['/rest/api/consent/v4/datasubjects/unordered'].get
  update:
    x-apievangelist-phrasing:
      intent: Bulk-pull unordered data subjects
      effect: read
      questions:
      - Is there a high-performance unsorted list of data subjects for a date range?
      - Can I skip sorting to export data subjects faster?
      instructions:
      - text: Pull the optimized unsorted data subject list from {fromDate} to {toDate}.
        slots:
          fromDate: query.fromDate
          toDate: query.toDate
      - text: Export unordered data subjects updated since {fromDate} until {toDate}, {size} per page.
        slots:
          fromDate: query.fromDate
          toDate: query.toDate
          size: query.size
      method: generated
      generated: '2026-09-26'