openapi: 3.0.0 info: version: v1.0.0 title: External APIs for Customer Integration description: >- APIs to create and fetch Clean Room and related details from LiveRamp (previously Habu) for Customer Integration. contact: name: LiveRamp (previously Habu) url: https://liveramp.com/ email: platform_admin@habu.com security: - application: [ ] tags: - name: Internal description: >- For internal LiveRamp consumption. These operations are not part of the supported external customer contract and may change without notice. paths: /health: get: summary: Check API availability operationId: getHealth description: >- Returns the health status of the API. Unauthenticated — use this to verify connectivity before making authenticated calls. security: [] responses: '200': description: API is available content: application/json: schema: $ref: '#/components/schemas/HealthResponse' tags: - Health /billable-configs: get: summary: Get billable config operationId: getBillableConfig description: >- Fetches the billable config for a given source ID and source type. Absence of a config row means the source inherits billability from the hierarchy above it. See unhygienix billing-status documentation for resolution order. parameters: - name: sourceId in: query description: Identifier of the billable source (e.g. clean room ID, question run ID) required: true schema: type: string - name: sourceType in: query description: Type of billable source required: true schema: $ref: '#/components/schemas/BillableSourceType' - name: compositeSourceId in: query description: Optional; not used by any source type exposed on the external API required: false schema: type: string responses: '200': description: Billable config fetched successfully. content: application/json: schema: $ref: '#/components/schemas/GetBillableConfigResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Billable Configs post: summary: Upsert billable config operationId: upsertBillableConfig description: >- Creates or updates a billable config for the given source. Use after creating a question run or flow run to opt out of billing (`value: "false"`). Leaving billing enabled requires no row — the hierarchy above applies. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertBillableConfigRequest' responses: '200': description: Billable config upserted successfully. content: application/json: schema: $ref: '#/components/schemas/UpsertBillableConfigResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Billable Configs /billable-configs/{billableConfigId}: delete: summary: Delete billable config operationId: deleteBillableConfig description: >- Deletes the billable config by its config ID (from a prior GET or upsert response). Returns 404 if no config with that ID was deleted. To resolve sourceId/sourceType to a config ID, call GET /billable-configs first. parameters: - name: billableConfigId in: path description: Billable config primary key ID required: true schema: type: string responses: '200': description: Billable config deleted successfully. content: application/json: schema: $ref: '#/components/schemas/DeleteBillableConfigResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Billable Configs /cleanrooms: post: summary: Create Cleanroom operationId: createCleanroom description: >- This operation creates a new Cleanroom. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CleanRoomRequest' application/xml: schema: $ref: '#/components/schemas/CleanRoomRequest' responses: '200': description: Cleanroom created successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoom" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/ResourceConflict' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanrooms get: summary: Fetch a list of all Cleanrooms operationId: getAllCleanrooms description: >- This operation fetches a list of all the Cleanrooms that are created for the Customer Integration. parameters: - name: limit in: query description: The number of Cleanrooms returned per page - default is 500 schema: type: integer default: 500 - name: offset in: query description: The offset - default is 0 schema: type: integer default: 0 responses: '200': description: Successfully fetched Cleanroom details content: application/json: schema: $ref: '#/components/schemas/CleanRooms' application/xml: schema: $ref: '#/components/schemas/CleanRooms' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanrooms /cleanrooms/{cleanroomId}/invitations: get: summary: List Cleanroom Partner Invitations For a Cleanroom Inviter operationId: listPartnerInvitationsForInviter description: >- This operation lists a invitation list for a CleanRoom Inviter. parameters: - in: path name: cleanroomId description: Cleanroom ID to see invitations schema: type: string required: true responses: '200': description: Fetched Cleanroom Partner invitations successfully. content: application/json: schema: $ref: "#/components/schemas/InvitationDetail" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners - Invitations delete: summary: Cancel Cleanroom Partner Invitation operationId: cancelPartnerInvitationByEmail description: >- This operation cancels a invitation for a CleanRoom Inviter. parameters: - in: path name: cleanroomId description: Cleanroom ID of inviter's clean-room schema: type: string required: true - in: query name: partnerEmail description: the email for the partner whose invitation is getting canceled schema: type: string required: true responses: '200': description: Canceled Cleanroom Partner invitation successfully. content: application/json: schema: $ref: "#/components/schemas/InvitationDetail" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners - Invitations /cleanrooms/{cleanroomId}/invitations/{invitationId}: delete: summary: Cancel Cleanroom Partner Invitation operationId: cancelPartnerInvitationById description: >- This operation cancels a invitation for a CleanRoom Inviter. parameters: - in: path name: cleanroomId description: Cleanroom ID of inviter's clean-room schema: type: string required: true - in: path name: invitationId description: the ID of the invitation getting canceled schema: type: string required: true responses: '200': description: Canceled Cleanroom Partner invitation successfully. content: application/json: schema: $ref: "#/components/schemas/InvitationDetail" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners - Invitations /cleanrooms/{cleanroomId}: get: summary: Fetch a Cleanroom by ID operationId: getCleanroomById description: >- This operation fetches a Cleanroom by ID. parameters: - name: cleanroomId in: path description: The cleanroom ID to fetch a single Cleanroom's details schema: type: string required: true responses: '200': description: Successfully fetched Cleanroom details content: application/json: schema: $ref: '#/components/schemas/CleanRoom' application/xml: schema: $ref: '#/components/schemas/CleanRoom' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanrooms put: summary: Update Cleanroom operationId: updateCleanroom description: >- This operation updates an existing cleanroom. parameters: - in: path name: cleanroomId description: Cleanroom ID to be updated schema: type: string required: true requestBody: description: Cleanroom details to be updated required: true content: application/json: schema: $ref: "#/components/schemas/CleanRoomRequest" responses: '200': description: Cleanroom updated successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoom" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanrooms delete: summary: Delete Cleanroom operationId: deleteCleanroom description: >- This operation deletes an existing cleanroom. parameters: - in: path name: cleanroomId description: Cleanroom ID to be deleted schema: type: string required: true responses: '200': description: Cleanroom deleted successfully. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanrooms /cleanrooms/cleanroom-types: get: summary: Fetch all Cleanroom Types operationId: getCleanroomTypes description: >- This operation fetches all the available Cleanroom Types. responses: '200': description: Successfully fetched Cleanroom Types content: application/json: schema: $ref: '#/components/schemas/CleanRoomTypes' application/xml: schema: $ref: '#/components/schemas/CleanRoomTypes' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanrooms /cleanrooms/{cleanroomId}/cleanroom-questions: post: summary: Add Cleanroom Question operationId: addCleanroomQuestion description: >- This operation adds a question to an existing cleanroom. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the Cleanroom Question schema: type: string required: true - in: query name: questionId description: Question ID required: true schema: type: string - in: query name: isEditable description: Whether the resultant Cleanroom Question can be edited further schema: type: boolean default: true required: false responses: '200': description: Cleanroom Question created successfully. content: application/json: schema: $ref: '#/components/schemas/CleanRoomQuestionResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Questions get: summary: Fetch a list of all Cleanroom Questions for a Cleanroom operationId: getAllCleanroomQuestions description: >- This operation fetches a list of all the Cleanroom Questions that are tied to a Cleanroom. parameters: - name: cleanroomId in: path description: The cleanroom ID to fetch all the underlying Cleanroom Questions schema: type: string required: true - name: startDate in: query description: A filter applied on the CreatedOn field for a Cleanroom Question that marks as the beginning of the range of dates. Default is empty - meaning no filter applied. The format is yyyy-MM-dd schema: type: string format: date example: 2024-01-01 - name: endDate in: query description: A filter applied on the CreatedOn field for a Cleanroom Question that marks as the end of the range of dates. Default is empty - meaning no filter applied. The format is yyyy-MM-dd schema: type: string format: date example: 2024-01-01 - name: limit in: query description: The number of Cleanroom Questions returned per page - default is 500 schema: type: integer default: 500 - name: offset in: query description: The offset - default is 0 schema: type: integer default: 0 - name: questionType in: query description: List or Analytical schema: type: string responses: '200': description: Successfully fetched Cleanroom Question details content: application/json: schema: $ref: '#/components/schemas/CleanRoomQuestions' application/xml: schema: $ref: '#/components/schemas/CleanRoomQuestions' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Questions /cleanroom-questions/{cleanroomQuestionId}: get: summary: Fetch a Cleanroom Question by ID operationId: getCleanroomQuestionById description: >- This operation fetches a Cleanroom Question by ID. parameters: - name: cleanroomQuestionId in: path description: The Cleanroom Question ID to fetch a single Cleanroom Question's details schema: type: string required: true responses: '200': description: Successfully fetched Cleanroom Question details content: application/json: schema: $ref: '#/components/schemas/CleanRoomQuestion' application/xml: schema: $ref: '#/components/schemas/CleanRoomQuestion' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Questions delete: summary: Delete Cleanroom Question operationId: deleteCleanroomQuestion description: >- This operation deletes an existing cleanroom question. parameters: - name: cleanroomQuestionId in: path description: Cleanroom Question ID to be deleted required: true schema: type: string responses: '200': description: Successfully deleted the cleanroom question. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Questions /cleanroom-questions/{cleanroomQuestionId}/compute-capacity: patch: summary: Update the compute capacity for a cleanroom question operationId: updateCleanroomQuestionComputeCapacity description: >- This operation updates the compute capacity for a cleanroom question. This is currently only supported for Snowflake and Hybrid Cleanrooms parameters: - in: path name: cleanroomQuestionId description: ID of the cleanroom question schema: type: string required: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateCleanroomQuestionComputeCapacityRequest' application/xml: schema: $ref: '#/components/schemas/UpdateCleanroomQuestionComputeCapacityRequest' responses: '200': description: Cleanroom Question created successfully. content: application/json: schema: $ref: '#/components/schemas/UpdateCleanroomQuestionComputeCapacityResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Questions /cleanrooms/{cleanroomId}/questions/{questionId}: get: summary: Get Cleanroom Question by Cleanroom ID and Question ID operationId: getCleanroomQuestion description: >- This operation fetches a Cleanroom Question for a given Cleanroom ID and Question ID. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the Cleanroom Question schema: type: string required: true - in: path name: questionId description: Question ID required: true schema: type: string responses: '200': description: Cleanroom Question fetched successfully. content: application/json: schema: type: object properties: id: type: string description: Cleanroom question ID '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Questions /cleanroom-questions/{cleanroomQuestionId}/cleanroom-question-result-shares: get: summary: Get the possible sharing options for the result of a Cleanroom Question operationId: getCleanroomQuestionResultShares description: >- This operation fetches a the possible sharing options for the result of a Cleanroom Question. parameters: - in: path name: cleanroomQuestionId description: Cleanroom Question ID required: true schema: type: string responses: '200': description: Successfully fetched Cleanroom Question Result Shares content: application/json: schema: $ref: '#/components/schemas/CleanRoomQuestionResultShares' application/xml: schema: $ref: '#/components/schemas/CleanRoomQuestionResultShares' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Result Shares put: summary: Upsert clean room question result shares operationId: upsertCleanRoomQuestionResultShares description: >- This operation shares the results of a cleanroom question. parameters: - name: cleanroomQuestionId in: path description: The Cleanroom Question ID for which result share is being shared schema: type: string required: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertCleanRoomQuestionResultSharesApiInput' application/xml: schema: $ref: '#/components/schemas/UpsertCleanRoomQuestionResultSharesApiInput' responses: '200': description: Successfully upserted Cleanroom Question Result Shares content: application/json: schema: $ref: '#/components/schemas/UpsertCleanRoomQuestionResultShareResponse' application/xml: schema: $ref: '#/components/schemas/UpsertCleanRoomQuestionResultShareResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Result Shares /cleanroom-questions/{cleanroomQuestionId}/cleanroom-question-tags: get: summary: Get the tags for a Cleanroom Question operationId: getCleanroomQuestionTags description: >- This operation fetches a the tags for a Cleanroom Question. parameters: - in: path name: cleanroomQuestionId description: Cleanroom Question ID required: true schema: type: string responses: '200': description: Successfully fetched Cleanroom Question Tags content: application/json: schema: $ref: '#/components/schemas/CleanRoomQuestionTags' application/xml: schema: $ref: '#/components/schemas/CleanRoomQuestionTags' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Tags /cleanroom-questions/{cleanroomQuestionId}/cleanroom-question-parameters: get: summary: Get the parameters for a Cleanroom Question operationId: getCleanroomQuestionParameters description: >- This operation fetches a the parameters for a Cleanroom Question. parameters: - in: path name: cleanroomQuestionId description: Cleanroom Question ID required: true schema: type: string responses: '200': description: Successfully fetched Cleanroom Question Parameters content: application/json: schema: $ref: '#/components/schemas/GetCleanRoomQuestionParametersResponse' application/xml: schema: $ref: '#/components/schemas/GetCleanRoomQuestionParametersResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Tags /cleanroom-questions/{cleanroomQuestionId}/cleanroom-question-run-schedules/{cleanroomQuestionRunScheduleId}: get: summary: Get a Cleanroom Question Run Schedule by ID operationId: getCleanroomQuestionRunScheduleById description: >- This operation fetches a the a Cleanroom Question Run Schedule by ID. parameters: - in: path name: cleanroomQuestionRunScheduleId description: Cleanroom Question Run Schedule ID required: true schema: type: string - in: path name: cleanroomQuestionId description: Cleanroom question ID required: true schema: type: string responses: '200': description: Successfully fetched Cleanroom Question Run Schedule content: application/json: schema: $ref: '#/components/schemas/GetCleanroomQuestionRunScheduleResponse' application/xml: schema: $ref: '#/components/schemas/GetCleanroomQuestionRunScheduleResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Run Schedule delete: summary: delete a Cleanroom Question Run Schedule by ID operationId: deleteCleanroomQuestionRunScheduleById description: >- This operation deletes a Cleanroom Question Run Schedule by ID. parameters: - in: path name: cleanroomQuestionRunScheduleId description: Cleanroom Question Run Schedule ID required: true schema: type: string - in: path name: cleanroomQuestionId description: Cleanroom question ID required: true schema: type: string responses: '200': description: Successfully deleted Cleanroom Question Run Schedule content: application/json: schema: $ref: '#/components/schemas/DeleteCleanroomQuestionRunScheduleResponse' application/xml: schema: $ref: '#/components/schemas/DeleteCleanroomQuestionRunScheduleResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Run Schedule patch: summary: Update a run schedule for a cleanroom question operationId: patchCleanroomQuestionRunScheduleById description: >- This operation modifies a run schedule for a cleanroom question parameters: - in: path name: cleanroomQuestionRunScheduleId description: Cleanroom Question Run Schedule ID required: true schema: type: string - in: path name: cleanroomQuestionId description: Cleanroom Question ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCleanroomQuestionRunScheduleInput' application/xml: schema: $ref: '#/components/schemas/CreateCleanroomQuestionRunScheduleInput' responses: '200': description: Successfully updated a Cleanroom Question Run Schedule content: application/json: schema: $ref: '#/components/schemas/CreateCleanroomQuestionRunScheduleResponse' application/xml: schema: $ref: '#/components/schemas/CreateCleanroomQuestionRunScheduleResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Run Schedule /cleanroom-questions/{cleanroomQuestionId}/cleanroom-question-run-schedules: get: summary: Get all Cleanroom Question Run Schedules for a Cleanroom Question operationId: getCleanroomQuestionRunSchedules description: >- This operation fetches all run schedules for a cleanroom question parameters: - in: path name: cleanroomQuestionId description: Cleanroom Question ID required: true schema: type: string responses: '200': description: Successfully fetched Cleanroom Question Run Schedule content: application/json: schema: $ref: '#/components/schemas/GetAllRunSchedulesForCleanroomQuestionResponse' application/xml: schema: $ref: '#/components/schemas/GetAllRunSchedulesForCleanroomQuestionResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Run Schedule post: summary: Create a new run schedule for a cleanroom question operationId: createCleanroomQuestionRunSchedule description: >- This operation creates a new run schedule for a cleanroom question parameters: - in: path name: cleanroomQuestionId description: Cleanroom Question ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCleanroomQuestionRunScheduleInput' application/xml: schema: $ref: '#/components/schemas/CreateCleanroomQuestionRunScheduleInput' responses: '200': description: Successfully created a Cleanroom Question Run Schedule content: application/json: schema: $ref: '#/components/schemas/CreateCleanroomQuestionRunScheduleResponse' application/xml: schema: $ref: '#/components/schemas/CreateCleanroomQuestionRunScheduleResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Run Schedule /cleanroom-questions/{cleanroomQuestionId}/cleanroom-question-runs: get: summary: Fetch a list of all Cleanroom Question Runs for a Cleanroom Question operationId: getAllCleanroomQuestionRuns description: >- This operation fetches a list of all the Cleanroom Question Runs (including metadata) for a given Cleanroom Question. The Customer can optionally use the status parameter to filter the list of Cleanroom Question Runs. parameters: - name: cleanroomQuestionId in: path description: The Cleanroom Question ID to fetch all the associated Cleanroom Question Runs schema: type: string required: true - name: status in: query description: The status of the Cleanroom Question Run schema: type: string enum: [ QUEUED, RUNNING, COMPLETED, FAILED, PARTNER_QUEUED, PARTNER_RUNNING, PARTNER_COMPLETED, PARTNER_FAILED, ERROR, PENDING_RETRY ] required: false - name: startDate in: query description: A filter applied on the SubmitAt field for a Cleanroom Question Run that marks as the beginning of the range of dates. Default is empty - meaning no filter applied. The format is yyyy-MM-dd schema: type: string format: date example: 2024-01-01 - name: endDate in: query description: A filter applied on the SubmitAt field for a Cleanroom Question Run that marks as the end of the range of dates. Default is empty - meaning no filter applied. The format is yyyy-MM-dd schema: type: string format: date example: 2024-01-01 - name: limit in: query description: The number of Cleanroom Question Runs returned per page - default is 30 and maximum is 100 schema: type: integer default: 30 maximum: 100 - name: offset in: query description: The offset - default is 0 schema: type: integer default: 0 responses: '200': description: Successfully fetched Cleanroom Question Run details content: application/json: schema: $ref: '#/components/schemas/QuestionRunsMetadata' application/xml: schema: $ref: '#/components/schemas/QuestionRunsMetadata' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs /cleanroom-questions/{cleanroomQuestionId}/create-run: post: summary: Create a Cleanroom Question Run for a Cleanroom Question operationId: createCleanroomQuestionRun description: >- This operation facilitates creation of a Cleanroom Question Run for a given Cleanroom Question. The Cleanroom Question must be in the READY state before a run can be created. If datasets have not yet been configured, use the `configureCleanroomQuestionDatasets` operation (`POST /cleanroom-questions/{cleanroomQuestionId}/datasets`) first. parameters: - name: cleanroomQuestionId in: path description: The Cleanroom Question ID for which the Cleanroom Question Run is being created schema: type: string required: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/QuestionRunCreateParameters' application/xml: schema: $ref: '#/components/schemas/QuestionRunCreateParameters' responses: '200': description: Successfully created Cleanroom Question Run content: application/json: schema: $ref: '#/components/schemas/QuestionRunMetadata' application/xml: schema: $ref: '#/components/schemas/QuestionRunMetadata' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '412': $ref: '#/components/responses/PreconditionFailed' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs /cleanroom-questions/{cleanroomQuestionId}/segmentation: post: summary: Enable segmentation for a Cleanroom Question operationId: enableCleanroomQuestionSegmentation description: >- This operation enables segmentation for a Cleanroom Question. parameters: - name: cleanroomQuestionId in: path description: The Cleanroom Question ID for which segmentation is being enabled schema: type: string required: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SegmentationRequest' responses: '200': description: Segmentation enabled successfully content: application/json: schema: $ref: '#/components/schemas/SegmentationResponse' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Questions put: summary: Update segmentation for a Cleanroom Question operationId: updateCleanroomQuestionSegmentation description: >- This operation updates segmentation for a Cleanroom Question. parameters: - name: cleanroomQuestionId in: path description: The Cleanroom Question ID for which segmentation is being updated schema: type: string required: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SegmentationRequest' responses: '200': description: Segmentation updated successfully content: application/json: schema: $ref: '#/components/schemas/SegmentationResponse' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Questions /cleanroom-question-runs/{cleanroomQuestionRunId}: get: summary: Fetch a Cleanroom Question Run by ID operationId: getCleanroomQuestionRunById description: >- This operation fetches a Cleanroom Question Run (including metadata) by Cleanroom Question Run ID. parameters: - name: cleanroomQuestionRunId in: path description: The Cleanroom Question Run ID to fetch a single Cleanroom Question Run's details schema: type: string required: true responses: '200': description: Successfully fetched Cleanroom Question Run details content: application/json: schema: $ref: '#/components/schemas/QuestionRunMetadata' application/xml: schema: $ref: '#/components/schemas/QuestionRunMetadata' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs put: summary: Update Question Run Status operationId: updateCleanroomQuestionRunStatus description: >- This operation lets the Customer share an update on the status of an in-progress Cleanroom Question Run with Habu. It also lets them send the status and details for a completed/failed Cleanroom Question Run to Habu. parameters: - name: cleanroomQuestionRunId in: path description: The Cleanroom Question Run ID for which the update request is being sent schema: type: string required: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/QuestionRunStatus' application/xml: schema: $ref: '#/components/schemas/QuestionRunStatus' responses: '200': $ref: '#/components/responses/QuestionRunStatusUpdate' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs delete: summary: Delete Cleanroom Question Run operationId: deleteCleanroomQuestionRun description: >- This operation lets the Customer delete a Cleanroom Question Run by ID. parameters: - name: cleanroomQuestionRunId in: path description: The Cleanroom Question Run ID schema: type: string required: true responses: '200': description: Cleanroom Question Run deleted successfully. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs /cleanroom-question-runs/{cleanroomQuestionRunId}/data: get: summary: Get the result data for Cleanroom Question Run operationId: getCleanroomQuestionRunData description: >- This operation is to get the result data for the Cleanroom Question Run. parameters: - name: cleanroomQuestionRunId in: path description: The Cleanroom Question Run ID corresponding to this run schema: type: string required: true - name: limit in: query description: The number of Cleanroom Question Run results data returned per page - default is 500 schema: type: integer default: 500 - name: offset in: query description: The offset - default is 0 schema: type: integer default: 0 responses: '200': description: Successfully fetched Cleanroom Question Run Result Data content: application/json: schema: $ref: '#/components/schemas/QuestionRunResultData' application/xml: schema: $ref: '#/components/schemas/QuestionRunResultData' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs /cleanroom-question-runs/{cleanroomQuestionRunId}/download/{fileName}: get: summary: Get the output file for Cleanroom Question Run operationId: getCleanroomQuestionRunOutputFile description: >- This operation is to get the output file for the Cleanroom Question Run. parameters: - name: cleanroomQuestionRunId in: path description: The Cleanroom Question Run ID corresponding to this run schema: type: string required: true - name: fileName in: path description: Output File Name schema: type: string required: true responses: '200': description: Successfully fetched Cleanroom Question Run Output File content: application/json: schema: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs /cleanroom-question-runs/{cleanroomQuestionRunId}/data/count: get: summary: Get the count of result data for Cleanroom Question Run operationId: getCleanroomQuestionRunDataCount description: >- This operation is to get the count of result data for the Cleanroom Question Run. parameters: - name: cleanroomQuestionRunId in: path description: The Cleanroom Question Run ID corresponding to this run schema: type: string required: true responses: '200': description: Successfully fetched count of result data content: application/json: schema: type: integer application/xml: schema: type: integer '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs /cleanroom-question-runs/{cleanroomQuestionRunId}/audit: get: summary: Get audit details for Cleanroom Question Run operationId: getCleanroomQuestionRunAudit description: >- This operation is to get the audit details for the Cleanroom Question Run. parameters: - name: cleanroomQuestionRunId in: path description: The Cleanroom Question Run ID corresponding to this run schema: type: string required: true responses: '200': description: Successfully fetched Cleanroom Question Run Audit Details content: application/json: schema: $ref: '#/components/schemas/CleanroomQuestionRunAuditDetails' application/xml: schema: $ref: '#/components/schemas/CleanroomQuestionRunAuditDetails' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs /cleanroom-question-runs/{cleanroomQuestionRunId}/activation-summary: get: summary: Fetch the Activation Summary for a Cleanroom question run operationId: getCleanroomQuestionRunActivationSummaries description: >- This operation fetches a list the Activation Summary for a Cleanroom question run parameters: - name: cleanroomQuestionRunId in: path description: The Cleanroom Question Run ID to fetch the associated Activation Summary schema: type: string required: true responses: '200': description: Successfully fetched Cleanroom Question Activation Summary content: application/json: schema: $ref: '#/components/schemas/CleanroomQuestionRunActivationSummary' application/xml: schema: $ref: '#/components/schemas/CleanroomQuestionRunActivationSummary' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs /cleanroom-question-runs/{cleanroomQuestionRunId}/partition-parameters: get: summary: Fetch the Partition Parameters for a Cleanroom question run operationId: getCleanroomQuestionRunPartitionParameters description: >- This operation fetches a list of the partition parameters for a Cleanroom question run parameters: - name: cleanroomQuestionRunId in: path description: The Cleanroom Question Run ID to fetch the associated partition parameters schema: type: string required: true responses: '200': description: Successfully fetched Cleanroom Question Partition Parameteres content: application/json: schema: $ref: '#/components/schemas/CleanroomQuestionRunPartitionParameters' application/xml: schema: $ref: '#/components/schemas/CleanroomQuestionRunPartitionParameters' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs /cleanroom-question-runs/{cleanroomQuestionRunId}/explain-plan: get: summary: Get the explain plan for a SQL Cleanroom Question Run operationId: getCleanroomQuestionRunExplainPlan description: >- This operation returns the execution plan (explain plan) for the specified Cleanroom Question Run. This operation applies only to Cleanroom Questions of type SQL; it is not supported for other question types. parameters: - name: cleanroomQuestionRunId in: path description: The Cleanroom Question Run ID to fetch the explain plan for schema: type: string required: true responses: '200': description: >- Returns explain plan details when successful (success=true). When the optimizer reports a business failure, returns HTTP 200 with success=false and errorMessage populated. content: application/json: schema: $ref: '#/components/schemas/GetExplainPlanResponse' application/xml: schema: $ref: '#/components/schemas/GetExplainPlanResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Runs /cleanrooms/{cleanroomId}/partners: post: summary: Add Cleanroom Partner operationId: addCleanroomPartner description: >- This operation adds a new partner to an existing cleanroom. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the partner schema: type: string required: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddCleanRoomPartnerRequest' application/xml: schema: $ref: '#/components/schemas/AddCleanRoomPartnerRequest' responses: '200': description: Cleanroom Partner invitation sent successfully. content: application/json: schema: $ref: "#/components/schemas/InvitationDetail" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners - Invitations get: summary: Fetch a list of all Cleanroom Partners operationId: getAllCleanroomPartners description: >- This operation fetches a list of all the Cleanroom partners in a cleanroom and their respective users. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the partners schema: type: string required: true responses: '200': description: A list of Cleanroom Partners fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomPartners" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners /cleanrooms/{cleanroomId}/partners/{cleanroomPartnerId}: get: summary: Fetch a Cleanroom Partner by Partner ID operationId: getCleanroomPartnerById description: >- This operation fetches a Cleanroom Partner by Partner ID. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with this partner schema: type: string required: true - in: path name: cleanroomPartnerId description: Cleanroom Partner ID schema: type: string required: true responses: '200': description: Cleanroom Partner fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomPartnerResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners delete: summary: Delete Cleanroom Partner operationId: deleteCleanroomPartner description: >- This operation deletes an existing partner from a cleanroom. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with this partner schema: type: string required: true - in: path name: cleanroomPartnerId description: Cleanroom Partner ID to be removed schema: type: string required: true responses: '200': description: Clean Room Partner removed successfully. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners /cleanrooms/{cleanroomId}/partners/{cleanroomPartnerId}/cleanRoomRoles: get: summary: Get Cleanroom Partner Roles in Cleanroom operationId: getCleanroomPartnerRoles description: >- This operation fetches the Cleanroom partner roles in a cleanroom. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with this user schema: type: string required: true - in: path name: cleanroomPartnerId description: Cleanroom Partner ID associated with this user schema: type: string required: true responses: '200': description: Clean Room Partner roles fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomRoles" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners /cleanrooms/{cleanroomId}/partners/{cleanroomPartnerId}/cleanRoomRoles/{cleanRoomRoleId}: get: summary: Get Cleanroom Partner Role by ID operationId: getCleanroomPartnerRoleByID description: >- This operation fetches the Cleanroom partner role by Id. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with this user schema: type: string required: true - in: path name: cleanroomPartnerId description: Cleanroom Partner ID schema: type: string required: true - in: path name: cleanRoomRoleId description: Cleanroom Partner Role ID schema: type: string required: true responses: '200': description: Clean Room Partner role fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomRole" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners /cleanrooms/{cleanroomId}/partners/{cleanroomPartnerId}/users/{cleanroomUserId}: delete: summary: Remove Cleanroom Partner User operationId: deleteCleanroomPartnerUser description: >- This operation removes an existing partner user from a cleanroom. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with this user schema: type: string required: true - in: path name: cleanroomPartnerId description: Cleanroom Partner ID associated with this user schema: type: string required: true - in: path name: cleanroomUserId description: Cleanroom User ID to be removed schema: type: string required: true responses: '200': description: Partner user removed from the cleanroom successfully. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners /cleanrooms/{cleanroomId}/partners/{cleanroomPartnerId}/users/{cleanroomUserId}/cleanRoomRoles/{cleanRoomRoleId}: put: summary: Update a partner cleanroom user role operationId: updateCleanroomPartnerUserRole description: This operation updates a partner cleanroom user role except Administrator and Partner Administrator Role. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the users schema: type: string required: true - in: path name: cleanroomPartnerId description: Cleanroom Partner ID schema: type: string required: true - in: path name: cleanroomUserId description: Cleanroom User ID schema: type: string required: true - in: path name: cleanRoomRoleId description: Cleanroom User Role ID schema: type: string required: true responses: '200': description: Partner cleanroom user role updated successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomUser" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Partners /cleanrooms/{cleanroomId}/cleanRoomRoles: get: summary: Fetch a list of cleanRoom roles operationId: getCleanroomRoles description: This operation fetches a list of roles applicable to the given cleanroom in this organization. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the users schema: type: string required: true responses: '200': description: Cleanroom role list fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomRoles" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Roles /cleanrooms/{cleanroomId}/cleanRoomRoles/{cleanRoomRoleId}: get: summary: Fetch a cleanroom role by ID operationId: getCleanroomRoleById description: This operation fetches a Cleanroom role by ID. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the users schema: type: string required: true - in: path name: cleanRoomRoleId description: Cleanroom Role ID schema: type: string required: true responses: '200': description: Cleanroom role fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomRole" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Roles /cleanrooms/{cleanroomId}/users: post: summary: Add Cleanroom User operationId: addCleanroomUser description: >- This operation adds a new user to an existing cleanroom. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the user schema: type: string required: true requestBody: description: "The following fields are required: email, role; all others are optional" required: true content: application/json: schema: $ref: "#/components/schemas/AddCleanRoomUserRequest" responses: '200': description: User added to the cleanroom successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomUser" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/ResourceConflict' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Users get: summary: Fetch a list of Cleanroom Users operationId: getCleanroomUsers description: >- This operation fetches a list of the Cleanroom users in a cleanroom. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the users schema: type: string required: true - in: query name: cleanroomUserEmail description: Email for a particular cleanroom user schema: type: string required: false responses: '200': description: Cleanroom User list fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomUsers" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Users /cleanrooms/{cleanroomId}/users/{cleanroomUserId}: get: summary: Fetch a Cleanroom User by ID operationId: getCleanroomUserById description: >- This operation fetches a Cleanroom user by ID. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the user schema: type: string required: true - in: path name: cleanroomUserId description: Cleanroom User ID required: true schema: type: string responses: '200': description: User fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomUser" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Users delete: summary: Remove Cleanroom User operationId: deleteCleanroomUser description: >- This operation removes an existing user from a cleanroom. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the user schema: type: string required: true - in: path name: cleanroomUserId description: Cleanroom User ID to be removed schema: type: string required: true responses: '200': description: User removed from the cleanroom successfully. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Users /cleanrooms/{cleanroomId}/users/{cleanroomUserId}/cleanRoomRoles/{cleanRoomRoleId}: put: summary: Update Cleanroom User Role operationId: updateCleanroomUserRole description: >- This operation updates cleanroom user role. parameters: - in: path name: cleanroomId description: Cleanroom ID associated with the user schema: type: string required: true - in: path name: cleanroomUserId description: Cleanroom User ID schema: type: string required: true - in: path name: cleanRoomRoleId description: Cleanroom User Role ID schema: type: string required: true responses: '200': description: Cleanroom role updated successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomUser" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Users /data-connections: post: summary: Create Data Connection operationId: createDataConnection description: >- This operation creates a new data connection. requestBody: description: "The following fields are required: name, category, credentialId, dataType.[displayName], jobParameter.[name, value]; all others are optional" required: true content: application/json: schema: $ref: "#/components/schemas/DataConnectionDetails" responses: '200': description: New data connection created successfully. content: application/json: schema: $ref: "#/components/schemas/DataConnectionResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Connections get: summary: Fetch a list of all Data Connections operationId: getAllDataConnections description: >- This operation fetches a list of all the data connections created as part of this Customer Integration. responses: '200': description: Data connections fetched successfully. content: application/json: schema: $ref: "#/components/schemas/DataConnections" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Connections /data-connections/{dataConnectionId}: get: summary: Fetch a Data Connection by ID operationId: getDataConnectionById description: >- This operation fetches a data connection by ID. parameters: - name: dataConnectionId in: path description: Data Connection ID required: true schema: type: string responses: '200': description: Successfully fetched the data connection. content: application/json: schema: $ref: "#/components/schemas/DataConnectionResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Connections put: summary: Update a Data Connection by ID operationId: updateDataConnection description: >- This operation updates a data connection by ID. parameters: - name: dataConnectionId in: path description: Data Connection ID required: true schema: type: string requestBody: description: "The following fields are required: name, category, credentialId, dataType.[displayName, displayName], jobParameter.[name, value]; all others are optional" required: true content: application/json: schema: $ref: "#/components/schemas/DataConnectionDetails" responses: '200': description: Successfully updated the data connection. content: application/json: schema: $ref: "#/components/schemas/DataConnectionResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Connections delete: summary: Delete a Data Connection by ID operationId: deleteDataConnection description: >- This operation deletes a data connection by ID. parameters: - in: path name: dataConnectionId description: DataConnection ID to be deleted schema: type: string required: true responses: '200': description: DataConnection deleted successfully. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Connections /data-connections/{dataConnectionId}/retry: post: summary: Retry a Data Connection Job by ID operationId: retryDataConnectionJob description: >- This operation retries a data connection job by ID. parameters: - name: dataConnectionId in: path description: Data Connection ID required: true schema: type: string responses: '200': description: Successfully submitted the retry request for the data connection ID. content: application/json: schema: $ref: "#/components/schemas/DataConnectionRetryResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Connections /data-connections/{dataConnectionId}/field-configurations: get: summary: Fetch a list of all Field Configurations operationId: getAllFieldConfigurations description: >- This operation fetches a list of all the Field Configurations for the given Data Connection. parameters: - name: dataConnectionId in: path description: Data Connection ID associated with the Field Configurations required: true schema: type: string responses: '200': description: Field Configurations fetched successfully. content: application/json: schema: $ref: "#/components/schemas/FieldConfigurations" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Connections post: summary: Map Field Configurations operationId: mapFieldConfigurations description: >- This operation maps the Field Configurations for the given Data Connection. parameters: - in: path name: dataConnectionId description: Data Connection ID associated with the Field Configurations required: true schema: type: string requestBody: description: "The following fields are required: fieldName, dataType, identifierType, delimiter, isPii, isUserIdField, isExcluded; all others are optional Request GET method to fetch list of available data connection fields" required: true content: application/json: schema: $ref: "#/components/schemas/FieldConfigurations" responses: '200': description: Field Configurations mapped successfully. content: application/json: schema: $ref: "#/components/schemas/FieldConfigurations" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Connections /cleanrooms/{cleanroomId}/datasets: get: summary: Fetch a list of all Cleanroom Datasets operationId: getCleanroomDatasets description: >- This operation fetches a list of all the Datasets that can be assigned or configured for a Cleanroom. parameters: - name: cleanroomId in: path description: Cleanroom ID associated with the datasets required: true schema: type: string responses: '200': description: Cleanroom Datasets fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomDatasets" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Datasets /cleanrooms/{cleanroomId}/datasets/{datasetId}: get: summary: Get a Cleanroom Dataset by ID operationId: getCleanroomDatasetById description: >- This operation gets a Cleanroom Dataset by ID. parameters: - name: cleanroomId in: path description: Cleanroom ID associated with the dataset required: true schema: type: string - name: datasetId in: path description: Dataset ID required: true schema: type: string responses: '200': description: Cleanroom Dataset fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomDataset" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Datasets put: summary: Update a Cleanroom Dataset by ID operationId: updateCleanroomDatasetById description: >- This operation updates the field mappings and field filters for a Cleanroom Dataset. parameters: - name: cleanroomId in: path description: Cleanroom ID associated with the dataset required: true schema: type: string - name: datasetId in: path description: Dataset ID required: true schema: type: string requestBody: description: Cleanroom Dataset Details required: true content: application/json: schema: $ref: "#/components/schemas/CleanRoomDatasetUpdateRequest" responses: '200': description: Cleanroom Dataset updated successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomDataset" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Datasets /cleanrooms/{cleanroomId}/datasets/configure: post: summary: Configure a Cleanroom Dataset by Data Connection ID operationId: configureCleanroomDataset description: >- This operation configures a Cleanroom Dataset based on Data Connection ID. parameters: - name: cleanroomId in: path description: Cleanroom ID associated with the dataset required: true schema: type: string - name: dataConnectionId in: query description: Data Connection ID required: true schema: type: string requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/ConfigureCleanRoomDatasetRequest' responses: '200': description: Cleanroom Dataset configured successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomDataset" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Datasets /cleanrooms/{cleanroomId}/datasets/partner-assignment: post: summary: Configure whether a partner can assign a Cleanroom Dataset operationId: updateCleanroomDatasetPartnerAssignment description: >- This operation configure whether a partner can assign a Cleanroom Dataset parameters: - name: cleanroomId in: path description: Cleanroom ID associated with the dataset required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateCleanroomDatasetPartnerAssignmentRequest' responses: '200': description: Cleanroom Dataset partner assignment updated successfully. content: application/json: schema: $ref: "#/components/schemas/UpdateCleanroomDatasetPartnerAssignmentResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Datasets /identifier-types: get: summary: Fetch a list of all Identifier Types for Field Mapping operationId: getAllIdentifierTypes description: >- This operation fetches a list of all the Identifier Types to select from for mapping a Field - this is applicable during the mapping step of a Data Connection. responses: '200': description: Identifier Types fetched successfully. content: application/json: schema: $ref: "#/components/schemas/IdentifierTypes" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Connections - Cleanroom Datasets /cleanrooms/{cleanroomId}/stakeholders: get: summary: Fetch a list of stakeholders for this cleanroom operationId: getCleanroomStakeholders description: >- This operation fetches a list of stakeholders for this Cleanroom that need datasets assigned while managing datasets for Cleanroom Question. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string responses: '200': description: Cleanroom Stakeholders returned successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomStakeholders" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Datasets /cleanrooms/{cleanroomId}/assets: get: summary: Get comprehensive asset details for cleanroom operations operationId: getCleanroomAssetDetails description: >- This operation fetches comprehensive asset details including questions, datasets, compute capacity options, field types, and stakeholders for cleanroom operations. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string responses: '200': description: Cleanroom asset details returned successfully. content: application/json: schema: $ref: "#/components/schemas/CleanroomAssetDetails" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanrooms /cleanroom-questions/{cleanroomQuestionId}/cleanroom-question-permissions: post: summary: Configure the permissions for a Cleanroom Question operationId: configureCleanRoomQuestionPermissions description: >- This operation configures cleanroom question permissions parameters: - name: cleanroomQuestionId in: path description: Cleanroom Question ID for which permissions need to be updated required: true schema: type: string - name: cleanroomQuestionPermissions in: query description: List of Updated Cleanroom Question Permissions required: true content: application/json: schema: $ref: "#/components/schemas/UpdateCleanRoomQuestionPermissionsRequest" responses: '200': description: Cleanroom Question Datasets configured and assigned successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomQuestionPermissionsResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Permissions get: summary: Get the permissions for a Cleanroom Question operationId: getCleanroomQuestionPermissions description: >- This operation fetches the existing permissions for a Cleanroom Question. parameters: - in: path name: cleanroomQuestionId description: Cleanroom Question ID required: true schema: type: string responses: '200': description: Successfully fetched Cleanroom Question Result Shares content: application/json: schema: $ref: '#/components/schemas/CleanRoomQuestionPermissionsResponse' application/xml: schema: $ref: '#/components/schemas/CleanRoomQuestionPermissionsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Permissions /cleanroom-questions/{cleanroomQuestionId}/data-type-options: get: summary: Fetch a list of data type options for this cleanroom question operationId: getCleanroomQuestionDataTypeOptions description: >- This operation fetches a list of DataTypeOptions for this Cleanroom Question. parameters: - name: cleanroomQuestionId in: path description: Cleanroom Question ID required: true schema: type: string - name: dataType in: query description: Data Type required: true schema: type: string responses: '200': description: Cleanroom Question Data Type Options returned successfully. content: application/json: schema: $ref: "#/components/schemas/QuestionDataTypeOptions" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Datasets /cleanroom-questions/{cleanroomQuestionId}/datasets-ownership: post: summary: Assign Cleanroom Question Datasets Ownership operationId: assignCleanroomQuestionDatasetsOwnership description: >- This operation assigns ownership to a Cleanroom Question Datasets. parameters: - name: cleanroomQuestionId in: path description: Cleanroom Question ID associated with the datasets required: true schema: type: string - name: AssignCleanroomQuestionDatasetRequests in: query description: request body to assign cleanroom question dataset ownership required: true content: application/json: schema: $ref: "#/components/schemas/AssignCleanroomQuestionDatasetRequest" responses: '200': description: Cleanroom Question Datasets ownership assigned successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomQuestionDatasets" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Datasets /cleanroom-questions/{cleanroomQuestionId}/datasets: post: summary: Configure Cleanroom Question Datasets operationId: configureCleanroomQuestionDatasets description: >- This operation configures and assigns Datasets to a Cleanroom Question. parameters: - name: cleanroomQuestionId in: path description: Cleanroom Question ID associated with the datasets required: true schema: type: string requestBody: description: "The following fields are required: datasetId, macro, field.[name, value]; all others are optional. Clean-room owner must assign dataset ownership first" required: true content: application/json: schema: $ref: "#/components/schemas/CleanRoomQuestionDatasets" responses: '200': description: Cleanroom Question Datasets configured and assigned successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomQuestionDatasets" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Datasets get: summary: Fetch a list of all Cleanroom Question Datasets operationId: getAllCleanroomQuestionDatasets description: >- This operation fetches a list of all Cleanroom Question Datasets. parameters: - name: cleanroomQuestionId in: path description: Cleanroom Question ID associated with the datasets required: true schema: type: string responses: '200': description: Cleanroom Question Datasets fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CleanRoomQuestionDatasets" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Question Datasets /users: get: summary: Fetch a list of all Organization Users operationId: getAllOrganizationUsers description: >- This operation fetches a list of all the users created for this organization. parameters: - name: limit in: query description: The number of organization users returned per page - default is 500 schema: type: integer default: 500 - name: offset in: query description: The offset - default is 0 schema: type: integer default: 0 responses: '200': description: Organization Users fetched successfully. content: application/json: schema: $ref: "#/components/schemas/OrganizationUsers" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Organization Users /organization-credentials: get: summary: Fetch a list of all Organization Credentials operationId: getAllOrganizationCredentials description: >- This operation fetches a list of all the Organization Credentials created for this Customer Integration. Ensure that the credentials are configured on the Habu platform before they can be accessed via external APIs. Creation of credentials is not exposed via external APIs to prevent potential security issues with transmitting raw credential values. responses: '200': description: Organization Credentials fetched successfully. content: application/json: schema: $ref: "#/components/schemas/OrganizationCredentialDetails" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Organization Credentials post: summary: Create Organization Credentials operationId: createOrganizationCredential description: >- This operation creates a new credential. requestBody: description: "The following fields are required: name, credentialSourceName, credentials; all others are optional" required: true content: application/json: schema: $ref: "#/components/schemas/OrganizationCredentialDetail" responses: '200': description: New credential created successfully. content: application/json: schema: $ref: "#/components/schemas/OrganizationCredentialDetail" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Organization Credentials /organization-credentials/{organizationCredentialId}: get: summary: Fetch an Organization Credential by ID operationId: getOrganizationCredentialById description: >- This operation fetches an Organization Credential by ID. parameters: - name: organizationCredentialId in: path description: Organization Credential ID required: true schema: type: string responses: '200': description: Successfully fetched the Organization Credential. content: application/json: schema: $ref: "#/components/schemas/OrganizationCredentialDetail" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Organization Credentials put: summary: Update Organization Credentials operationId: updateOrganizationCredential description: >- This operation updates an existing credential. parameters: - name: organizationCredentialId in: path description: Organization Credential ID required: true schema: type: string requestBody: description: "The following fields are required: name, credentialSourceName, credentials; all others are optional" required: true content: application/json: schema: $ref: "#/components/schemas/OrganizationCredentialDetail" responses: '200': description: Update an existing credential successfully. content: application/json: schema: $ref: "#/components/schemas/OrganizationCredentialDetail" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Organization Credentials delete: summary: Delete an Organization Credential by ID operationId: deleteOrganizationCredential description: >- This operation deletes an organization credential by ID. parameters: - in: path name: organizationCredentialId description: Organization Credential ID to be deleted schema: type: string required: true responses: '200': description: Organization Credential deleted successfully. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Organization Credentials /credential-sources: get: summary: Fetch a list of all Credential Sources operationId: getAllCredentialSources description: >- This operation fetches a list of all the Credential Sources created for this Customer Integration. responses: '200': description: Credential Sources fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CredentialSources" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Credential Sources /credential-sources/{credentialSourceId}: get: summary: Fetch a Credential Source by ID operationId: getCredentialSourceById description: >- This operation fetches a Credential Source by ID. parameters: - name: credentialSourceId in: path description: Credential Source ID required: true schema: type: string responses: '200': description: Successfully fetched the Credential Source. content: application/json: schema: $ref: "#/components/schemas/CredentialSource" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Credential Sources /credential-sources/credential-name/{name}: get: summary: Fetch a Credential Source by Name operationId: getCredentialSourceByName description: >- This operation fetches a Credential Source by Name. parameters: - name: name in: path description: Credential Source Name required: true schema: type: string responses: '200': description: Credential Sources fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CredentialSources" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Credential Sources /data-sources: get: summary: Fetch a list of all Data Sources operationId: getAllDataSources description: >- This operation fetches a list of all the Data Sources that are available to create a new Data Connection for this Customer Integration. responses: '200': description: Data Sources fetched successfully. content: application/json: schema: $ref: "#/components/schemas/DataSources" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Sources /data-sources/{dataSourceId}: get: summary: Fetch a Data Source by ID operationId: getDataSourceById description: >- This operation fetches a Data Source by ID. parameters: - name: dataSourceId in: path description: Data Source ID required: true schema: type: string responses: '200': description: Successfully fetched the Data Source. content: application/json: schema: $ref: "#/components/schemas/DataSource" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Sources /data-sources/{dataSourceId}/data-types: get: summary: Fetch a list of Data Types operationId: getAllDataTypes description: >- This operation fetches a list of all the Data Types for a Data Source ID. parameters: - name: dataSourceId in: path description: Data Source ID required: true schema: type: string responses: '200': description: Data Types fetched successfully. content: application/json: schema: $ref: "#/components/schemas/DataTypes" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Types /data-sources/data-types/{dataTypeId}: get: summary: Fetch a Data Type by ID operationId: getDataTypeById description: >- This operation fetches a Data Type by ID. parameters: - name: dataTypeId in: path description: Data Type ID required: true schema: type: string responses: '200': description: Successfully fetched the Data Type. content: application/json: schema: $ref: "#/components/schemas/DataType" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Types /data-sources/{dataSourceId}/data-types/{dataTypeId}/data-source-parameters: get: summary: Fetch all Data Source Parameters operationId: getAllDataSourceParameters description: >- This operation fetches all the Data Source Parameters for the given data source and data type. parameters: - name: dataSourceId in: path description: Data Source ID required: true schema: type: string - name: dataTypeId in: path description: Data Type ID required: true schema: type: string responses: '200': description: Successfully fetched the Data Source Parameters. content: application/json: schema: $ref: "#/components/schemas/DataSourceParameters" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Data Source Parameters /question/{questionID}: get: summary: Fetch question details operationId: getQuestionDetails description: >- This operation fetches the details of a question by the question ID. parameters: - name: questionID in: path description: The question ID to fetch a single Question's details schema: type: string required: true - name: cleanRoomID in: query description: The cleanroom ID for where the question is schema: type: string required: false - name: version in: query description: The version of the question schema: type: integer required: false responses: '200': description: Successfully fetched question details content: application/json: schema: $ref: '#/components/schemas/Question' application/xml: schema: $ref: '#/components/schemas/Question' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Questions delete: summary: Delete question operationId: deleteQuestion description: >- This operation deletes a question given its ID parameters: - name: questionID in: path description: The question ID to fetch a single Question's details schema: type: string required: true responses: '200': description: Successfully fetched question details content: application/json: schema: $ref: '#/components/schemas/DeleteQuestionResponse' application/xml: schema: $ref: '#/components/schemas/DeleteQuestionResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Questions put: summary: Update question operationId: updateQuestion description: >- This operation updates a question. parameters: - name: questionID in: path description: The question ID of the question to be updated schema: type: string required: true - name: cleanRoomID in: query description: The cleanroom ID for where the question is schema: type: string required: false requestBody: description: Question details required: true content: application/json: schema: $ref: "#/components/schemas/Question" responses: '200': description: Successfully updated a question content: application/json: schema: $ref: '#/components/schemas/QuestionUpdateResponse' application/xml: schema: $ref: '#/components/schemas/QuestionUpdateResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Questions /question: post: summary: Create question operationId: createQuestion description: >- This operation creates a question. parameters: - name: cleanRoomID in: query description: The cleanroom ID for where the question is schema: type: string required: false requestBody: description: Question details required: true content: application/json: schema: $ref: "#/components/schemas/Question" responses: '200': description: Successfully created a question content: application/json: schema: $ref: '#/components/schemas/QuestionCreationResponse' application/xml: schema: $ref: '#/components/schemas/QuestionCreationResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Questions /question/{questionID}/data-types: get: summary: Fetch question data types operationId: getQuestionDataTypes description: >- This operation fetches the question types by the question ID. parameters: - name: questionID in: path description: The question ID to fetch a question data types schema: type: string required: true responses: '200': description: Successfully fetched question data types content: application/json: schema: $ref: '#/components/schemas/QuestionDataType' application/xml: schema: $ref: '#/components/schemas/QuestionDataType' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Questions /data-connections/import-data-types: get: summary: Fetch a list of all Import Data Types operationId: getAllImportDataTypes description: >- This operation fetches a list of all the Import Data Types that are available to the organization. responses: '200': description: Import Data Types fetched successfully. content: application/json: schema: $ref: "#/components/schemas/ImportDataTypes" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Import Data Types /data-connection-views: post: summary: Create a Data Connection View operationId: createDataConnectionView description: >- This operation creates a new data connection view from a SQL query and source data connections. requestBody: description: "The following fields are required: name, query, dataConnections.[dataConnectionId, macro], fields.[name, type]" required: true content: application/json: schema: $ref: "#/components/schemas/DataConnectionViewDetails" responses: '201': description: Data connection view created successfully. content: application/json: schema: $ref: "#/components/schemas/DataConnectionViewResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - DataConnectionViews get: summary: Fetch a list of all Data Connection Views operationId: getAllDataConnectionViews description: >- This operation fetches a paginated list of data connection views for the organization. parameters: - name: stage in: query description: Filter views by stage required: false schema: type: string - name: status in: query description: Filter views by status required: false schema: type: string - name: limit in: query description: The number of data connection views returned per page - default is 30, minimum is 1, maximum is 100 schema: type: integer minimum: 1 maximum: 100 default: 30 - name: offset in: query description: The offset - default is 0, minimum is 0 schema: type: integer minimum: 0 default: 0 responses: '200': description: Data connection views fetched successfully. content: application/json: schema: $ref: "#/components/schemas/DataConnectionViews" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - DataConnectionViews /data-connection-views/{viewId}: get: summary: Fetch a Data Connection View by ID operationId: getDataConnectionViewById description: >- This operation fetches a data connection view by ID. parameters: - name: viewId in: path description: Data Connection View ID required: true schema: type: string responses: '200': description: Successfully fetched the data connection view. content: application/json: schema: $ref: "#/components/schemas/DataConnectionViewResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - DataConnectionViews put: summary: Update a Data Connection View by ID operationId: updateDataConnectionView description: >- This operation updates a data connection view by ID. parameters: - name: viewId in: path description: Data Connection View ID required: true schema: type: string requestBody: description: "All fields are optional. Omitted fields retain their existing values." required: true content: application/json: schema: $ref: "#/components/schemas/DataConnectionViewUpdateDetails" responses: '200': description: Successfully updated the data connection view. content: application/json: schema: $ref: "#/components/schemas/DataConnectionViewResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - DataConnectionViews delete: summary: Delete a Data Connection View by ID operationId: deleteDataConnectionView description: >- This operation deletes a data connection view by ID. parameters: - name: viewId in: path description: Data Connection View ID to be deleted required: true schema: type: string responses: '200': description: Data connection view deleted successfully. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - DataConnectionViews /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}: get: summary: Get a Cleanroom Flow by ID operationId: getCleanroomFlow description: >- This operation fetches a Cleanroom Flow by its ID, including flow structure (nodes, edges) and version information. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string responses: '200': description: Successfully retrieved the Cleanroom Flow. content: application/json: schema: $ref: '#/components/schemas/GetCleanroomFlowResponse' application/xml: schema: $ref: '#/components/schemas/GetCleanroomFlowResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows /cleanrooms/{cleanroomId}/cleanroom-flows: post: summary: Create or update a cleanroom flow operationId: createOrUpdateCleanroomFlow description: >- This operation creates or updates a Cleanroom Flow. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateFlowRequest" responses: '200': description: Successfully created or updated the Cleanroom Flow. content: application/json: schema: $ref: '#/components/schemas/CreateFlowResponse' application/xml: schema: $ref: '#/components/schemas/CreateFlowResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}/version/{version}: put: summary: Set Cleanroom Flow Version operationId: setCleanroomFlowVersion description: >- This operation changes a cleanroom flow to use a specific existing flow version. Use this for rollback or switching between flow versions. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string - name: version in: path description: The target flow version to set required: true schema: type: integer format: int32 responses: '200': description: Successfully updated the Cleanroom Flow version. content: application/json: schema: $ref: '#/components/schemas/GetCleanroomFlowResponse' application/xml: schema: $ref: '#/components/schemas/GetCleanroomFlowResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows /cleanrooms/{cleanroomId}/cleanroom-flows/list: post: summary: List Cleanroom Flows operationId: listCleanroomFlows description: >- List cleanroom flows for a cleanroom with pagination, filters and search. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ListCleanroomFlowsRequest' responses: '200': description: Successfully fetched cleanroom flows content: application/json: schema: $ref: '#/components/schemas/ListCleanroomFlowsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows /cleanrooms/{cleanroomId}/cleanroom-flow-runs/{cleanroomFlowRunId}/resume-flow-run: post: summary: Resume a Cleanroom Flow Run operationId: resumeCleanroomFlowRun description: >- This operation resumes a Cleanroom Flow Run. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowRunId in: path description: Cleanroom Flow Run ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ResumeCleanroomFlowRunInput" responses: '200': description: Successfully created or updated the Cleanroom Flow. content: application/json: schema: $ref: '#/components/schemas/ResumeCleanroomFlowRunApiResponse' application/xml: schema: $ref: '#/components/schemas/ResumeCleanroomFlowRunApiResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs /cleanrooms/{cleanroomId}/cleanroom-flow-runs/{cleanroomFlowRunId}/replay-flow-run: post: summary: replay a Cleanroom Flow Run operationId: replayCleanroomFlowRun description: >- This operation replays a Cleanroom Flow Run. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowRunId in: path description: Cleanroom Flow Run ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ReplayCleanroomFlowRunInput" responses: '200': description: Successfully replayed the Cleanroom Flow Run. content: application/json: schema: $ref: '#/components/schemas/ReplayCleanroomFlowRunApiResponse' application/xml: schema: $ref: '#/components/schemas/ReplayCleanroomFlowRunApiResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs /cleanrooms/{cleanroomId}/cleanroom-flow-runs/{cleanroomFlowRunId}/status: get: summary: get the status of a Cleanroom Flow Run operationId: getCleanroomFlowRunStatus description: >- This operation fetches the status of a Cleanroom Flow Run. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowRunId in: path description: Cleanroom Flow Run ID required: true schema: type: string responses: '200': description: Successfully fetched the status of the Cleanroom Flow Run. content: application/json: schema: $ref: '#/components/schemas/GetCleanroomFlowRunStatusResponse' application/xml: schema: $ref: '#/components/schemas/GetCleanroomFlowRunStatusResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}/cleanroom-flow-runs: get: summary: List Cleanroom Flow Runs operationId: listCleanroomFlowRuns description: >- List cleanroom flow runs for a given cleanroom flow with optional search filters and pagination. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string - name: search in: query description: Case-insensitive partial search across flow run name, status, ID, and parent flow run ID required: false schema: type: string - name: limit in: query description: Maximum number of flow runs to return required: false schema: type: integer format: int32 default: 30 - name: offset in: query description: Number of flow runs to skip for pagination required: false schema: type: integer format: int32 default: 0 responses: '200': description: Successfully fetched Cleanroom Flow Runs content: application/json: schema: $ref: '#/components/schemas/ListCleanroomFlowRunsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs post: summary: Create a Cleanroom Flow Run operationId: createOrUpdateCleanroomFlowRun description: >- This operation creates a Cleanroom Flow Run. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateCleanroomFlowRunInput" responses: '200': description: Successfully created the Cleanroom Flow Run. content: application/json: schema: $ref: '#/components/schemas/FlowRunMetadata' application/xml: schema: $ref: '#/components/schemas/FlowRunMetadata' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}/flow-run-parameters: get: summary: Get Flow Run Parameters operationId: getCleanroomFlowRunparameters description: >- This operation gets run parameters for a cleanroom flow parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string responses: '200': description: Successfully retrieved the Cleanroom Flow Run parameters. content: application/json: schema: $ref: '#/components/schemas/GetCleanroomFlowRunParametersResponse' application/xml: schema: $ref: '#/components/schemas/GetCleanroomFlowRunParametersResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}/preview-flow-run-parameters: post: summary: Preview Flow Run Parameters operationId: previewFlowRunParameters description: >- Returns the expected runtime and partition parameters for each question node that would be included in a flow run, without actually creating a run. Accepts the same request shape as Create Cleanroom Flow Run. If parentFlowRunId is set on the request, it is treated as a replay scenario. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/PreviewFlowRunParametersInput" responses: '200': description: Successfully retrieved the preview of flow run parameters. content: application/json: schema: $ref: '#/components/schemas/PreviewFlowRunParametersResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}/assign-datasets: post: summary: Assign datasets and fields to a cleanroom flow operationId: assignCleanroomFlowDatasets description: >- This operation assigns datasets and field mappings to nodes in a cleanroom flow using dataset and organization names instead of IDs. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/AssignFlowDatasetsRequest" responses: '200': description: Successfully assigned datasets to the cleanroom flow. content: application/json: schema: $ref: '#/components/schemas/AssignFlowDatasetsResponse' application/xml: schema: $ref: '#/components/schemas/AssignFlowDatasetsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows /cleanrooms/{cleanroomId}/dataset-organizations: post: summary: Get organization information for datasets by UUID or name operationId: getDatasetOrganizations description: >- This operation retrieves organization information for datasets by UUID or name within a cleanroom context. parameters: - name: cleanroomId in: path description: Cleanroom ID to scope the dataset search required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GetDatasetOrganizationsRequest" responses: '200': description: Successfully retrieved dataset organization information. content: application/json: schema: $ref: '#/components/schemas/GetDatasetOrganizationsResponse' application/xml: schema: $ref: '#/components/schemas/GetDatasetOrganizationsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}/nodes/exports: post: summary: Bulk create flow node export jobs operationId: createFlowNodeExportJobs description: >- Creates export jobs for one or more flow nodes in a single call. Each item specifies a node ID, the partner accounts to export to, and optional export parameters. Only question nodes are supported. One export job is created per partner account per node. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/NodeExportRequest' responses: '200': description: Export jobs created successfully. content: application/json: schema: type: array items: $ref: '#/components/schemas/NodeExportResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows get: summary: Bulk list flow node export jobs operationId: listFlowNodeExportJobs description: >- Lists all export jobs for one or more flow nodes. Pass a comma-separated list of node IDs via the nodeIds query parameter. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string - name: nodeIds in: query description: Comma-separated list of node IDs to list exports for required: true schema: type: array items: type: string style: form explode: false - name: limit in: query description: The number of export jobs returned per node per page - default is 500 schema: type: integer default: 500 - name: offset in: query description: The offset - default is 0 schema: type: integer default: 0 responses: '200': description: Export jobs listed successfully. content: application/json: schema: type: array items: $ref: '#/components/schemas/NodeExportJobList' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows delete: summary: Bulk delete flow node export jobs operationId: deleteFlowNodeExportJobs description: >- Deletes all export jobs for the specified flow nodes. All jobs associated with each node are deleted. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BulkNodeDeleteRequest' responses: '200': description: Export jobs deleted successfully. content: application/json: schema: type: array items: $ref: '#/components/schemas/NodeDeleteResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}/nodes/exports/status: patch: summary: Bulk update flow node export job status operationId: updateFlowNodeExportJobsStatus description: >- Updates the status of all export jobs for the specified flow nodes. Status must be ACTIVE or PAUSED. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BulkNodeStatusRequest' responses: '200': description: Job statuses updated successfully. content: application/json: schema: type: array items: $ref: '#/components/schemas/NodeStatusResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}/nodes/exports/runs: get: summary: Bulk get flow node export job runs operationId: getFlowNodeExportJobRuns description: >- Returns run history for all export jobs associated with the specified flow nodes. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string - name: nodeIds in: query description: Comma-separated list of node IDs required: true schema: type: array items: type: string style: form explode: false responses: '200': description: Job runs retrieved successfully. content: application/json: schema: type: array items: $ref: '#/components/schemas/NodeJobRunsList' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}/node-details: get: summary: Get comprehensive node details for a cleanroom flow operationId: getCleanroomFlowNodeDetails description: >- This operation retrieves comprehensive details for all nodes in a cleanroom flow including question metadata and flow position information. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string responses: '200': description: Successfully retrieved cleanroom flow node details. content: application/json: schema: $ref: '#/components/schemas/CleanroomFlowNodeDetails' application/xml: schema: $ref: '#/components/schemas/CleanroomFlowNodeDetails' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flows /cleanrooms/{cleanroomId}/cleanroom-flows/{cleanroomFlowId}/decision-configurations: get: summary: Get decision configuration for a cleanroom flow operationId: getFlowDecisionConfiguration description: >- Fetches decision configuration for a cleanroom flow. If nodeIdentifier is provided, returns configuration for that specific node only. Otherwise returns all decision configurations for the flow. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string - name: nodeIdentifier in: query description: Optional node identifier (UUID or label) to fetch configuration for a specific node required: false schema: type: string responses: '200': description: Successfully retrieved decision configuration. content: application/json: schema: $ref: '#/components/schemas/GetFlowDecisionConfigurationResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Flow Decision Configurations post: summary: Create or update decision configuration for a cleanroom flow operationId: createOrUpdateFlowDecisionConfiguration description: >- Creates or updates decision configuration for one or more nodes in a cleanroom flow. Each decision node includes conditions, retry configuration, and gated edges. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateOrUpdateFlowDecisionConfigurationRequest' responses: '200': description: Successfully created or updated decision configuration. content: application/json: schema: $ref: '#/components/schemas/CreateOrUpdateFlowDecisionConfigurationResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Flow Decision Configurations delete: summary: Delete decision configuration for a cleanroom flow operationId: deleteFlowDecisionConfiguration description: >- Deletes decision configuration for a cleanroom flow. If nodeIdentifier is provided, deletes configuration for that specific node only. Otherwise deletes all decision configurations for the flow. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanroomFlowId in: path description: Cleanroom Flow ID required: true schema: type: string - name: nodeIdentifier in: query description: Optional node identifier (UUID or label) to delete configuration for a specific node required: false schema: type: string - name: cleanRoomOverride in: query description: If true, delete from the CRF-scoped override tier; if false, delete from the base tier required: false schema: type: boolean responses: '200': description: Successfully deleted decision configuration. content: application/json: schema: $ref: '#/components/schemas/DeleteFlowDecisionConfigurationResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Flow Decision Configurations /cleanrooms/{cleanroomId}/cleanroom-flow-runs/{cleanroomFlowRunId}: get: summary: Fetch a Cleanroom Flow Run by ID operationId: getCleanroomFlowRunByID description: >- This operation fetches a Cleanroom Flow Run (including metadata) by Cleanroom Flow Run ID and Clean Room ID. parameters: - name: cleanroomId in: path description: The Cleanroom ID to which the flow run belongs schema: type: string required: true - name: cleanroomFlowRunId in: path description: The Cleanroom Flow Run ID to fetch a single Cleanroom Flow Run's details schema: type: string required: true responses: '200': description: Successfully fetched Cleanroom Flow Run details content: application/json: schema: $ref: '#/components/schemas/FlowRunMetadata' application/xml: schema: $ref: '#/components/schemas/FlowRunMetadata' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs /cleanrooms/{cleanroomId}/cleanroom-flow-runs/{cleanroomFlowRunId}/report: get: summary: Fetch a Cleanroom Flow Run Report operationId: getCleanroomFlowRunReport description: >- This operation fetches a Cleanroom Flow Run Report (including metadata) by Cleanroom Flow Run ID and Clean Room ID. parameters: - name: cleanroomId in: path description: The Cleanroom ID to which the flow run belongs schema: type: string required: true - name: cleanroomFlowRunId in: path description: The Cleanroom Flow Run ID to fetch a single Cleanroom Flow Run's details schema: type: string required: true - name: node in: query description: Identifier of the node in the flow. You can pass either the node’s UUID (recommended), or the node’s Question Display ID–based label (for example, Q-004368). If the same question is used multiple times as different nodes in the same flow, the label is suffixed with a number (for example, Q-004368_1, Q-004368_2). In those cases, using the UUID is the safest way to avoid ambiguity. schema: type: string required: true - name: limit in: query description: The number of Cleanroom Flow Run results data returned per page - default is 500 schema: type: integer default: 500 required: false - name: offset in: query description: The offset - default is 0 schema: type: integer default: 0 required: false responses: '200': description: Successfully fetched Cleanroom Flow Run Result Data content: application/json: schema: $ref: '#/components/schemas/QuestionRunResultData' application/xml: schema: $ref: '#/components/schemas/QuestionRunResultData' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs /cleanrooms/{cleanroomId}/cleanroom-flow-runs/{cleanroomFlowRunId}/output-nodes: get: summary: Fetch output nodes for a Cleanroom Flow Run Report operationId: getCleanroomFlowRunOutputNodes description: >- This operation fetches the output nodes for a cleanroom flow run. It is the canonical way to list all nodes in the run and retrieve their UUIDs (the recommended identifier). Note: The label field in this response represents the node's display name (e.g., "Brand Awareness") and cannot be used as a node identifier. API clients should use the returned UUID for all node-specific operations to ensure uniqueness and stability. parameters: - name: cleanroomId in: path description: The Cleanroom ID to which the flow run belongs schema: type: string required: true - name: cleanroomFlowRunId in: path description: The Cleanroom Flow Run ID to fetch a single Cleanroom Flow Run's details schema: type: string required: true responses: '200': description: Successfully fetched Cleanroom Flow Run details content: application/json: schema: $ref: '#/components/schemas/CleanroomFlowRunOutputNodes' application/xml: schema: $ref: '#/components/schemas/CleanroomFlowRunOutputNodes' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs /cleanrooms/{cleanroomId}/cleanroom-flow-runs/{cleanroomFlowRunId}/node/{nodeIdentifier}/download/{fileName}: get: summary: Download output file for a Cleanroom Flow Run node operationId: getCleanroomFlowRunNodeOutputFile description: >- This operation downloads an output file for a specific node in a cleanroom flow run parameters: - name: cleanroomId in: path description: The Cleanroom ID to which the flow run belongs schema: type: string required: true - name: cleanroomFlowRunId in: path description: The Cleanroom Flow Run ID schema: type: string required: true - name: nodeIdentifier in: path description: Identifier of the node in the flow. You can pass either the node’s UUID (recommended), or the node’s Question Display ID–based label (for example, Q-004368). If the same question is used multiple times as different nodes in the same flow, the label is suffixed with a number (for example, Q-004368_1, Q-004368_2). In those cases, using the UUID is the safest way to avoid ambiguity. schema: type: string required: true - name: fileName in: path description: The name of the output file to download schema: type: string required: true responses: '200': description: Successfully downloaded the output file content: application/json: schema: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Flow Runs /cleanrooms/{cleanroomId}/create-cleanroom-execution-instance: post: summary: Create Cleanroom Execution Instance operationId: createCleanRoomExecutionTemplateInstance description: >- This operation creates clean room execution template instance. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CleanRoomExecutionInstanceInput" responses: '200': description: Successfully created measurement report. content: application/json: schema: $ref: '#/components/schemas/MeasurementExecutionTemplateResponse' application/xml: schema: $ref: '#/components/schemas/MeasurementExecutionTemplateResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom /cleanrooms/{cleanroomId}/cleanroom-execution-instance/{cleanRoomMeasurementExecutionInstanceId}: get: summary: Get status of clean room measurement execution instance operationId: getCleanRoomMeasurementExecutionInstance description: >- This operation gets the status of clean room measurement execution instance. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanRoomMeasurementExecutionInstanceId in: path description: Clean Room Measurement Execution Instance ID required: true schema: type: string responses: '200': description: Successfully got the status clean room measurement execution instance. content: application/json: schema: $ref: '#/components/schemas/CleanRoomMeasurementExecutionInstanceStatusResponse' application/xml: schema: $ref: '#/components/schemas/CleanRoomMeasurementExecutionInstanceStatusResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom post: summary: Cancels a clean room measurement execution instance operationId: cancelCleanRoomMeasurementExecutionInstance description: >- This operation cancels a clean room measurement execution instance. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string - name: cleanRoomMeasurementExecutionInstanceId in: path description: Clean Room Measurement Execution Instance ID required: true schema: type: string responses: '200': description: Successfully got the status clean room measurement execution instance. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom /cleanrooms/{cleanroomId}/exports/jobs: get: summary: Fetch a list of all Cleanroom Exports operationId: getAllDataExportJobs description: >- This operation fetches a list of all the Cleanroom Exports that are available to the organization. parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string responses: '200': description: Cleanroom Exports fetched successfully. content: application/json: schema: $ref: "#/components/schemas/DataExportJobs" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Exports post: summary: Create cleanroom export job operationId: createDataExportJobs description: >- This operation creates new data export jobs parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string requestBody: description: Export Jobs details required: true content: application/json: schema: $ref: "#/components/schemas/CreateDataExportJobRequest" responses: '200': description: Cleanroom Exports fetched successfully. content: application/json: schema: $ref: "#/components/schemas/CreateDataExportJobResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Exports /cleanrooms/{cleanroomId}/destinations: get: summary: List destinations provisioned in a cleanroom operationId: listCleanroomDestinations description: >- Lists destinations provisioned to this cleanroom. Each item includes the partner account, whether the org is owner or partner, and the activation channel status. Paginate with limit and offset (defaults 30 and 0; limit may not exceed 100). You can optionally filter by partner type. parameters: - name: cleanroomId in: path description: Identifier of the cleanroom. required: true schema: type: string - name: type in: query description: When provided, only destinations whose partner has this type (for example EXPORTS) are returned. required: false schema: type: string - name: limit in: query description: Number of destinations to return. Default 30; must be between 1 and 100. required: false schema: type: integer format: int32 minimum: 1 maximum: 100 default: 30 - name: offset in: query description: Number destinations to skip at the start of the list. Default is 0. required: false schema: type: integer format: int32 minimum: 0 default: 0 - name: latestJobDays in: query description: When set, job run status summaries on each partner account only include runs from the last N days. required: false schema: type: integer format: int32 minimum: 1 responses: '200': description: Cleanroom destinations fetched successfully. content: application/json: schema: $ref: "#/components/schemas/ListCleanroomDestinationsResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Destinations post: summary: Provision destinations to a cleanroom operationId: provisionCleanroomDestinations description: >- This operation provisions a destination to a cleanroom parameters: - name: cleanroomId in: path description: Cleanroom ID required: true schema: type: string requestBody: description: Request object to provision destinations to a cleanroom required: true content: application/json: schema: $ref: "#/components/schemas/ProvisionCleanroomDestinationRequest" responses: '200': description: Cleanroom Destination Provisioned Successfully content: application/json: schema: $ref: "#/components/schemas/ProvisionCleanroomDestinationResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Destinations /cleanrooms/{cleanroomId}/destinations/{partnerAccountId}: delete: summary: Deprovision a destination from a cleanroom operationId: deprovisionCleanroomDestination description: >- Deprovisions a destination connection from a cleanroom. The destination connection must belong to the organization and must not be in use for activation. parameters: - name: cleanroomId in: path description: Cleanroom ID containing the destination required: true schema: type: string - name: partnerAccountId in: path description: Destination connection to deprovision required: true schema: type: string responses: '200': description: Destination deprovisioned from cleanroom successfully content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Destinations /cleanrooms/{cleanroomId}/destinations/{partnerAccountId}/provisioning-request/review: post: summary: Approve or reject a destination provisioning request operationId: reviewDestinationProvisioningRequest description: >- Approve or reject a pending destination provisioning request for a single partner account in the cleanroom. parameters: - name: cleanroomId in: path description: Cleanroom ID containing the destination required: true schema: type: string - name: partnerAccountId in: path description: Partner account ID for the destination provisioning request required: true schema: type: string requestBody: description: Approve or reject the provisioning request required: true content: application/json: schema: $ref: "#/components/schemas/ReviewDestinationProvisioningRequest" responses: '200': description: Destination provisioning request reviewed successfully content: application/json: schema: $ref: "#/components/schemas/ReviewDestinationProvisioningResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Destinations /exports/jobs/{exportJobId}/runs: get: summary: Fetch a list of all Cleanroom Exports operationId: getDataExportJobRuns description: >- This operation fetches the runs for a data export job parameters: - name: exportJobId in: path description: Export Job ID required: true schema: type: string responses: '200': description: Cleanroom Export Job runs fetched successfully. content: application/json: schema: $ref: "#/components/schemas/ListDataExportJobRunsResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Exports /exports/jobs/{exportJobId}/status: patch: summary: Change export job status operationId: changeJobStatus description: >- Sets the job schedule status to ACTIVE or PAUSED. parameters: - name: exportJobId in: path description: Export Job ID required: true schema: type: string requestBody: description: Target status for the job required: true content: application/json: schema: $ref: "#/components/schemas/ChangeJobStatusRequest" responses: '200': description: Job status updated successfully. content: application/json: schema: $ref: "#/components/schemas/ChangeJobStatusResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Exports /exports/jobs/{exportJobId}: delete: summary: Delete a data export job operationId: deleteDataExportJob description: >- Deletes a data export job for the organization. parameters: - name: exportJobId in: path description: Export Job ID required: true schema: type: string responses: '200': description: Data export job deleted successfully. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Cleanroom Exports /destinations/partners: get: summary: List destination partners operationId: listDestinationPartners description: >- This operation fetches the list of destination partners available. responses: '200': description: Destination partners fetched successfully. content: application/json: schema: $ref: "#/components/schemas/ListDestinationPartnersResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Destinations /destinations: get: summary: List destination connections operationId: listDestinations description: >- This operation fetches a list destination connections (partner accounts) for the organisation. parameters: - name: limit in: query description: The number of destination connections returned per page - default is 30, minimum is 1, maximum is 100 schema: type: integer minimum: 1 maximum: 100 default: 30 - name: offset in: query description: The offset - default is 0, minimum is 0 schema: type: integer minimum: 0 default: 0 responses: '200': description: Destination connections fetched successfully. content: application/json: schema: $ref: "#/components/schemas/ListDestinationsResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Destinations post: summary: Create destination connection operationId: createDestination description: >- Creates a destination connection (partner account) for the organisation. requires name and partner id; credential and publicKey are optional depending on partner type. requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateDestinationRequest" responses: '200': description: Destination connection created successfully. content: application/json: schema: $ref: "#/components/schemas/PartnerAccount" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Destinations /destinations/{partnerAccountId}: patch: summary: Update destination connection operationId: updateDestinationConnection description: >- Updates an existing destination connection (partner account) for the organization. Partner cannot be changed; only name, credential, and publicKey may be updated. parameters: - name: partnerAccountId in: path description: Partner Account ID for the destination connection to be updated required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/UpdateDestinationRequest" responses: '200': description: Destination connection updated successfully. content: application/json: schema: $ref: "#/components/schemas/UpdateDestinationResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Destinations delete: summary: Delete destination connection operationId: deleteDestinationConnection description: >- Deletes a destination connection (partner account) for the organization. parameters: - name: partnerAccountId in: path description: Partner Account ID for the destination connection to be deleted required: true schema: type: string responses: '200': description: Destination connection deleted successfully. content: application/json: schema: $ref: "#/components/schemas/DeleteResponse" '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Destinations /cleanrooms/{cleanroomId}/intelligence: get: x-internal: true summary: Get Habu Intelligence bindings for a Cleanroom operationId: getCleanroomIntelligence description: >- **Internal API — for internal LiveRamp consumption, not part of the supported external contract.** Resolves all Habu Intelligence (HI) referents for a Cleanroom in one call: the Snowflake database name, the Metabase database id, the Metabase collection id, and the provisioning status. Replaces the heuristic display-id prefix matching previously needed to map a Cleanroom to its Metabase database. Requires the API user to have the `HabuIntelligenceAdmin` permission in addition to `read:cleanrooms` scope on the API key. parameters: - name: cleanroomId in: path description: The Cleanroom ID schema: type: string required: true responses: '200': description: HI bindings for the Cleanroom content: application/json: schema: $ref: '#/components/schemas/CleanRoomIntelligence' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Intelligence - Internal /cleanrooms/{cleanroomId}/intelligence/loaded-questions: get: x-internal: true summary: List Cleanroom Questions with HI data loaded operationId: listLoadedIntelligenceQuestions description: >- **Internal API — for internal LiveRamp consumption, not part of the supported external contract.** Returns the set of Cleanroom Questions whose results have been loaded into the Cleanroom's Habu Intelligence Snowflake database, with their Snowflake report-table names and Metabase table ids. Requires the API user to have the `HabuIntelligenceAdmin` permission in addition to `read:cleanrooms` scope on the API key. parameters: - name: cleanroomId in: path description: The Cleanroom ID schema: type: string required: true - name: pageSize in: query description: The page size - default 50, max 200 schema: type: integer default: 50 maximum: 200 required: false - name: pageToken in: query description: Opaque pagination token returned by a previous call schema: type: string required: false responses: '200': description: Loaded questions page content: application/json: schema: $ref: '#/components/schemas/LoadedIntelligenceQuestions' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Intelligence - Internal /cleanrooms/{cleanroomId}/cleanroom-questions/{cleanroomQuestionId}/intelligence: get: x-internal: true summary: Get HI bindings for a Cleanroom Question operationId: getCleanroomQuestionIntelligence description: >- **Internal API — for internal LiveRamp consumption, not part of the supported external contract.** Resolves the Snowflake report and metadata table names and the Metabase table ids for a specific Cleanroom Question, plus its load status. Requires the API user to have the `HabuIntelligenceAdmin` permission in addition to `read:cleanrooms` scope on the API key. parameters: - name: cleanroomId in: path description: The Cleanroom ID schema: type: string required: true - name: cleanroomQuestionId in: path description: The Cleanroom Question ID schema: type: string required: true responses: '200': description: CRQ HI bindings content: application/json: schema: $ref: '#/components/schemas/CleanRoomQuestionIntelligence' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Intelligence - Internal /cleanrooms/{cleanroomId}/flows/{flowId}/intelligence: get: x-internal: true summary: Resolve flow outputs to HI report tables operationId: getFlowIntelligence description: >- **Internal API — for internal LiveRamp consumption, not part of the supported external contract.** For each question output in a Cleanroom flow, returns the corresponding Snowflake report table and Metabase table id. Optional flowRunId enriches each output with its run status. Requires the API user to have the `HabuIntelligenceAdmin` permission in addition to `read:cleanrooms` scope on the API key. parameters: - name: cleanroomId in: path description: The Cleanroom ID schema: type: string required: true - name: flowId in: path description: The Cleanroom Flow ID schema: type: string required: true - name: flowRunId in: query description: Optional flow run ID to enrich each output with run status schema: type: string required: false responses: '200': description: Flow HI bindings content: application/json: schema: $ref: '#/components/schemas/FlowIntelligence' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' tags: - Intelligence - Internal components: responses: BadRequest: description: Bad Request - Incorrect syntax or request content: application/json: schema: $ref: '#/components/schemas/ReturnObject' application/xml: schema: $ref: '#/components/schemas/ReturnObject' NotFound: description: The specified resource was not found content: application/json: schema: $ref: '#/components/schemas/ReturnObject' application/xml: schema: $ref: '#/components/schemas/ReturnObject' Unauthorized: description: Authorization information was missing or invalid content: application/json: schema: $ref: '#/components/schemas/ReturnObject' application/xml: schema: $ref: '#/components/schemas/ReturnObject' Forbidden: description: This action is not allowed content: application/json: schema: $ref: '#/components/schemas/ReturnObject' application/xml: schema: $ref: '#/components/schemas/ReturnObject' ResourceConflict: description: Conflict with the current state of the resource content: application/json: schema: $ref: '#/components/schemas/ReturnObject' application/xml: schema: $ref: '#/components/schemas/ReturnObject' PreconditionFailed: description: Precondition Failed - a required precondition for the request has not been met content: application/json: schema: $ref: '#/components/schemas/ReturnObject' application/xml: schema: $ref: '#/components/schemas/ReturnObject' InternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ReturnObject' application/xml: schema: $ref: '#/components/schemas/ReturnObject' QuestionRunStatusUpdate: description: Successfully sent the updated Cleanroom Question Run status content: application/json: schema: $ref: '#/components/schemas/ReturnObject' application/xml: schema: $ref: '#/components/schemas/ReturnObject' schemas: ProvisionCleanroomDestinationRequest: type: object properties: destinations: type: array items: type: string ProvisionCleanroomDestinationResponse: type: array items: $ref: '#/components/schemas/ActivationChannelProvision' ReviewDestinationProvisioningRequest: type: object required: - decision properties: decision: type: string description: Decision to approve or reject the destination provisioning request. enum: - APPROVE - REJECT ReviewDestinationProvisioningResponse: type: object properties: success: type: boolean description: true if the provisioning request decision was applied successfully. ActivationChannelProvision: type: object properties: timeAudit: $ref: '#/components/schemas/TimeAudit' userAudit: $ref: '#/components/schemas/UserAudit' cleanroomId: type: string partnerAccountId: type: string channelStatus: type: string ListCleanroomDestinationsResponse: type: object properties: partnerAccounts: type: array items: $ref: '#/components/schemas/CleanroomProvisionedDestination' total: type: integer format: int32 limit: type: integer format: int32 offset: type: integer format: int32 CleanroomProvisionedDestination: type: object properties: partnerAccount: $ref: '#/components/schemas/PartnerAccount' ownership: type: string description: OWNER when the destination belongs to the cleanroom owner organization; PARTNER otherwise. enum: - OWNER - PARTNER channelStatus: type: string description: Provisioning Status of the this destination in the cleanroom like 'ACTIVE_CHANNEL', 'PENDING_CHANNEL'. isUsedForActivation: type: boolean description: Whether this partner account is tied to activation in this cleanroom. CreateDataExportJobRequest: type: object properties: cleanroomQuestionId: type: string partnerAccountIds: type: array items: type: string exportParameters: type: array items: $ref: '#/components/schemas/ExportJobParameter' cleanroomDatasetId: type: string ExportJobParameter: type: object properties: name: type: string value: type: string CreateDataExportJobResponse: type: array items: type: string NodeExportRequest: type: object required: - nodeId - partnerAccountIds properties: nodeId: type: string description: The node UUID or display label to create exports for. partnerAccountIds: type: array items: type: string description: Partner account IDs to export to. One job is created per partner account. exportParameters: type: array items: $ref: '#/components/schemas/ExportJobParameter' description: Optional export parameters (e.g. S3_EXPORT_PATH, GCS_EXPORT_PATH). NodeExportResult: type: object properties: nodeId: type: string jobIds: type: array items: type: string FlowNodeExportJob: type: object properties: id: type: string name: type: string description: Display name of the export job. status: type: string description: Job status (ACTIVE or PAUSED). channelStatus: type: string description: Health status of the export channel. partnerAccountId: type: string partnerAccountName: type: string description: Display name of the partner account. createdAt: type: string format: date-time lastRunTime: type: string format: date-time description: Timestamp of the last execution of this export job. exportParameters: type: array description: Export parameters configured for this job (e.g. S3 path, format). items: $ref: '#/components/schemas/ExportJobParameter' NodeExportJobList: type: object properties: nodeId: type: string jobs: type: array items: $ref: '#/components/schemas/FlowNodeExportJob' BulkNodeStatusRequest: type: object required: - nodeIds - status properties: nodeIds: type: array items: type: string status: type: string description: Target status for all jobs under these nodes (ACTIVE or PAUSED). NodeStatusResult: type: object properties: nodeId: type: string success: type: boolean BulkNodeDeleteRequest: type: object required: - nodeIds properties: nodeIds: type: array items: type: string NodeDeleteResult: type: object properties: nodeId: type: string deletedJobIds: type: array items: type: string NodeJobRunsList: type: object properties: nodeId: type: string jobRuns: type: array items: $ref: '#/components/schemas/ExportJobRun' ChangeJobStatusRequest: type: object required: - status properties: status: type: string description: Target job status (ACTIVE or PAUSED). ChangeJobStatusResponse: type: object properties: success: type: boolean ListDataExportJobRunsResponse: type: object properties: organization: type: string question: type: string jobRunsByDate: type: array items: $ref: '#/components/schemas/ExportJobRunByDate' exportDetailParameters: type: array items: $ref: '#/components/schemas/ExportJobParameter' ExportJobRunByDate: type: object properties: date: type: string organization: type: string jobRuns: type: array items: $ref: '#/components/schemas/ExportJobRun' ExportJobRun: type: object properties: id: type: string jobId: type: string status: $ref: "#/components/schemas/JobRunStatus" submitTime: type: string format: date-time startTime: type: string format: date-time endTime: type: string format: date-time totalRecords: type: integer consentedRecords: type: integer cumulativeRecords: type: integer sourceJobRunID: type: string jobRunType: $ref: "#/components/schemas/JobRunType" details: $ref: "#/components/schemas/JobDetails" errorMessage: type: string JobRunStatus: type: string enum: - UNKNOWN_JOB_RUN_STATUS - QUEUED - PROCESSING - COMPLETE - FAILED - PARTIALLY_FAILED - THRESHOLD_WARNING - NO_NEW_USERS JobRunType: type: string enum: - UNKNOWN_JOB_RUN_TYPE - FULL_REFRESH - INCREMENTAL JobDetails: type: object properties: id: type: string name: type: string jobDetailParameters: type: array items: $ref: '#/components/schemas/JobDetailParameter' JobDetailParameter: type: object properties: label: type: string value: type: string DataExportJobs: type: array items: $ref: '#/components/schemas/DataExportJob' DataExportJob: type: object properties: ID: type: string name: type: string organizationID: type: string dataExportJobType: type: string status: $ref: '#/components/schemas/DataOutJobStatus' partnerAccount: $ref: '#/components/schemas/PartnerAccount' jobType: $ref: '#/components/schemas/PicanmixType' timeAudit: $ref: '#/components/schemas/TimeAudit' userAudit: $ref: '#/components/schemas/UserAudit' questionID: type: string questionName: type: string questionDisplayName: type: string jobLastRunTime: type: string format: date-time partnerAccountCrChannelStatus: type: string PartnerAccount: type: object properties: ID: type: string name: type: string organizationID: type: string partner: $ref: '#/components/schemas/Partner' credential: $ref: '#/components/schemas/PrimageOrganizationCredential' timeAudit: $ref: '#/components/schemas/TimeAudit' userAudit: $ref: '#/components/schemas/UserAudit' jobCount: type: array items: $ref: '#/components/schemas/JobCount' latestJobRunStatusCount: $ref: '#/components/schemas/LatestJobRunStatusCount' configStatus: $ref: '#/components/schemas/ConfigStatus' errorMessage: type: string publicKey: type: string ConfigStatus: type: string enum: - UNKNOWN_CONFIG_STATUS - CONFIG_PENDING - CONFIG_CONFIGURED - CONFIG_FAILED - CONFIG_AVAILABLE LatestJobRunStatusCount: type: object properties: numSuccess: type: integer format: int32 minimum: 0 numProcessing: type: integer format: int32 minimum: 0 numThresholdWarning: type: integer format: int32 minimum: 0 numPartiallyFailed: type: integer format: int32 minimum: 0 numFailed: type: integer format: int32 minimum: 0 numQueued: type: integer format: int32 minimum: 0 JobCount: type: object properties: jobType: type: string count: type: integer format: int32 minimum: 0 PrimageOrganizationCredential: type: object properties: ID: type: string name: type: string credentials: type: array items: $ref: '#/components/schemas/PrimageCredential' PrimageCredential: type: object properties: ID: type: string name: type: string value: type: string Partner: type: object properties: ID: type: string name: type: string displayName: type: string logoUrl: type: string credentialSourceName: type: string partnerConfigArray: $ref: '#/components/schemas/PartnerConfigs' timeAudit: $ref: '#/components/schemas/TimeAudit' userAudit: $ref: '#/components/schemas/UserAudit' type: $ref: '#/components/schemas/PicanmixType' credentialSources: type: array items: type: string partnerConfigMap: type: object additionalProperties: $ref: '#/components/schemas/PartnerConfigs' ListDestinationPartnersResponse: type: object properties: partners: type: array items: $ref: '#/components/schemas/Partner' ListDestinationsResponse: type: object properties: partnerAccounts: type: array items: $ref: '#/components/schemas/PartnerAccount' total: type: integer description: Total count of destination connections limit: type: integer description: The number of destination connections returned per page offset: type: integer description: The offset used for pagination CreateDestinationRequest: type: object required: - name - partner description: Request to create a destination connection (partner account). properties: name: type: string description: Display name for the destination connection partner: type: object required: - ID properties: ID: type: string description: Partner id (from list destination partners) description: Partner to connect; only ID is required for create credential: $ref: '#/components/schemas/PrimageOrganizationCredential' description: Optional; required for partners with a credential source. Use existing ID or name + credentials for new. publicKey: type: string description: Optional; only allowed for certain partners (e.g. S3 IAM Role Export, GCS Export) UpdateDestinationRequest: type: object description: Request to update a destination connection (partner account). properties: name: type: string description: Optional; if provided, updates name for the destination connection. credential: $ref: '#/components/schemas/PrimageOrganizationCredential' description: Optional; if provided, updates credential associated with this destination connection. publicKey: type: string description: Optional; if provided, updates public key associated with this destination connection. UpdateDestinationResponse: type: object description: Response after updating a destination connection (partner account). properties: partnerAccount: $ref: '#/components/schemas/PartnerAccount' PartnerConfigs: type: array items: $ref: '#/components/schemas/PartnerConfig' PartnerConfig: type: object properties: ID: type: string name: type: string index: type: integer format: int32 type: type: string encrypted: type: boolean DataOutJobStatus: type: string enum: - UNKNOWN_JOB_STATUS - ACTIVE - PAUSED PicanmixType: type: string enum: - UNKNOWN_PICANMIX_TYPE - USER_LIST - OFFLINE_CONVERSIONS - EXPORTS - QUESTION_USER_LIST CreateFlowResponse: type: object properties: flowID: type: string description: The ID of the created flow success: type: boolean description: Whether the flow creation was successful message: type: string description: Additional information about the flow creation CreateFlowRequest: type: object required: - flowName - nodes properties: flowName: type: string description: The name of the flow. description: type: string description: A description of the flow. nodes: type: array items: $ref: '#/components/schemas/APINode' createNewVersion: type: boolean description: Whether to create a new version of the flow default: false versionMessage: type: string description: Version description provided by user GetFlowDecisionConfigurationResponse: type: object properties: decisionNodes: type: array items: $ref: '#/components/schemas/DecisionNodeResponse' cleanRoomOverride: type: boolean description: True if the config was resolved from the CRF-scoped override tier; false if from the base tier CreateOrUpdateFlowDecisionConfigurationRequest: type: object required: - decisionNodes properties: decisionNodes: type: array items: $ref: '#/components/schemas/DecisionNodeInput' cleanRoomOverride: type: boolean description: If true, write to the CRF-scoped override tier; if false, write to the base tier CreateOrUpdateFlowDecisionConfigurationResponse: type: object properties: success: type: boolean message: type: string decisionNodes: type: array items: $ref: '#/components/schemas/DecisionNodeInput' cleanRoomOverride: type: boolean description: True if config was written to the CRF-scoped override tier; false if written to the base tier DeleteFlowDecisionConfigurationResponse: type: object properties: success: type: boolean message: type: string deletedNodesCount: type: integer DecisionNodeResponse: type: object properties: nodeID: type: string nodeLabel: type: string conditionLogic: type: string conditions: type: array items: $ref: '#/components/schemas/DecisionConditionResponse' retryConfig: $ref: '#/components/schemas/RetryConfigResponse' conditionsFailAction: type: string description: Action when conditions fail (RETRY_WITH_PARAMETERS or END_FLOW) gatedEdges: $ref: '#/components/schemas/GatedEdgesResponse' DecisionConditionResponse: type: object properties: id: type: string sourceNodeID: type: string fieldName: type: string operator: type: string expectedValue: type: string expectedValueEnd: type: string expectedValues: type: array items: type: string aggregation: type: string conditionOrder: type: integer RetryConfigResponse: type: object properties: maxRetries: type: integer retryNodeIDs: type: array items: type: string retryFromLevel: type: integer configurations: type: array items: $ref: '#/components/schemas/NodeConfigurationResponse' NodeConfigurationResponse: type: object properties: id: type: string nodeID: type: string name: type: string configIndex: type: integer parameters: type: object additionalProperties: type: string GatedEdgesResponse: type: object properties: truePath: type: array items: $ref: '#/components/schemas/EdgeReferenceResponse' EdgeReferenceResponse: type: object properties: edgeID: type: string parentNodeID: type: string childNodeID: type: string DecisionNodeInput: type: object required: - nodeIdentifier properties: nodeIdentifier: type: string description: Node UUID or label conditionLogic: type: string description: Logic for combining conditions (AND only supported currently) default: AND conditions: type: array items: $ref: '#/components/schemas/DecisionConditionInput' retryConfig: $ref: '#/components/schemas/RetryConfigInput' conditionsFailAction: type: string description: Action when conditions fail (RETRY_WITH_PARAMETERS or END_FLOW) default: RETRY_WITH_PARAMETERS gatedEdges: $ref: '#/components/schemas/GatedEdgesInput' DecisionConditionInput: type: object required: - fieldName - operator - aggregation properties: id: type: string description: Condition ID (omit for create, include for update) fieldName: type: string operator: type: string expectedValue: type: string expectedValueEnd: type: string expectedValues: type: array items: type: string aggregation: type: string default: FIRST conditionOrder: type: integer default: 0 RetryConfigInput: type: object properties: maxRetries: type: integer default: 0 retryNodeIdentifiers: type: array items: type: string description: Node UUIDs or labels for retry configurations: type: array items: $ref: '#/components/schemas/NodeConfigurationInput' NodeConfigurationInput: type: object properties: id: type: string description: Configuration ID (omit for create, include for update) name: type: string configIndex: type: integer parameters: type: object additionalProperties: type: string GatedEdgesInput: type: object properties: truePath: type: array items: $ref: '#/components/schemas/EdgeReferenceInput' falsePath: type: array items: $ref: '#/components/schemas/EdgeReferenceInput' EdgeReferenceInput: type: object required: - parentNodeIdentifier - childNodeIdentifier properties: parentNodeIdentifier: type: string description: Parent node UUID or label childNodeIdentifier: type: string description: Child node UUID or label ListCleanroomFlowsRequest: type: object properties: filters: type: array items: type: object sortBy: type: object additionalProperties: true limit: type: integer format: int32 default: 0 offset: type: integer format: int32 default: 0 search: type: string ListCleanroomFlowsResponse: type: object properties: cleanRoomFlows: type: array items: $ref: '#/components/schemas/ListItemCleanroomFlow' count: type: integer format: int32 ListCleanroomFlowRunsResponse: type: object properties: cleanRoomFlowRuns: type: array items: $ref: '#/components/schemas/FlowRunMetadata' count: type: integer format: int32 GetCleanroomFlowResponse: type: object description: Response object containing the cleanroom flow details properties: cleanRoomFlow: $ref: '#/components/schemas/ListItemCleanroomFlow' ListItemCleanroomFlow: type: object properties: ID: type: string displayID: type: string cleanRoomID: type: string flowID: type: string status: type: string stage: type: string timeAudit: $ref: '#/components/schemas/TimeAudit' userAudit: $ref: '#/components/schemas/NestedUserAudit' flow: $ref: '#/components/schemas/ListItemFlow' runCount: type: integer format: int32 CryptoKeyID: type: string flowVersion: type: integer format: int32 isProvisioned: type: boolean billableConfigID: type: string isBillable: type: boolean ownerOrganizationID: type: string ListItemFlow: type: object properties: ID: type: string displayID: type: string name: type: string description: type: string organizationID: type: string status: type: string timeAudit: $ref: '#/components/schemas/TimeAudit' userAudit: $ref: '#/components/schemas/NestedUserAudit' nodes: type: array items: type: object edges: type: array items: type: object version: type: integer format: int32 NestedUserAudit: type: object properties: createdByUser: $ref: '#/components/schemas/UserRefInfo' updatedByUser: $ref: '#/components/schemas/UserRefInfo' UserRefInfo: type: object properties: ID: type: string name: type: string email: type: string APINode: type: object required: - nodeIdentifier properties: nodeIdentifier: type: string description: Unique identifier for the node within the flow. edges: type: array description: Edges connecting this node to other nodes with dataset mappings items: $ref: '#/components/schemas/APIEdge' settings: $ref: '#/components/schemas/NodeSettings' tags: type: string description: Comma-separated list of branch tags for the node APIEdge: type: object required: - datasetMacro - parentID properties: datasetMacro: type: string description: The dataset macro/type identifier parentID: type: string description: The nodeIdentifier of the parent node fieldMappings: type: array description: Field mappings between parent and current node items: $ref: '#/components/schemas/APIFieldMapping' APIFieldMapping: type: object required: - datasetFieldName - parentFieldName properties: datasetFieldName: type: string description: The field name in the dataset parentFieldName: type: string description: The field name from the parent node NodeSettings: type: object properties: computeCapacity: type: string description: Compute capacity for the node access: type: array items: type: string description: List of organization IDs that have access to this node. AssignFlowDatasetsRequest: type: object required: - nodeDatasets properties: nodeDatasets: type: array description: Dataset assignments for each node items: $ref: '#/components/schemas/NodeDatasetAssignment' AssignFlowDatasetsResponse: type: object properties: success: type: boolean description: Success indicator message: type: string description: Status message assignedDatasets: type: array description: Assigned datasets with resolved information items: $ref: '#/components/schemas/AssignedDatasetResult' NodeDatasetAssignment: type: object properties: nodeIdentifier: type: string description: Node display ID or name datasets: type: array description: Dataset assignments for this node items: $ref: '#/components/schemas/DatasetAssignment' DatasetAssignment: type: object properties: datasetName: type: string description: Dataset name (will be resolved to ID) datasetMacro: type: string description: Dataset macro/type organizationName: type: string description: Organization name from stakeholders list (will be resolved to ownership) fieldMappings: type: array description: Field mappings using field names items: $ref: '#/components/schemas/FieldMapping' FieldMapping: type: object properties: questionFieldName: type: string description: Question field name in the node datasetFieldName: type: string description: Dataset field name to map to AssignedDatasetResult: type: object properties: nodeIdentifier: type: string description: Node display ID datasetName: type: string description: Dataset name that was assigned datasetID: type: string description: Dataset ID (resolved) organizationName: type: string description: Organization name from request ownership: $ref: '#/components/schemas/DatasetOwnership' description: Resolved ownership (OWNER, PARTNER) datasetMacro: type: string description: Dataset macro/type status: type: string description: Assignment status DatasetOwnership: type: string enum: - OWNER - PARTNER description: Dataset ownership type GetDatasetOrganizationsRequest: type: object required: - datasetIdentifiers properties: datasetIdentifiers: type: array description: List of dataset identifiers (UUIDs or names) items: type: string GetDatasetOrganizationsResponse: type: object properties: success: type: boolean description: Success indicator message: type: string description: Status message datasetOrganizations: type: array description: Dataset organization information items: $ref: '#/components/schemas/DatasetOrganizationInfo' DatasetOrganizationInfo: type: object properties: requestedIdentifier: type: string description: Dataset identifier from request (UUID or name) datasetID: type: string description: Dataset ID (resolved UUID) datasetName: type: string description: Dataset name organizationID: type: string description: Organization ID that owns the dataset organizationName: type: string description: Organization name that owns the dataset found: type: boolean description: Whether the dataset was found errorMessage: type: string description: Error message if not found or inaccessible CreateCleanroomFlowRunInput: type: object properties: name: type: string description: Name of the flow run pauseLevelID: type: string description: Optional pause level ID at which to pause execution nodes: type: array description: Nodes with parameters items: $ref: '#/components/schemas/NodeParametersEntry' branches: type: string description: Branch names to filter flow execution (comma-separated) excludeNodesWithoutTags: type: boolean description: Exclude nodes without tags when branch filtering is enabled ignoreParentChildRule: type: boolean description: Ignore parent-child dependency rules for normal flow runs includeMismatchingTaggedNodes: type: boolean description: Include unmatched nodes when branch filtering is enabled datasetAssignments: type: array description: Dataset assignments for each node items: $ref: '#/components/schemas/NodeDatasetAssignment' NodeParametersEntry: type: object properties: nodeIdentifier: type: string description: Node identifier parameters: type: object description: Parameters for this node additionalProperties: type: string FlowRunMetadata: description: Model containing the Cleanroom Flow Run Metadata properties: id: type: string name: type: string status: type: string submittedAt: type: string format: date-time executedAt: type: string format: date-time completedAt: type: string format: date-time flowRunParameters: type: array items: $ref: '#/components/schemas/FlowRunParameter' runMessage: type: string GetCleanroomFlowRunParametersResponse: type: object properties: flowRunParameters: type: array items: $ref: '#/components/schemas/FlowRunMetadataParameter' FlowRunParameter: type: object properties: nodeId: type: string parameters: type: object additionalProperties: $ref: '#/components/schemas/FlowRunParameterValue' FlowRunParameterValue: type: object properties: value: type: string parameterType: $ref: '#/components/schemas/ParameterType' ParameterType: type: string enum: [RUN_TIME_PARAMETER, PARTITION_PARAMETER, ARTIFACT_FILE_METADATA, PARAMETER_UNKNOWN] FlowRunMetadataParameter: type: object properties: nodeId: type: string nodeQuestionName: type: string parameterMetadataList: type: array items: $ref: '#/components/schemas/ParameterInfo' ParameterInfo: type: object properties: Id: type: string name: type: string displayName: type: string index: type: integer fieldType: $ref: '#/components/schemas/UnhygienixFieldType' parameterType: $ref: '#/components/schemas/ParameterType' UnhygienixFieldType: type: string enum: [FIELD_TYPE_UNKNOWN, INTEGER, STRING, DATE, TIMESTAMP, DOUBLE, BIGINT, BOOLEAN, DECIMAL, LONG] PreviewFlowRunParametersInput: type: object description: Input for previewing flow run parameters properties: branches: type: string description: Branch names to filter flow execution (comma-separated) excludeNodesWithoutTags: type: boolean description: Exclude nodes without tags when branch filtering is enabled ignoreParentChildRule: type: boolean description: Ignore parent-child dependency rules includeMismatchingTaggedNodes: type: boolean description: Include unmatched nodes when branch filtering is enabled datasetAssignments: type: array description: Dataset assignments for each node (used to derive partition parameters) items: $ref: '#/components/schemas/NodeDatasetAssignment' parentFlowRunId: type: string description: When set, preview is treated as a replay of this parent flow run PreviewFlowRunParametersResponse: type: object properties: nodes: type: array items: $ref: '#/components/schemas/FlowNodeParameterPreview' FlowNodeParameterPreview: type: object description: Per-node parameter preview containing question metadata and expected parameters properties: nodeId: type: string description: Internal node UUID nodeIdentifier: type: string description: Display label of the node questionName: type: string description: Title of the question associated with this node questionVersion: type: integer description: Version of the question nodeLevel: type: integer description: DAG depth of the node in the flow parameters: type: array description: Combined list of runtime and partition parameters items: $ref: '#/components/schemas/ParameterInfo' ResumeCleanroomFlowRunInput: type: object properties: pauseLevelID: type: string description: Optional pause level ID at which to pause execution ResumeCleanroomFlowRunApiResponse: type: object properties: success: type: boolean ReplayCleanroomFlowRunInput: type: object properties: startLevelID: type: string description: Start level ID for the replay pauseLevelID: type: string description: Optional pause level ID at which to pause execution nodes: type: array description: Nodes with parameters items: $ref: '#/components/schemas/NodeParametersEntry' branches: type: string description: Branch names to filter flow execution (comma-separated) excludeNodesWithoutTags: type: boolean description: Exclude nodes without tags when branch filtering is enabled includeMismatchingTaggedNodes: type: boolean description: Include unmatched nodes when branch filtering is enabled datasetAssignments: type: array description: Dataset assignments for each node items: $ref: '#/components/schemas/NodeDatasetAssignment' name: type: string description: Optional name for the replay CleanRoomExecutionInstanceInput: type: object properties: executionInstanceName: type: string cleanRoomExecutionTemplateId: type: string codeVersion: type: string datasets: type: array items: $ref: '#/components/schemas/Datasets' modelsToRun: type: array items: type: string outputType: type: string runtimeParameters: $ref: '#/components/schemas/CleanroomQuestionRunPartitionParameters' MeasurementExecutionTemplateResponse: type: object properties: success: type: boolean cleanRoomExecutionInstanceId: type: string cleanRoomExecutionTemplateId: type: string CleanRoomMeasurementExecutionInstanceStatusResponse: type: object properties: Id: type: string status: type: string startTime: type: string endTime: type: string name: type: string detailedStatusReport: type: string cleanRoomExecutionTemplateID: type: string outputs: $ref: '#/components/schemas/ExecutionInstanceOutputs' ExecutionInstanceOutputs: description: Clean Room Measurement Execution Instance Outputs type: array items: type: object properties: name: type: string description: Category of the output status: type: string description: Status of the specific run message: type: string description: Detailed error message if any href: type: string description: The api to be invoked to get output details method: type: string description: Http method ReplayCleanroomFlowRunApiResponse: type: object properties: success: type: boolean description: Success indicator cleanRoomFlowRunID: type: string description: The new flow run ID created for the replay GetCleanroomFlowRunStatusResponse: type: object properties: status: type: string CleanroomFlowRunReport: type: object properties: title: type: string metadata: $ref: '#/components/schemas/CleanroomFlowRunReportMetadata' recordStats: type: array items: $ref: '#/components/schemas/CleanroomFlowRunRecordStat' CleanroomFlowRunReportMetadata: type: object properties: facts: type: array items: type: string dimensions: type: array items: type: string CleanroomFlowRunRecordStat: type: object properties: dimensions: type: array items: $ref: '#/components/schemas/CleanroomFlowRunRecordStatDimension' records: type: array items: $ref: '#/components/schemas/CleanroomFlowRunReportStatRecord' CleanroomFlowRunRecordStatDimension: type: object properties: key: type: string value: type: string CleanroomFlowRunReportStatRecord: type: object properties: key: type: string value: type: string CleanroomFlowRunOutputNodes: type: array items: $ref: '#/components/schemas/GetCleanroomFlowRunOutputNodeResponseObject' GetCleanroomFlowRunOutputNodeResponseObject: type: object properties: node: $ref: '#/components/schemas/CleanroomFlowRunOutputNode' runStatus: type: string runID: type: string CleanroomFlowRunOutputNode: type: object properties: id: type: string flowId: type: string label: type: string nodeType: type: string referenceId: type: string positionX: type: integer positionY: type: integer timeAudit: $ref: '#/components/schemas/TimeAudit' userAudit: $ref: '#/components/schemas/UserAudit' level: type: integer title: type: string cleanroomQuestionId: type: string UpdateCleanroomDatasetPartnerAssignmentParameters: type: object properties: datasetId: type: string partnerCanAssign: type: boolean UpdateCleanroomDatasetPartnerAssignmentRequest: type: array items: $ref: "#/components/schemas/UpdateCleanroomDatasetPartnerAssignmentParameters" UpdateCleanroomDatasetPartnerAssignmentResponse: type: object properties: success: type: boolean CleanRoomType: description: Model containing Cleanroom Type properties: id: type: string name: type: string displayName: type: string listQuestionSupport: type: boolean analyticalQuestionSupport: type: boolean wallGarden: type: boolean CleanRoomTypes: type: array items: $ref: "#/components/schemas/CleanRoomType" CleanRoom: description: Model containing the Cleanroom details properties: id: type: string displayId: type: string name: type: string description: type: string ownerOrganization: type: string partners: type: array items: type: string startAt: type: string endAt: type: string questionsCount: type: integer status: type: string cleanRoomParameters: type: object additionalProperties: type: string timeAudit: $ref: "#/components/schemas/TimeAudit" cleanRoomTypeId: type: string CleanRoomQuestion: description: Model containing the Cleanroom Question details properties: id: type: string name: type: string displayId: type: string questionType: type: string category: type: string createdOn: type: string format: date-time status: type: string dataTypes: type: object additionalProperties: type: string # example: # dataImportType: CRM # macro: CRM parameters: type: object additionalProperties: type: string # example: # name: Age # displayName: Age dimension: type: object additionalProperties: type: string # example: # name: Month # displayName: Month metrics: type: object additionalProperties: type: string # example: # name: Users # displayName: Users cleanroomId: type: string ownerOrganizationId: type: string customerQueryTemplate: type: string questionId: type: string QuestionRunStatus: description: Model containing the Cleanroom Question Run status details required: - id - status properties: id: type: string status: type: string postRunDetails: type: object additionalProperties: type: string example: detail1: Value1 detail2: Value2 QuestionRunMetadata: description: Model containing the Cleanroom Question Run Metadata properties: id: type: string name: type: string status: type: string submittedAt: type: string format: date-time executedAt: type: string format: date-time completedAt: type: string format: date-time parameters: type: object additionalProperties: type: string example: parameter1: Value1 parameter2: Value2 partitionParameters: $ref: '#/components/schemas/CleanroomQuestionRunPartitionParameters' runMetadata: type: object properties: dataOutLocation: type: string datasetParameters: type: array items: properties: dataSetId: type: string dataSetName: type: string dataInLocation: type: string hashedColumns: type: array items: type: string example: [ "column1", "column2", "column3" ] saltKey: type: string failureReason: type: string isRetryable: type: boolean runMessage: type: string questionVersion: type: integer QuestionRunCreateParameters: description: Model containing the Cleanroom Question Run parameters for a Create Run request required: - name properties: name: type: string parameters: type: object description: Key-value pairs for question parameters additionalProperties: type: string example: param1: Value1 param2: Value2 SegmentationRequest: description: Request body for enabling or updating segmentation for a Cleanroom Question required: - assetDisplayName - rampID properties: assetDisplayName: type: string description: Display name for the asset example: "CRQ-065269-Feb2" rampID: type: string description: Ramp ID type example: "NAME" SegmentationResponse: description: Response when segmentation is enabled or updated successfully x-class-extra-annotation: "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)" properties: assetId: type: string description: The created or updated asset ID example: "5f3e2b1a-90ab-4cde-8fgh-1234567890ab" success: type: boolean description: Indicates whether the operation succeeded example: true QuestionRunResultData: description: Model containing the Cleanroom Question Run Result Data properties: metadata: type: array items: $ref: '#/components/schemas/RunTableMetadata' stats: type: array items: $ref: '#/components/schemas/RunTableStats' count: type: integer multipleOutputs: type: array items: type: string RunTableMetadata: type: object properties: fieldName: type: string dataType: type: string columnName: type: string RunTableStats: type: object additionalProperties: type: string UpdateCleanroomQuestionComputeCapacityRequest: type: object properties: computeCapacity: $ref: '#/components/schemas/CleanroomQuestionComputeCapacity' description: The new warehouse size for the cleanroom question CleanroomQuestionComputeCapacity: type: string description: possible compute capacities for cleanroom questions. This can be set for Hybrid, LinkedIn, Snowflake and Habu Confidential Compute. Snowflake cleanroom questions can only be DEFAULT or LARGE. enum: - DEFAULT - MEDIUM - LARGE - XLARGE UpdateCleanroomQuestionComputeCapacityResponse: type: object properties: success: type: boolean description: Indicates if the warehouse size was updated successfully QuestionCreationResponse: description: Model containing the response for a question creation request properties: success: type: boolean description: Indicates if the question was created successfully message: type: string description: Message indicating what went wrong if the question was not created successfully questionID: type: string description: The ID of the created question QuestionUpdateResponse: description: Model containing the response for a question update request properties: success: type: boolean description: Indicates if the question was created updated message: type: string description: Message indicating what went wrong if the question was not created successfully question: $ref: '#/components/schemas/QuestionDetails' Question: description: Model containing the Question details type: object properties: questionDetails: $ref: '#/components/schemas/QuestionDetails' id: type: string cleanRoomID: type: string organizationID: type: string settings: $ref: '#/components/schemas/CreateQuestionSettings' DeleteQuestionResponse: type: object properties: success: type: boolean description: Indicates if the question was deleted successfully CreateQuestionSettings: description: Settings for how the create question api will behave type: object properties: queryValidation: type: boolean description: If true, the query will be validated before being saved Datasets: description: Detailed information about the datasets type: object properties: datasetType: type: string subType: type: string datasetId: type: string macro: type: string partitionValues: $ref: '#/components/schemas/CleanroomQuestionRunPartitionParameters' bfmtJoinColumns: type: array items: $ref: '#/components/schemas/BfmtJoinColumns' BfmtJoinColumns: description: Detailed information about the Bfmt Join Columns type: object properties: key: type: string value: type: string QuestionDetails: description: Detailed information about the question type: object properties: title: type: string displayId: type: string category: type: string tags: type: array items: type: string description: type: string version: type: integer hasDateParameters: type: boolean hasDateFilter: type: boolean isAnalytics: type: boolean isUserListQuestion: type: boolean isCleanComputeQuestion: type: boolean outputFormat: type: string visualization: type: string hasMultipleOutputs: type: boolean queryDetails: type: array items: $ref: '#/components/schemas/QueryDetail' dataTypes: type: array items: $ref: '#/components/schemas/QuestionDataType' parameters: type: array items: $ref: '#/components/schemas/Parameter' measures: type: array items: $ref: '#/components/schemas/Measure' dimensions: type: array items: $ref: '#/components/schemas/Dimension' userListOutputs: type: array items: $ref: '#/components/schemas/UserListOutput' QueryDetail: description: A single query detail within the question type: object properties: query: type: string cleanRoomType: $ref: '#/components/schemas/CleanRoomTypeRequest' queryLanguage: type: string QuestionDataType: description: Details about the data types used in the question type: object properties: id: type: string macro: type: string datasetID: type: string importDataType: $ref: '#/components/schemas/QuestionImportDataType' dataSetTypeFields: type: array items: $ref: '#/components/schemas/DataSetTypeField' QuestionImportDataType: type: string enum: - CodeContainer - Transaction - Metadata - PageData - AdExposure - ServiceContainer - DatabricksNotebook - TTDREDSFeed - UserData - MLModel - ConversionEvents - TrainModel - AdLogs - MemberProfile - AADataFeed - TTDREDSMetadata - Conversion - BinaryData - SparkCodeContainer - DatabricksContainer - AdEngagement - OfflineConversions - UserSegmentMap - LinkedInMarketingSolutionsConfigData - GoogleCloudBigQuery - IDENTITY_GRAPH - AdsDataFeed - CRM - Generic - AMCAdsDataFeed - Campaign - CampaignMapping - WHEEL ImportDataTypes: type: array items: $ref: '#/components/schemas/ImportDataType' ImportDataType: type: object properties: id: type: string name: type: string displayName: type: string DataSetTypeField: description: Fields associated with a specific data type type: object properties: name: type: string type: type: string ValueConstraintType: type: string description: Type of value constraint applied to a parameter enum: - ENFORCED_LIST - DEFAULT_VALUE Parameter: description: A parameter used within the question type: object properties: name: type: string type: type: string displayName: type: string description: Parameter Display Name description: type: string description: Parameter Description exampleValue: type: string description: Parameter Example Value format: type: string description: Parameter Format isSynced: type: boolean description: Parameter Sync Status Measure: description: Metrics associated with the question type: object properties: name: type: string type: type: string isIdentity: type: boolean noise: type: boolean Dimension: description: Dimensions used within the question type: object properties: name: type: string type: type: string UserListOutput: description: Output for user lists associated with the question type: object properties: name: type: string type: type: string CleanroomQuestionRunAuditDetails: description: Model containing the Cleanroom Question Run Audit Details properties: cleanroomQuestionRunId: type: string auditDetails: type: array items: $ref: '#/components/schemas/AuditDetails' AuditDetails: properties: eventTime: type: string format: date-time eventType: type: string # example: init message: type: string # example: Run Triggered details: additionalProperties: type: object # example: # triggeredBy: ["platform_admin@habu.com"] # parameters: ["DATE_ID::32323"] CleanroomQuestionRunActivationSummary: description: Model containing the Cleanroom Question Run Activation Summary properties: cleanroomQuestionRunId: type: string cleanroomQuestionRunName: type: string activationSummary: type: array items: $ref: '#/components/schemas/ActivationSummary' ActivationSummary: properties: activationPartner: type: string activationChannel: type: string segmentCode: type: string identityType: type: string lastProcessed: type: string format: date-time recordsSent: type: integer status: type: string CleanRooms: description: A list of Cleanrooms and their details type: array items: $ref: '#/components/schemas/CleanRoom' CleanRoomQuestions: description: A list of Cleanroom Questions and their details type: array items: $ref: '#/components/schemas/CleanRoomQuestion' CleanRoomQuestionResultShares: description: A list of Cleanroom Result Shares type: array items: $ref: '#/components/schemas/CleanRoomQuestionResultShare' CleanroomQuestionRunPartitionParameters: description: A list of Cleanroom Question Run Partition Parameters type: array items: $ref: '#/components/schemas/CleanroomQuestionRunPartitionParameter' CleanRoomQuestionTags: description: A list of Cleanroom Question Tags type: array items: type: string GetCleanRoomQuestionParametersResponse: type: object properties: name: type: string displayId: type: string parameters: $ref: '#/components/schemas/CleanroomQuestionParameters' CleanroomQuestionParameters: description: A list of Cleanroom Question Parameters type: array items: $ref: '#/components/schemas/CleanroomQuestionParameter' UpsertCleanRoomQuestionResultSharesApiInput: description: A list of Cleanroom Result Shares type: array items: $ref: '#/components/schemas/UpsertCleanRoomQuestionResultShares' QuestionRunsMetadata: description: A list of Cleanroom Question Runs and their Metadata type: array items: $ref: '#/components/schemas/QuestionRunMetadata' DeleteResponse: type: object properties: success: type: boolean CleanRoomRequest: type: object properties: name: type: string description: Name of the Cleanroom description: type: string description: Description of the Cleanroom startAt: type: string description: Start Date for the cleanroom, use format yyyy-mm-dd endAt: type: string description: End Date for the cleanroom, use format yyyy-mm-dd type: $ref: "#/components/schemas/CleanRoomTypeRequest" parameters: $ref: "#/components/schemas/CleanRoomParameterRequest" required: - organizationId - name - startAt - type CleanRoomParameterRequest: type: object required: - CLOUD - REGION properties: REGION: type: string enum: [ "REGION_EU", "REGION_US", "REGION_APAC", "REGION_AFRICA", "REGION_UAE" ] SUB_REGION: type: string enum: [ "SUB_REGION_EAST1", "SUB_REGION_WEST1", "SUB_REGION_NORTH1", "SUB_REGION_SOUTH1", "SUB_REGION_CENTRAL1", "SUB_REGION_NORTHEAST1", "SUB_REGION_SOUTHEAST1", "SUB_REGION_ME_CENTRAL1", "SUB_REGION_EU_WEST4", "SUB_REGION_EAST2" ] CLOUD: type: string enum: [ "CLOUD_AWS", "CLOUD_GCP", "CLOUD_AZURE" ] ENABLE_EXPORT, ENABLE_VIEW_QUERY, ENABLE_HABU_INTELLIGENCE, ENABLE_PAIR, ENABLE_OPJA: type: string enum: ["true", "false"] description: "Each of these values take a true or false, please separate them for example ENABLE_EXPORT = true, ENABLE_VIEW_QUERY = true" additionalProperties: type: string enum: ["DATA_DECIBEL", "CROWD_SIZE"] CleanRoomTypeRequest: type: string enum: - Hybrid - Snowflake - Databricks - Google - AWS - Facebook - AMC - ADH - LinkedIn - HabuConfidentialComputing AddCleanRoomPartnerRequest: type: object properties: partnerAdminEmail: type: string description: Cleanroom Partner Admin's Email invitationNote: type: string default: We are making some insights based on our data available to you in a Clean Room and would like to invite you to take a look. Getting started is super easy. CleanRoomPartnerResponse: type: object properties: id: type: string description: Cleanroom Partner ID partnerOrganizationId: type: string description: Cleanroom Partner Organization ID name: type: string description: Partner Organization name userCount: type: integer description: CleanRoom User count cleanRoomUsers: $ref: "#/components/schemas/CleanRoomUsers" CleanRoomPartners: description: A list of Cleanroom Partners and their details type: array items: $ref: '#/components/schemas/CleanRoomPartnerResponse' OrganizationUsers: description: A list of Organization Users and their details type: array items: $ref: '#/components/schemas/OrganizationUser' OrganizationUser: type: object properties: roleName: type: string description: Name of the user role in the organization user: $ref: "#/components/schemas/User" User: type: object properties: id: type: string description: User ID name: type: string description: Name of the user email: type: string GetCleanroomOrganizationUsersResponse: type: array items: $ref: "#/components/schemas/User" AddCleanRoomUserRequest: type: object properties: userId: type: string description: (deprecated) id of the user in the organization roleId: type: string description: (deprecated) id of Role that you want to assign the user email: type: string description: email of the user in the organization role: type: string description: Role that you want to assign the user CleanRoomUser: type: object properties: id: type: string description: Cleanroom User ID cleanRoomId: type: string description: Cleanroom ID user: $ref: "#/components/schemas/User" timeAudit: $ref: "#/components/schemas/TimeAudit" userAudit: $ref: "#/components/schemas/UserAudit" role: $ref: "#/components/schemas/CleanRoomRole" CleanRoomUsers: description: A list of Cleanroom Users and their details type: array items: $ref: '#/components/schemas/CleanRoomUser' CleanRoomRole: properties: id: type: string name: type: string cleanRoomId: type: string organizationId: type: string CleanRoomRoles: description: A list of Cleanroom Roles type: array items: $ref: '#/components/schemas/CleanRoomRole' InviteStatus: type: string enum: - PENDING - ACCEPTED - DECLINED - INVITE_STATUS_UNKNOWN - REQUEST_SENT_ADMIN - IN_PROGRESS - DECLINED_BY_ADMIN QuestionPermission: type: string enum: - UNKNOWN_PERMISSION - VIEW_CODE - EDIT - CLONE - RUN - IN_PROGRESS - VIEW_RESULTS - DELETE FlowPermission: type: string enum: - UNKNOWN_FLOW_PERMISSION - EDIT_FLOW - DELETE_FLOW - CLONE_FLOW - RUN_FLOW - VIEW_RESULTS_FLOW QuestionAccess: type: string enum: - UNKNOWN_ACCESS - QUESTION_OWNER_ONLY - ALL_CLEAN_ROOM_PARTNERS InvitationDetail: type: object properties: id: type: string description: Invitation detail ID organizationId: type: string description: Inviter's organization ID partnerOrganizationId: type: string description: Invitee's organization. This will be filled when invitee choose organization to link cleanroom. cleanRoomId: type: string description: Inviter's cleanroom ID invitationNote: type: string description: Invitation note partnerAdminEmail: type: string description: Invitee's email InvitorEmail: type: string description: Inviter's email Status: $ref: "#/components/schemas/InviteStatus" timeAudit: $ref: "#/components/schemas/TimeAudit" CleanRoomQuestionResponse: type: object properties: id: type: string description: Cleanroom question ID cleanRoomId: type: string description: Cleanroom ID ownerOrganizationId: type: string description: OrganizationID that brought the question into the clean room questionId: type: string description: Question ID title: type: string description: Title of the Question category: type: string description: Category of the Question stage: type: string description: Stage of the Cleanroom Question status: type: string latestRun: $ref: '#/components/schemas/CleanRoomQuestionRun' datasetCount: type: integer description: Count of required datasets for this Question runCount: type: integer description: Count of Report Runs isEditable: type: boolean description: Is Editable questionStatus: type: string questionVersion: type: integer description: Question Version displayId: type: string description: display ID description: type: string description: Description of the Question CleanRoomQuestionRun: type: object properties: runId: type: string description: Run ID status: type: string startTimestamp: type: string format: date-time description: Start Timestamp of the Run endTimestamp: type: string format: date-time description: End Timestamp of the Run CleanRoomQuestionResultShare: type: object properties: id: type: string description: Cleanroom Question Result Share ID PartnerID: type: string description: Partner ID PostRunQueryID: type: string description: Post Run Query ID CleanroomQuestionRunPartitionParameter: type: object properties: name: type: string description: Name of Cleanroom Question Run Partition Parameter value: type: string description: Value of Cleanroom Question Run Partition Parameter dataType: type: string description: Data Type of Cleanroom Question Run Partition Parameter GetAllRunSchedulesForCleanroomQuestionResponse: type: array items: $ref: '#/components/schemas/GetCleanroomQuestionRunScheduleResponse' DeleteCleanroomQuestionRunScheduleResponse: type: object properties: success: type: boolean GetCleanroomQuestionRunScheduleResponse: type: object properties: id: type: string name: type: string description: type: string ownerId: type: string parameters: type: object additionalProperties: $ref: '#/components/schemas/ScheduleQuestionParameters' startDateTime: type: string format: date-time endDateTime: type: string format: date-time active: type: boolean repeatFrequency: $ref: '#/components/schemas/RepeatFrequency' createdBy: type: string modifiedBy: type: string createdDate: type: string format: date-time modifiedDate: type: string format: date-time daysOfWeek: type: array items: $ref: '#/components/schemas/DaysOfWeek' repeatDayofMonth: type: array items: type: integer format: int64 displayId: type: string ScheduleQuestionParameters: type: object properties: name: type: string value: type: string qualifier: $ref: '#/components/schemas/DateQualifier' type: type: string isStatic: type: boolean parameterType: type: string DateQualifier: type: string enum: - DAYS - MONTHS CreateCleanroomQuestionRunScheduleResponse: type: object properties: id: type: string CreateCleanroomQuestionRunScheduleInput: type: object properties: parameters: $ref: '#/components/schemas/CleanroomQuestionRunScheduleParameters' daysOfWeek: type: array items: $ref: '#/components/schemas/DaysOfWeek' repeatDayofMonth: type: array items: type: integer startSchedule: type: string name: type: string repeatFrequency: $ref: '#/components/schemas/RepeatFrequency' endSchedule: type: string CleanroomQuestionRunScheduleParameters: description: A list of Cleanroom Question Run Schedule Parameters type: array items: $ref: '#/components/schemas/CleanroomQuestionRunScheduleParameter' CleanroomQuestionRunScheduleParameter: type: object properties: name: type: string description: Name of Cleanroom Question Run Schedule Parameter value: type: string description: Value of Cleanroom Question Run Schedule Parameter dataType: type: string description: Data Type of Cleanroom Question Run Schedule Parameter. parameterType: $ref: "#/components/schemas/CleanroomQuestionRunParameterType" dateQualifier: $ref: '#/components/schemas/DateQualifier' dateType: $ref: "#/components/schemas/CleanroomQuestionRunScheduleDateParameterType" CleanroomQuestionRunScheduleDateParameterType: type: string enum: - RELATIVE - ABSOLUTE RepeatFrequency: type: string enum: - FREQUENCY_UNKNOWN - DAILY - WEEKLY - MONTHLY DaysOfWeek: type: string enum: - DAY_OF_WEEK_UNKNOWN - SUN - MON - TUE - WED - THU - FRI - SAT CleanroomQuestionRunParameterType: type: string enum: - PARTITION_PARAMETER - RUN_PARAMETER UpsertCleanRoomQuestionResultShares: type: object properties: PartnerID: type: string description: Partner ID PostRunQueryID: type: string description: Post Run Query ID CleanroomQuestionParameter: type: object properties: Name: type: string description: Cleanroom Question Parameter Name Index: type: integer description: Cleanroom Question Parameter Index DataType: type: string description: Cleanroom Question Parameter Data Type ParameterType: type: string description: Cleanroom Question Parameter Type DisplayName: type: string description: Cleanroom Question Parameter Display Name Description: type: string description: Cleanroom Question Parameter Description ExampleValue: type: string description: Cleanroom Question Parameter Example Value Format: type: string description: Cleanroom Question Parameter Format IsSynced: type: boolean description: Cleanroom Question Parameter Sync Status HasConstraint: type: boolean description: Cleanroom Question Parameter Has Constraint ConstraintType: $ref: '#/components/schemas/ValueConstraintType' AllowedValues: type: array items: type: string description: Cleanroom Question Parameter Allowed Values DefaultValue: type: string description: Cleanroom Question Parameter Default Value partitionFieldConfig: $ref: '#/components/schemas/PartitionFieldConfig' UpsertCleanRoomQuestionResultShareResponse: type: object properties: success: type: boolean DataConnectionDetails: type: object properties: name: type: string description: Name of the data connection category: type: string description: Category of the data connection credentialId: type: string description: Credential ID for the data connection dataType: $ref: "#/components/schemas/DataType" dataSource: $ref: "#/components/schemas/DataSource" dataSourceConfiguration: type: array items: $ref: "#/components/schemas/JobParameters" JobParameters: type: object properties: id: type: string name: type: string displayName: type: string value: type: string FieldConfigurations: description: A list of Field Configurations type: array items: $ref: '#/components/schemas/FieldConfiguration' FieldConfiguration: type: object properties: dataConnectionId: type: string description: The Data Connection ID associated with this Field Configuration id: type: string description: Unique ID for the Field fieldIndex: type: integer fieldName: type: string description: Name of the Field fieldLabel: type: string description: Display Name of the Field dataType: type: string enum: ["BOOLEAN", "DATE", "DECIMAL", "DOUBLE", "INTEGER", "LONG", "STRING", "TEXT", "TIMESTAMP", "UNKNOWN"] description: Data type of the field identifierType: type: string enum: ["","1P or 3P Cookie","Customer First Party Identifier","Hashed Emails","HouseHold ID","Email MD5 Hashed","Mobile Device Identifier","Person (or People) Identifier","RampID","Raw Email","Email SHA1 Hashed","Email SHA256 Hashed","Unique Identifier","City","State","Country","Postal Code","Street Address","Address Line 1","Address Line 2","Name","First Name","Middle Name","Last Name","TV Device ID","IP Address","phone","Hashed Customer ID"] description: unique user identifier type delimiter: type: string enum: ["","Semicolon", "Tab", "Comma", "Pipe"] description: character or sequence of characters that separates data into separate fields isPii: type: boolean default: false isUserIdField: type: boolean default: false isExcluded: type: boolean default: false isPartitionColumn: type: boolean default: false description: Indicates whether this field is a partition column partitionFieldConfig: $ref: '#/components/schemas/PartitionFieldConfig' PartitionFieldConfig: type: object properties: type: type: string enum: ["Fixed", "Range", "Rolling"] description: Fixed is used for String and Integer type fields, Range and Rolling is for Date and Timestamp values: type: array items: type: string rollingUnit: type: string enum: ["Days", "Months"] description: Applicable only in case of Rolling Date and Timestamp fields isEnforced: type: boolean default: false description: Indicates whether the partition field values are enforced for the CRQ run DatasetFieldMappings: description: A list of Dataset Field Mappings type: array items: $ref: '#/components/schemas/DatasetFieldMapping' DatasetFieldMapping: type: object properties: dataConnectionId: type: string description: The Data Connection ID associated with this Field Configuration id: type: string description: Unique ID for the Field fieldIndex: type: integer fieldName: type: string description: Name of the Field fieldLabel: type: string description: Display Name of the Field dataType: type: string delimiter: type: string isPii: type: boolean default: false isUserIdField: type: boolean default: false isExcluded: type: boolean default: false rename: type: string transformation: type: string description: Transformation formula for calculated fields isPartitionColumn: type: boolean default: false readOnly: true description: Indicates whether this field is a partition column partitionFieldConfig: $ref: '#/components/schemas/PartitionFieldConfig' IdentifierTypes: description: A list of Identifier Types type: array items: $ref: '#/components/schemas/IdentifierType' IdentifierType: type: object properties: id: type: string name: type: string displayName: type: string DataConnections: description: A list of Data Connections type: array items: $ref: '#/components/schemas/DataConnectionResponse' CleanRoomDatasets: description: A list of Cleanroom Datasets type: array items: $ref: '#/components/schemas/CleanRoomDataset' CleanRoomDataset: type: object properties: id: type: string name: type: string cleanRoomId: type: string organizationName: type: string readOnly: true description: Name of the organization that owns this dataset dataConnectionType: type: string dataConnectionId: type: string stage: type: string configurationStatus: type: string datasetFields: type: array items: $ref: "#/components/schemas/DatasetField" datasetFieldMappings: $ref: "#/components/schemas/DatasetFieldMappings" datasetFilters: type: array items: $ref: "#/components/schemas/DatasetFilter" datasetParameters: type: array items: $ref: "#/components/schemas/DatasetParameter" partitionParameters: $ref: "#/components/schemas/DatasetPartitionParameters" isView: type: boolean description: Whether this dataset is a view partnerCanAssign: type: boolean CleanRoomDatasetUpdateRequest: type: object description: "The following fields are required: datasetFieldMapping.[fieldName, isExcluded, rename], datasetFilter.[datasetFieldName , operator, values]; all others are optional" properties: datasetFieldMappings: $ref: "#/components/schemas/DatasetFieldMappings" datasetFilters: type: array items: $ref: "#/components/schemas/DatasetFilter" ConfigureCleanRoomDatasetRequest: type: object properties: rampIDConsent: type: boolean default: false description: Consent to the use of RampID as a join key in questions (https://storage.googleapis.com/lr-tech-docs-resources/Files/LiveRamp%20RampID%20Data%20Protection%20Attestation.pdf) CleanRoomStakeholders: type: array items: $ref: "#/components/schemas/CleanRoomStakeholder" description: List of Cleanroom Stakeholders CleanRoomStakeholder: type: object properties: organizationId: type: string organizationName: type: string ownership: type: string CleanroomAssetDetails: type: object properties: questions: type: array items: $ref: "#/components/schemas/QuestionMetadata" description: Available questions for flow creation datasets: type: array items: $ref: "#/components/schemas/DatasetMetadata" description: Available datasets for assignment computeCapacityOptions: type: array items: $ref: "#/components/schemas/ComputeCapacityOption" description: Available compute capacity options fieldTypes: type: array items: $ref: "#/components/schemas/FieldTypeEnum" description: Field type enumerations stakeholders: type: array items: $ref: "#/components/schemas/CleanRoomStakeholder" description: Clean room stakeholder information QuestionMetadata: type: object properties: ID: type: string displayID: type: string title: type: string category: type: string description: type: string status: type: string hasDateFilter: type: boolean hasDateParameters: type: boolean hasMultipleOutputs: type: boolean isAggregate: type: boolean isUserListQuestion: type: boolean defaultComputeCapacity: type: string dimensions: type: array items: $ref: "#/components/schemas/QuestionDimension" metrics: type: array items: $ref: "#/components/schemas/QuestionMetric" parameters: type: array items: $ref: "#/components/schemas/QuestionParameter" dataTypes: type: array items: $ref: "#/components/schemas/AssetQuestionDataType" userListOutputs: type: array items: $ref: "#/components/schemas/QuestionUserListOutput" QuestionDimension: type: object properties: ID: type: string name: type: string displayName: type: string type: type: string filterable: type: boolean plottable: type: boolean QuestionMetric: type: object properties: ID: type: string name: type: string displayName: type: string type: type: string computed: type: boolean QuestionParameter: type: object properties: ID: type: string name: type: string displayName: type: string type: type: string index: type: integer parameterType: type: string AssetQuestionDataType: type: object properties: ID: type: string macro: type: string description: type: string importDataType: type: string optional: type: boolean fields: type: array items: $ref: "#/components/schemas/QuestionDataTypeField" QuestionDataTypeField: type: object properties: ID: type: string name: type: string type: type: string format: type: string description: type: string QuestionUserListOutput: type: object properties: ID: type: string name: type: string type: type: string isEncrypt: type: boolean DatasetMetadata: type: object properties: ID: type: string name: type: string organizationID: type: string organizationName: type: string dataImportType: type: string macro: type: string fields: type: array items: $ref: "#/components/schemas/AssetDatasetField" AssetDatasetField: type: object properties: ID: type: string fieldName: type: string dataType: type: string isFilterable: type: boolean isUserIDField: type: boolean isPii: type: boolean isExcluded: type: boolean fieldLabel: type: string ComputeCapacityOption: type: object properties: name: type: string description: type: string FieldTypeEnum: type: object properties: name: type: string description: type: string CleanroomFlowNodeDetails: type: object properties: nodes: type: array items: $ref: "#/components/schemas/FlowNodeMetadata" description: Detailed information for all nodes in the flow FlowNodeMetadata: type: object properties: nodeIdentifier: type: string description: Node identifier nodeID: type: string description: Node ID nodeLevel: type: integer description: Node level in the flow ID: type: string description: Question ID displayID: type: string description: Question display ID title: type: string description: Question title category: type: string description: Question category description: type: string description: Question description status: type: string description: Question status hasDateFilter: type: boolean description: Whether the question has date filter hasDateParameters: type: boolean description: Whether the question has date parameters hasMultipleOutputs: type: boolean description: Whether the question has multiple outputs isAggregate: type: boolean description: Whether the question is aggregate isUserListQuestion: type: boolean description: Whether the question is a user list question defaultComputeCapacity: type: string description: Default compute capacity for the question dimensions: type: array items: $ref: "#/components/schemas/QuestionDimension" description: Question dimensions metrics: type: array items: $ref: "#/components/schemas/QuestionMetric" description: Question metrics parameters: type: array items: $ref: "#/components/schemas/QuestionParameter" description: Question parameters dataTypes: type: array items: $ref: "#/components/schemas/AssetQuestionDataType" description: Question data types userListOutputs: type: array items: $ref: "#/components/schemas/QuestionUserListOutput" description: Question user list outputs branches: type: array items: type: string description: Branches QuestionDataTypeOptions: type: array items: $ref: "#/components/schemas/QuestionDataTypeOption" description: List of Cleanroom Question Data Type Options QuestionDataTypeOption: type: object properties: dataTypeName: type: string datasetOptions: type: array items: type: object properties: id: type: string name: type: string CleanRoomQuestionPermissionsResponse: type: array items: $ref: "#/components/schemas/CleanRoomQuestionPermissions" description: Array of Cleanroom Question Permissions UpdateCleanRoomQuestionPermissionsRequest: type: array items: $ref: "#/components/schemas/CleanRoomQuestionPermissionsUpdateInput" description: Array of Cleanroom Question Permission Updates CleanRoomQuestionPermissions: type: object properties: id: type: string permission: $ref: "#/components/schemas/QuestionPermission" access: $ref: "#/components/schemas/QuestionAccess" CleanRoomQuestionPermissionsUpdateInput: type: object properties: permission: $ref: "#/components/schemas/QuestionPermission" access: $ref: "#/components/schemas/QuestionAccess" AssignCleanroomQuestionDatasetRequest: type: object properties: organizationId: type: string description: ID of Organization ID to take ownership macro: type: string description: name of Question Data Type CleanRoomQuestionDatasets: type: array items: $ref: "#/components/schemas/CleanRoomQuestionDataset" description: List of Cleanroom Question Datasets CleanRoomQuestionDataset: type: object properties: id: type: string description: Cleanroom Question Dataset ID dataTypeDisplayName: type: string description: Data Type display name ownership: type: string status: type: string datasetId: type: string description: Dataset Identifier datasetName: type: string description: Dataset Name dataTypeName: type: string description: DataType name questionDataTypeId: type: string description: DataType ID dataConnectionId: type: string description: Data Connection ID parameters: type: array items: $ref: "#/components/schemas/DatasetParameter" description: Dataset Parameters dataSourceId: type: string description: Data Source ID organizationId: type: string description: Organization ID which this cleanroom question dataset belongs to organizationName: type: string description: Organization Name which this cleanroom question dataset belongs to macro: type: string description: macro assignedAt: type: string fields: type: array items: $ref: "#/components/schemas/DatasetField" description: Dataset Fields DatasetParameter: type: object properties: name: type: string description: Dataset Parameter Name value: type: string description: Dataset Parameter Value type: type: string description: Dataset Parameter Type DatasetPartitionParameters: type: object description: Partition parameters discoverable when this dataset is assigned to a question properties: isView: type: boolean description: Whether this dataset is a view partitionGroups: type: array items: $ref: "#/components/schemas/DatasetPartitionParameterGroup" DatasetPartitionParameterGroup: type: object properties: dataConnectionId: type: string description: Data connection (import job) ID dataConnectionName: type: string description: Data connection name dataConnectionMacro: type: string description: Macro of the underlying data connection (set for view datasets) partitionFields: type: array items: $ref: "#/components/schemas/DatasetPartitionField" DatasetPartitionField: type: object properties: fieldName: type: string description: Raw partition column name from the data connection dataType: type: string description: Partition column data type parameters: type: array items: $ref: "#/components/schemas/DatasetPartitionParameter" DatasetPartitionParameter: type: object properties: name: type: string description: Full parameter name including view macro prefix and date expansion suffixes dataType: type: string description: Parameter data type partitionFieldConfig: $ref: "#/components/schemas/PartitionFieldConfig" DatasetField: type: object properties: datasetId: type: string description: Dataset ID id: type: string description: Dataset Field ID name: type: string description: Dataset Field Name value: type: string description: Dataset Field Value type: type: string description: Dataset Field Type DatasetFilter: type: object properties: datasetId: type: string description: Dataset ID id: type: string description: Dataset Filter ID datasetFieldName: type: string description: Dataset Field Name datasetFieldType: type: string description: Dataset Field Type operator: type: string description: Operator to be applied on the Dataset Field enum: ["", EQUALS, NOT_EQUALS, IN, NOT_IN] values: type: array items: type: string description: Values to filter the Dataset Field on OrganizationCredentialDetails: description: A list of all Organization Credentials type: array items: $ref: '#/components/schemas/OrganizationCredentialDetail' OrganizationCredentialDetail: type: object properties: id: type: string description: Organization Credential ID name: type: string description: Name of the organization credential managedCredential: type: boolean description: Is this a managed or service credential credentialSourceId: type: string description: Credential Source ID credentialSourceName: default: null type: string description: Credential Source Name enum: ["AMC Export","AWS Clean Room Credentials","AWS ECR Registry","AWS IAM User Credentials","AWS S3 Credential","Amazon Ads Api Credentials","Azure AD Service Principal","Azure SAS Token","CUSTOMER_AWS","DV 360","DV360 Customer Match","Databricks Account","Databricks Delta Credentials","Databricks Service Role Credentials","Docker Registry","Equativ","Facebook AA Credentials","Facebook Audience Measurement API","Facebook Conversions","Facebook Custom Audiences","Facebook Direct Custom Audiences","Facebook Offline Conversions","Google Ad Manager","Google Ads Data Hub","Google Customer Match","Google Customer Match - MAID","Google Enhanced Conversions","Google Enhanced Conversions - Beta","Google Offline Conversions","Google Service Account","Google Workload Identity Federation","HUBSPOT","LinkedIn Partner","LiveRamp Activation","Pinterest Ads","Polaris Catalog Credentials","Reddit Ads","Salesforce Credential","Snapchat Audience Match","Snapchat Offline Conversions","Snowflake","Snowflake Account","Snowflake Account With Credentials","Snowflake Azure","Snowflake Data Connection","Snowflake GCS","Snowflake S3 Credentials","Snowflake S3 Role","TikTok Audience","TikTok Offline Conversions","Twitter Conversions","Twitter Tailored Audiences","LiveRamp Analytics Environment"] credentials: type: array items: $ref: "#/components/schemas/Credentials" timeAudit: $ref: "#/components/schemas/TimeAudit" userAudit: $ref: "#/components/schemas/UserAudit" required: ["name", "credentials"] DataConnectionViews: description: Paginated list of Data Connection Views type: object properties: dataConnectionViews: type: array description: Data connection views for the current page items: $ref: '#/components/schemas/DataConnectionViewResponse' limit: type: integer description: The number of data connection views returned per page offset: type: integer description: The offset used for pagination hasMore: type: boolean description: Whether there are more data connection views beyond this page DataConnectionViewDetails: type: object properties: name: type: string description: Name of the data connection view query: type: string description: SQL query for the data connection view dataConnections: type: array description: Source data connections referenced by the view query items: $ref: "#/components/schemas/DataConnectionViewSourceInput" required: ["name", "query", "dataConnections"] DataConnectionViewUpdateDetails: type: object description: Fields to update on a data connection view. Omitted fields retain their existing values. properties: name: type: string description: Name of the data connection view query: type: string description: SQL query for the data connection view dataConnections: type: array description: Source data connections referenced by the view query items: $ref: "#/components/schemas/DataConnectionViewSourceInput" DataConnectionViewSourceInput: type: object properties: dataConnectionId: type: string description: ID of the source data connection macro: type: string description: Macro alias for the source data connection in the view query required: ["dataConnectionId", "macro"] DataConnectionViewResponse: type: object properties: id: type: string description: ID of the data connection view name: type: string description: Name of the data connection view query: type: string description: SQL query for the data connection view version: type: string description: Version of the data connection view stage: type: string description: Stage of the data connection view sourceId: type: string description: ID of the data source associated with the view status: type: string description: Status of the data connection view importDataTypeId: type: string description: ID of the import data type associated with the view dataConnections: type: array description: Source data connections referenced by the view items: $ref: "#/components/schemas/DataConnectionViewSource" fields: type: array description: Output fields defined for the view items: $ref: "#/components/schemas/DataConnectionViewField" timeAudit: $ref: "#/components/schemas/TimeAudit" userAudit: $ref: "#/components/schemas/UserAudit" DataConnectionViewSource: type: object properties: dataConnectionId: type: string description: ID of the source data connection dataConnectionName: type: string description: Name of the source data connection macro: type: string description: Macro alias for the source data connection in the view query dataSourceId: type: string description: ID of the data source for the source data connection fieldConfigurations: type: array items: $ref: "#/components/schemas/FieldConfiguration" DataConnectionViewField: type: object properties: name: type: string description: Name of the output field type: type: string description: Data type of the output field DataConnectionResponse: type: object properties: id: type: string description: ID of the data connection name: type: string description: Name of the data connection category: type: string description: Category of the data connection configStatus: type: string description: Configuration Status of the data connection runStatus: type: string description: Run Status of the data connection job stage: type: string description: Stage of the data connection - ACTIVE or PAUSED dataType: $ref: "#/components/schemas/DataType" dataSource: $ref: "#/components/schemas/DataSource" dataSourceConfiguration: type: array items: $ref: "#/components/schemas/JobParameters" DataConnectionRetryResponse: type: object properties: success: type: boolean Credentials: type: object properties: name: type: string value: type: string DataSources: type: array items: $ref: '#/components/schemas/DataSource' DataSource: type: object properties: id: type: string name: type: string description: name of the data connection's data source displayName: type: string description: display name of the data connection's data source enum: ["AWS ECR Container","AWS Glue Data Catalog","Amazon Marketing Cloud","Amazon Marketing Cloud (Ads API)","Artifact Store","Azure Storage","CSV Catalog","Client AWS S3","Databricks Data Connection","Databricks Delta Table Connection","Docker Container","Facebook Advanced Analytics","Google Ad Manager Logs","Google Ads Data Hub","Google Cloud Authorized View","Google Cloud Big Query","Google Cloud Storage","Google Cloud Storage(with SA)","LiveRamp-Hosted AWS S3","LiveRamp-Hosted Amazon Marketing Cloud","LiveRamp-Hosted Google Cloud Storage","LiveRamp-Hosted Snowflake","LiveRamp-Hosted Javascript Tag","HubSpot","Iceberg Catalog","LinkedIn Marketing Solution","Notebooks","Salesforce","Snowflake","Snowflake Azure Data Connection","Snowflake Data Connection","Snowflake GCS Data Connection","Snowflake S3 Data Connection","Snowflake Table","The Trade Desk: Raw Event Data Stream (REDS)","Local Upload","Publisher Synthetic Dataset Library"] credentialSource: type: string DataTypes: type: array items: $ref: '#/components/schemas/DataType' DataType: type: object properties: id: type: string name: type: string displayName: type: string enum: ["Ad Engagement","Ad Exposure","Ad Logs","Amazon Marketing Cloud: Event-Level Ad Campaign Data","Binary Data","CRM Data","Campaign Data","Campaign Mapping Data","Code Container","Conversion Events","Databricks Container","Databricks Notebook", "Facebook: Advanced Analytics Data","Generic","Google Ads Data Hub: Event-Level Ad Campaign Data","Google Cloud Big Query","Identity Graph","JAR","LinkedIn Marketing Solutions Config Data","Machine Learning Model","Member Profile","Metadata","Model Training","Offline Conversions","Page Data","Service Container","The Trade Desk: Raw Event Data Stream (REDS) Feed","The Trade Desk: Raw Event Data Stream (REDS) Metadata","Transaction Data","User Data","User-Segment Map","WHEEL"] DataSourceParameters: type: array items: $ref: '#/components/schemas/DataSourceParameter' DataSourceParameter: type: object properties: id: type: string name: type: string displayName: type: string type: type: string index: type: integer dataSourceId: type: string CredentialSources: type: array items: $ref: '#/components/schemas/CredentialSource' CredentialSource: type: object properties: id: type: string name: type: string provider: type: string credentialConfig: type: array items: $ref: '#/components/schemas/CredentialConfig' CredentialConfig: type: object properties: id: type: string name: type: string index: type: integer credentialConfigType: type: string credentialConfigListValues: type: array items: $ref: '#/components/schemas/CredentialConfigListValue' CredentialConfigListValue: type: object properties: id: type: string value: type: string displayName: type: string index: type: integer TimeAudit: type: object properties: createdAt: type: string format: date-time description: Timestamp for when the object was created updatedAt: type: string format: date-time description: Timestamp for when the object was last updated deletedAt: type: string format: date-time description: Timestamp for when the object was deleted (if applicable) UserAudit: type: object properties: createdBy: type: string description: Identifier of the user who created the object updatedBy: type: string description: Identifier of the user who last updated the object HealthResponse: type: object properties: status: type: string statusCode: type: integer description: type: string version: type: string ReturnObject: type: object properties: code: type: string message: type: string required: - code - message GetExplainPlanResponse: type: object description: Response containing the execution plan for a SQL cleanroom question run x-class-extra-annotation: "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)" properties: success: type: boolean description: Whether the explain plan retrieval was successful explainPlan: type: string description: >- When success is true, the execution plan details. When success is false, this field should be omitted or null. errorMessage: type: string description: >- When success is false, details explaining why the explain plan could not be retrieved. required: - success OptimizerRunResponse: type: object description: Response from optimizing a SQL cleanroom question run x-class-extra-annotation: "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)" properties: success: type: boolean description: Whether the optimization was successful recommendationMessage: type: string description: >- When success is true, optimization recommendations for the run. When success is false, this field should be omitted or null. errorMessage: type: string description: >- When success is false, details explaining why optimization could not be completed. required: - success HIProvisionStatus: type: string description: Habu Intelligence provisioning lifecycle state for a Cleanroom enum: - UNSPECIFIED - NOT_ENABLED - PROVISIONING - ENABLED - FAILED CRQLoadStatus: type: string description: Per-CRQ load state for HI Snowflake report tables enum: - UNSPECIFIED - NOT_LOADED - LOADED - STALE - FAILED CleanRoomIntelligence: type: object description: HI bindings for a Cleanroom properties: cleanRoomId: type: string displayId: type: string provisionStatus: $ref: '#/components/schemas/HIProvisionStatus' snowflakeDatabase: type: string description: Name of the per-Cleanroom HI Snowflake database snowflakeSchema: type: string description: Snowflake schema (always INTELLIGENCE today) metabaseDatabaseId: type: integer format: int64 description: Numeric Metabase database id metabaseCollectionId: type: string description: Metabase collection id (stored as string upstream) metabaseUrl: type: string CleanRoomQuestionIntelligence: type: object description: HI bindings for a Cleanroom Question properties: cleanRoomId: type: string cleanRoomQuestionId: type: string displayId: type: string title: type: string description: Cleanroom Question title (populated for list items) snowflakeReportTable: type: string description: Snowflake table name (CRQ_xxxxx_xxxxx) snowflakeMetadataTable: type: string metabaseDatabaseId: type: integer format: int64 metabaseReportTableId: type: integer format: int64 metabaseMetadataTableId: type: integer format: int64 loadStatus: $ref: '#/components/schemas/CRQLoadStatus' LoadedIntelligenceQuestions: type: object description: Page of CRQs with HI data loaded properties: items: type: array items: $ref: '#/components/schemas/CleanRoomQuestionIntelligence' nextPageToken: type: string description: Opaque next-page token; empty when no further pages FlowIntelligenceOutput: type: object description: One question output of a flow with its HI report-table referent properties: cleanRoomQuestionId: type: string displayId: type: string title: type: string snowflakeReportTable: type: string metabaseTableId: type: integer format: int64 runStatus: type: string description: Run status (only populated when flowRunId is provided) FlowIntelligence: type: object description: HI bindings for a Cleanroom Flow's question outputs properties: flowId: type: string flowName: type: string outputs: type: array items: $ref: '#/components/schemas/FlowIntelligenceOutput' BillableSourceType: type: string description: Type of entity a billable config applies to enum: - BILLABLE_UNKNOWN - BILLABLE_RUN - BILLABLE_FLOW_RUN - BILLABLE_QUESTION - BILLABLE_FLOW - BILLABLE_CR - BILLABLE_OWNER - BILLABLE_PARTNER - BILLABLE_CRQ BillableConfig: type: object description: Billable configuration for a source entity required: - sourceId - sourceType properties: id: type: string sourceId: type: string sourceType: $ref: '#/components/schemas/BillableSourceType' value: type: string description: Billable flag as string ("true" or "false") compositeSourceId: type: string UpsertBillableConfigRequest: type: object required: - config properties: config: $ref: '#/components/schemas/BillableConfig' UpsertBillableConfigResponse: type: object properties: success: type: boolean billableConfigId: type: string GetBillableConfigResponse: type: object properties: config: $ref: '#/components/schemas/BillableConfig' DeleteBillableConfigResponse: type: object properties: success: type: boolean securitySchemes: application: type: oauth2 flows: clientCredentials: tokenUrl: 'https://api.habu.com/v1/oauth/token' scopes: { } servers: - description: External APIs for Customer Integration url: https://api.habu.com/v1/