openapi: 3.2.0 info: title: Fenergo Nebula Data Protection Query Legal Hold API description: '**Data Protection Query API**: Data Protection Query API provides endpoints in order to retrieve all related models and their versions. **Data Protection API provides**: The ability to query for Data Protection Regimes.' version: '1.0' servers: - url: /dataprotectionquery security: - Bearer: [] tags: - name: Legal Hold paths: /api/legalholds/entity/{Id}: get: tags: - Legal Hold summary: Get legal hold for a specific entity description: 'Returns the active or expired legal hold record for the given entity (if it exists). Required permissions: Following permissions are required: LegalHoldAccess' operationId: GetLegalHoldById parameters: - name: Id in: path description: Legal Hold ID required: true schema: type: string format: uuid - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '200': description: Success. Legal hold is returned content: application/json: schema: $ref: '#/components/schemas/LegalHoldDtoServiceResponse' '204': description: No Content. No legal hold found for the entity '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '403': description: Forbidden. Legal Hold Access permission is required content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/legalholds/entity/{id}/status: get: tags: - Legal Hold summary: Get legal hold status for a specific entity description: 'Returns the status (Active or Expired) of the legal hold for the given entity (if it exists). Required permissions: At least one of the following permissions is required: LegalHoldAccess, EntityDataAccessAndSearch, EntityGroupManagementAccessAndSearch' operationId: GetLegalHoldStatusById parameters: - name: id in: path description: Legal Hold ID required: true schema: type: string format: uuid - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '200': description: Success. Legal hold status is returned content: application/json: schema: $ref: '#/components/schemas/LegalHoldStatusDtoServiceResponse' '204': description: No Content. No legal hold found for the entity '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '403': description: "Forbidden. DataProtectionAccess, EntityDataAccessAndSearch or\n EntityGroupManagementAccessAndSearch permission is required" content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/legalholds/active: get: tags: - Legal Hold summary: Get all active legal holds for a tenant description: 'Returns all legal hold records with Expiry Date in the future. Required permissions: Following permissions are required: LegalHoldAccess' operationId: GetActiveLegalHolds parameters: - name: paginationToken in: query description: Pagination token for subsequent requests schema: type: string - name: limit in: query description: 'Maximum number of items to return (default: 100, max: 1000)' schema: type: integer format: int32 default: 100 - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '200': description: Success. The list of active legal holds is returned content: application/json: schema: $ref: '#/components/schemas/LegalHoldDtoItemsPageServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '403': description: Forbidden. Legal Hold Access permission is required content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/legalholds/expired: get: tags: - Legal Hold summary: Get all expired legal holds for a tenant description: 'Returns all legal hold records with Expiry Date today or in the past. Required permissions: Following permissions are required: LegalHoldAccess' operationId: GetExpiredLegalHolds parameters: - name: paginationToken in: query description: Pagination token for subsequent requests schema: type: string - name: limit in: query description: 'Maximum number of items to return (default: 100, max: 1000)' schema: type: integer format: int32 default: 100 - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '200': description: Success. The list of expired legal holds is returned content: application/json: schema: $ref: '#/components/schemas/LegalHoldDtoItemsPageServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '403': description: Forbidden. Legal Hold Access permission is required content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT components: schemas: LegalHoldDto: type: object properties: id: type: string format: uuid reasonId: type: string format: uuid reasonName: type: - string - 'null' details: type: - string - 'null' durationMonths: type: integer format: int32 responsibleTeamId: type: string format: uuid startDate: type: string format: date-time expiryDate: type: string format: date-time isActive: type: boolean additionalProperties: false LegalHoldStatusDto: type: object properties: status: type: - string - 'null' additionalProperties: false ValidationErrorModelListServiceResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/ValidationErrorModel' description: The service response DTO messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' description: List of Fenergo.Nebula.Platform.Core.Models.Response.ServiceResponseMessage associated to the service response additionalProperties: false description: Service response data example: data: - propertyName: data errorMessage: Data is required attemptedValue: '' errorCode: NotNullValidator messages: - message: Data is required type: Error errorCode: Error Code LegalHoldStatusDtoServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/LegalHoldStatusDto' description: The service response DTO messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' description: List of Fenergo.Nebula.Platform.Core.Models.Response.ServiceResponseMessage associated to the service response additionalProperties: false description: Service response data LegalHoldDtoServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/LegalHoldDto' description: The service response DTO messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' description: List of Fenergo.Nebula.Platform.Core.Models.Response.ServiceResponseMessage associated to the service response additionalProperties: false description: Service response data LegalHoldDtoItemsPageServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/LegalHoldDtoItemsPage' description: Query Result Page messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' description: List of Fenergo.Nebula.Platform.Core.Models.Response.ServiceResponseMessage associated to the service response additionalProperties: false description: Service response data ValidationErrorModel: type: object properties: propertyName: type: - string - 'null' description: Name of the property example: data errorMessage: type: - string - 'null' description: User friendly error message example: Data is required attemptedValue: description: Invalid value errorCode: type: - string - 'null' description: Internal error code example: NotNullValidator additionalProperties: false description: Represents the details of validation error ProblemDetails: type: object properties: type: type: - string - 'null' title: type: - string - 'null' status: type: - integer - 'null' format: int32 detail: type: - string - 'null' instance: type: - string - 'null' additionalProperties: {} LegalHoldDtoItemsPage: type: object properties: items: type: - array - 'null' items: $ref: '#/components/schemas/LegalHoldDto' description: The items result set paginationToken: type: - string - 'null' description: The token for retrieving the next page of results additionalProperties: false description: Query Result Page ServiceResponseMessage: type: object properties: message: type: - string - 'null' description: The message example: Success type: type: - string - 'null' description: 'Type of the message One of Info, Warning, Error, Forbidden' example: Info errorCode: type: - string - 'null' description: Error Code example: INTERNAL_SERVER_ERROR additionalProperties: false description: The message associated to the service response ObjectServiceResponse: type: object properties: data: description: The service response DTO messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' description: List of Fenergo.Nebula.Platform.Core.Models.Response.ServiceResponseMessage associated to the service response additionalProperties: false description: Service response data StringServiceResponse: type: object properties: data: type: - string - 'null' description: The service response DTO messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' description: List of Fenergo.Nebula.Platform.Core.Models.Response.ServiceResponseMessage associated to the service response additionalProperties: false description: Service response data securitySchemes: Bearer: type: apiKey description: Please insert JWT with Bearer into field name: Authorization in: header