openapi: 3.2.0 info: contact: {} description: "Create and manage data profiles that define collections of data patterns for incident detection. Organize \nmultiple data patterns into logical profiles for comprehensive data protection strategies.\n" license: name: MIT url: https://opensource.org/license/mit title: v2 Data Profiles API version: 1.0.0 servers: - url: https://api.dlp.paloaltonetworks.com tags: - name: Data Profiles paths: /v2/api/data-profiles: get: description: Returns a paginated list of data profiles for the authenticated tenant. operationId: get-v2-api-data-profiles parameters: - description: Zero-based page index (0..N) in: query name: page required: false schema: default: 0 minimum: 0 type: integer - description: The size of the page to be returned in: query name: size required: false schema: default: 20 minimum: 1 type: integer - description: 'Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.' in: query name: sort required: false schema: items: type: string type: array responses: '200': content: application/json: schema: $ref: '#/components/schemas/PageDataProfileResponse' description: Paginated list of data profiles '401': description: Unauthorized '403': description: Forbidden - insufficient privileges security: - Bearer: [] summary: List Data Profiles tags: - Data Profiles post: description: Creates a new data profile for the authenticated tenant. operationId: post-v2-api-data-profiles requestBody: content: application/json: schema: $ref: '#/components/schemas/AdvancedDataProfileRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/DataProfileResponse' description: Data profile created '400': description: Invalid request payload '401': description: Unauthorized '403': description: Forbidden - insufficient privileges security: - Bearer: [] summary: Create Data Profile tags: - Data Profiles /v2/api/data-profiles/{resourceId}: get: description: Retrieves a single data profile by its ID. operationId: get-v2-api-data-profiles-resourceid parameters: - in: path name: resourceId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/DataProfileResponse' description: Data profile found '401': description: Unauthorized '403': description: Forbidden - insufficient privileges '404': description: Data profile not found security: - Bearer: [] summary: Get Data Profile tags: - Data Profiles patch: description: Partially updates an existing data profile using JSON Merge Patch semantics. operationId: patch-v2-api-data-profiles-resourceid parameters: - in: path name: resourceId required: true schema: type: string requestBody: content: application/merge-patch+json: schema: $ref: '#/components/schemas/DataProfilePatchRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/DataProfileResponse' description: Data profile updated '400': description: Invalid patch payload '401': description: Unauthorized '403': description: Forbidden - insufficient privileges '404': description: Data profile not found security: - Bearer: [] summary: Patch Data Profile tags: - Data Profiles put: description: Fully replaces an existing data profile with the provided payload. operationId: put-v2-api-data-profiles-resourceid parameters: - in: path name: resourceId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AdvancedDataProfileRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/DataProfileResponse' description: Data profile updated '400': description: Invalid request payload '401': description: Unauthorized '403': description: Forbidden - insufficient privileges '404': description: Data profile not found security: - Bearer: [] summary: Update Data Profile tags: - Data Profiles components: schemas: DataProfilePatchRequest: description: Request payload for partially updating a data profile (JSON Merge Patch) properties: description: $ref: '#/components/schemas/JsonNullableString' detection_rules: $ref: '#/components/schemas/JsonNullableListDetectionRule' name: $ref: '#/components/schemas/JsonNullableString' profile_type: $ref: '#/components/schemas/JsonNullableDataProfileType' required: - name - profile_type type: object ExpressionTreeNode: properties: operator_type: enum: - and - or - not - and_not - or_not type: string rule_item: oneOf: - $ref: '#/components/schemas/DataPatternRuleItem' - $ref: '#/components/schemas/DictionaryRuleItem' - $ref: '#/components/schemas/DocumentTypeRuleItem' - $ref: '#/components/schemas/EdmRuleItem' sub_expressions: items: $ref: '#/components/schemas/ExpressionTreeNode' type: array type: object AdvancedDataProfileRequest: description: Advanced data profile request. Use profile_type='advanced'. properties: description: description: Optional human-readable description type: string detection_rules: description: Detection rules (at least one required) items: oneOf: - $ref: '#/components/schemas/DefaultTreeDetectionRule' - $ref: '#/components/schemas/MultiProfileDetectionRule' type: array is_granular_data_profile: description: Whether this is a granular data profile type: boolean name: description: Display name maxLength: 64 minLength: 1 type: string required: - detection_rules - name type: object EdmRuleItem: allOf: - $ref: '#/components/schemas/DetectionRuleItem' - properties: confidence_level: enum: - low - medium - high type: string detection_technique: enum: - edm - document_fingerprint - trainable_classifier - ml_document - regex - weighted_regex - ml - titus_tag - wildfire - file_property - dictionary - pab - document_classifier type: string edm_dataset_id: type: string occurrence_count: format: int32 type: integer occurrence_high: format: int32 type: integer occurrence_low: format: int32 type: integer occurrence_operator_type: enum: - any - less_than_equal_to - more_than_equal_to - between type: string primary_fields: items: type: string type: array uniqueItems: true primary_match_any_count: format: int32 type: integer primary_match_criteria: enum: - any - all type: string secondary_fields: items: type: string type: array uniqueItems: true secondary_match_any_count: format: int32 type: integer secondary_match_criteria: enum: - any - all type: string type: object required: - edm_dataset_id - primary_fields type: object PageableObject: properties: offset: format: int64 type: integer pageNumber: format: int32 type: integer pageSize: format: int32 type: integer paged: type: boolean sort: $ref: '#/components/schemas/SortObject' unpaged: type: boolean type: object DataProfileResponse: description: Data profile resource returned by the API properties: advance_data_patterns_rule_request: description: List of advanced data pattern rule identifiers items: description: List of advanced data pattern rule identifiers type: string type: array audit_metadata: $ref: '#/components/schemas/AuditResponse' description: description: Optional human-readable description type: string detection_rules: description: Detection rules that define sensitive data criteria items: oneOf: - $ref: '#/components/schemas/DefaultTreeDetectionRule' - $ref: '#/components/schemas/MultiProfileDetectionRule' type: array id: description: Unique identifier of the data profile type: string is_granular_data_profile: description: Whether this is a granular profile type: boolean is_parent_managed: description: Whether the profile is managed by a parent tenant type: boolean name: description: Display name of the data profile type: string profile_status: description: Current lifecycle status enum: - active - disabled - deleted type: string profile_type: description: Profile type enum: - basic - advanced type: string tenant_id: description: Tenant identifier that owns this profile type: string type: description: Profile subtype classification enum: - custom - predefined type: string version: description: Version number, incremented on each update format: int32 type: integer type: object SortObject: properties: empty: type: boolean sorted: type: boolean unsorted: type: boolean type: object JsonNullableListDetectionRule: description: New detection rules properties: present: type: boolean undefined: type: boolean type: object JsonNullableString: description: New description (set to null to clear) properties: present: type: boolean undefined: type: boolean type: object DefaultTreeDetectionRule: allOf: - $ref: '#/components/schemas/DetectionRule' - properties: expression_tree: $ref: '#/components/schemas/ExpressionTreeNode' rule_type: enum: - expression_tree - multi_profile type: string type: object type: object MultiProfileDetectionRule: allOf: - $ref: '#/components/schemas/DetectionRule' - properties: multi_profile: $ref: '#/components/schemas/MultiProfileDataNode' rule_type: enum: - expression_tree - multi_profile type: string type: object type: object MultiProfileDataNode: properties: data_profile_ids: items: format: int64 type: integer type: array operator_type: enum: - and - or - not - and_not - or_not type: string type: object DataPatternRuleItem: allOf: - $ref: '#/components/schemas/DetectionRuleItem' - properties: by_unique_count: type: boolean confidence_level: enum: - low - medium - high type: string description: type: string detection_technique: enum: - edm - document_fingerprint - trainable_classifier - ml_document - regex - weighted_regex - ml - titus_tag - wildfire - file_property - dictionary - pab - document_classifier type: string match_type: enum: - include - exclude type: string occurrence_count: format: int32 type: integer occurrence_high: format: int32 type: integer occurrence_low: format: int32 type: integer occurrence_operator_type: enum: - any - less_than_equal_to - more_than_equal_to - between type: string supported_confidence_levels: items: enum: - low - medium - high type: string type: array type: object discriminator: propertyName: detection_technique required: - match_type type: object DetectionRule: description: Detection rules that define sensitive data criteria discriminator: propertyName: rule_type properties: detectionRuleType: enum: - expression_tree - multi_profile type: string rule_type: type: string required: - rule_type type: object DetectionRuleItem: discriminator: propertyName: detection_technique properties: byUniqueCount: type: boolean confidenceLevel: enum: - low - medium - high type: string detectionTechnique: enum: - edm - document_fingerprint - trainable_classifier - ml_document - regex - weighted_regex - ml - titus_tag - wildfire - file_property - dictionary - pab - document_classifier type: string detection_technique: type: string id: type: string matchType: enum: - include - exclude type: string name: type: string occurrenceCount: format: int32 type: integer occurrenceHigh: format: int32 type: integer occurrenceLow: format: int32 type: integer occurrenceOperatorType: enum: - any - less_than_equal_to - more_than_equal_to - between type: string version: format: int32 type: integer required: - detection_technique type: object DocumentTypeRuleItem: allOf: - $ref: '#/components/schemas/DetectionRuleItem' - properties: confidence_level: enum: - low - medium - high type: string description: type: string detection_technique: enum: - edm - document_fingerprint - trainable_classifier - ml_document - regex - weighted_regex - ml - titus_tag - wildfire - file_property - dictionary - pab - document_classifier type: string match_type: enum: - include - exclude type: string occurrence_count: format: int32 type: integer occurrence_high: format: int32 type: integer occurrence_low: format: int32 type: integer occurrence_operator_type: enum: - any - less_than_equal_to - more_than_equal_to - between type: string score: format: int32 type: integer score_high: format: int32 type: integer score_low: format: int32 type: integer supported_confidence_levels: items: enum: - low - medium - high type: string type: array type: object discriminator: propertyName: detection_technique required: - match_type type: object JsonNullableDataProfileType: description: New profile type properties: present: type: boolean undefined: type: boolean type: object AuditResponse: description: Audit metadata tracking creation and last-update information properties: created_at: description: Timestamp when the resource was created format: date-time type: string created_by: description: Username or service that created the resource type: string updated_at: description: Timestamp when the resource was last updated format: date-time type: string updated_by: description: Username or service that last updated the resource type: string type: object DictionaryRuleItem: allOf: - $ref: '#/components/schemas/DetectionRuleItem' - properties: by_unique_count: type: boolean confidence_level: enum: - low - medium - high type: string description: type: string detection_technique: enum: - edm - document_fingerprint - trainable_classifier - ml_document - regex - weighted_regex - ml - titus_tag - wildfire - file_property - dictionary - pab - document_classifier type: string match_type: enum: - include - exclude type: string occurrence_count: format: int32 type: integer occurrence_high: format: int32 type: integer occurrence_low: format: int32 type: integer occurrence_operator_type: enum: - any - less_than_equal_to - more_than_equal_to - between type: string score: format: int32 type: integer score_high: format: int32 type: integer score_low: format: int32 type: integer supported_confidence_levels: items: enum: - low - medium - high type: string type: array type: object discriminator: propertyName: detection_technique required: - match_type type: object PageDataProfileResponse: properties: content: items: $ref: '#/components/schemas/DataProfileResponse' type: array empty: type: boolean first: type: boolean last: type: boolean number: format: int32 type: integer numberOfElements: format: int32 type: integer pageable: $ref: '#/components/schemas/PageableObject' size: format: int32 type: integer sort: $ref: '#/components/schemas/SortObject' totalElements: format: int64 type: integer totalPages: format: int32 type: integer type: object securitySchemes: Bearer: scheme: bearer type: http