From afbd8da84d65b815061615d12521b15f21e9165b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 23 Sep 2025 17:35:17 +0000 Subject: [PATCH] Update generated TypeScript types --- .../api/events/createNotificationTemplate.ts | 98 +++++++++++ .../src/generated/api/tests/createTestCase.ts | 6 + .../api/tests/createTestCaseResult.ts | 138 +++++++++++++++ .../entity/events/notificationTemplate.ts | 158 ++++++++++++++++++ .../generated/entity/feed/testCaseResult.ts | 91 +++++++++- .../ui/src/generated/entity/feed/thread.ts | 89 ++++++++++ .../ui/src/generated/tests/dimensionResult.ts | 97 +++++++++++ .../ui/src/generated/tests/testCase.ts | 95 +++++++++++ 8 files changed, 771 insertions(+), 1 deletion(-) create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/events/createNotificationTemplate.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/events/notificationTemplate.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/tests/dimensionResult.ts diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/events/createNotificationTemplate.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/events/createNotificationTemplate.ts new file mode 100644 index 00000000000..bb6f8e4176c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/events/createNotificationTemplate.ts @@ -0,0 +1,98 @@ +/* + * Copyright 2025 Collate. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Create request for Notification Template + */ +export interface CreateNotificationTemplate { + /** + * Description of this notification template + */ + description?: string; + /** + * Display name for this notification template + */ + displayName?: string; + /** + * Fully qualified names of the domains the template belongs to + */ + domains?: string[]; + /** + * Name that uniquely identifies this notification template (e.g., 'entity_change', + * 'test_change') + */ + name: string; + /** + * Owners of this template + */ + owners?: EntityReference[]; + /** + * Handlebars template content for rendering notifications + */ + templateBody: string; +} + +/** + * Owners of this template + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCase.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCase.ts index 3f8525811aa..01cde2904f9 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCase.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCase.ts @@ -22,6 +22,12 @@ export interface CreateTestCase { * Description of the testcase. */ description?: string; + /** + * List of columns to group test results by dimensions. When specified, the test will be + * executed both overall and grouped by these columns to provide fine-grained data quality + * insights. + */ + dimensionColumns?: string[]; /** * Display Name that identifies this test. */ diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResult.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResult.ts index 9dc61fd339a..1b31f5eff7a 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResult.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResult.ts @@ -14,6 +14,11 @@ * Schema to create a new test case result . */ export interface CreateTestCaseResult { + /** + * List of dimensional test results. Only populated when the test case has dimensionColumns + * specified. + */ + dimensionResults?: TestCaseDimensionResult[]; /** * Number of rows that failed. */ @@ -67,6 +72,139 @@ export interface CreateTestCaseResult { } /** + * Test case result for dimensional analysis - supports both single and multi-dimensional + * groupings + */ +export interface TestCaseDimensionResult { + /** + * Composite key for API filtering: 'region=mumbai' or 'region=mumbai,product=laptop' + */ + dimensionKey: string; + /** + * Array of dimension name-value pairs for this result (e.g., [{'name': 'region', 'value': + * 'mumbai'}, {'name': 'product', 'value': 'laptop'}]) + */ + dimensionValues: DimensionValue[]; + /** + * Number of rows that failed for this dimension combination + */ + failedRows?: number; + /** + * Percentage of rows that failed for this dimension combination + */ + failedRowsPercentage?: number; + /** + * Unique identifier of this dimensional result instance + */ + id: string; + /** + * Impact score indicating the significance of this dimension for revealing data quality + * variations. Higher scores indicate dimensions with more significant quality issues + * considering both failure rate and data volume. + */ + impactScore?: number; + /** + * Number of rows that passed for this dimension combination + */ + passedRows?: number; + /** + * Percentage of rows that passed for this dimension combination + */ + passedRowsPercentage?: number; + /** + * Details of test case results for this dimension combination + */ + result?: string; + /** + * Reference to the test case for efficient querying of dimensional time series + */ + testCase?: EntityReference; + /** + * Reference to the parent TestCaseResult execution that generated this dimensional result + */ + testCaseResultId: string; + /** + * Status of the test for this dimension combination + */ + testCaseStatus: TestCaseStatus; + /** + * Test result values for this dimension combination + */ + testResultValue?: TestResultValue[]; + /** + * Timestamp when the dimensional test result was captured (same as parent TestCaseResult) + */ + timestamp: number; +} + +/** + * A single dimension name-value pair for dimensional test results + */ +export interface DimensionValue { + /** + * Name of the dimension (e.g., 'column', 'region', 'tier') + */ + name: string; + /** + * Value for this dimension (e.g., 'address', 'US', 'gold') + */ + value: string; +} + +/** + * Reference to the test case for efficient querying of dimensional time series + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Status of the test for this dimension combination + * * Status of Test Case run. */ export enum TestCaseStatus { diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/events/notificationTemplate.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/events/notificationTemplate.ts new file mode 100644 index 00000000000..2d1d73ae653 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/events/notificationTemplate.ts @@ -0,0 +1,158 @@ +/* + * Copyright 2025 Collate. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * A NotificationTemplate defines the default formatting template for notifications of a + * specific entity type. + */ +export interface NotificationTemplate { + /** + * Change that lead to this version of the template. + */ + changeDescription?: ChangeDescription; + /** + * When `true` indicates the template has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the template purpose and usage. + */ + description?: string; + /** + * Display Name that identifies this template. + */ + displayName?: string; + /** + * Fully qualified name for the template. + */ + fullyQualifiedName?: string; + /** + * Link to this template resource. + */ + href?: string; + /** + * Unique identifier of this template instance. + */ + id: string; + /** + * Change that lead to this version of the entity. + */ + incrementalChangeDescription?: ChangeDescription; + /** + * Name for the notification template (e.g., 'Default Table Template', 'Custom Pipeline + * Alerts'). + */ + name: string; + /** + * Provider of the template. System templates are pre-loaded and cannot be deleted. User + * templates are created by users and can be deleted. + */ + provider?: ProviderType; + /** + * Handlebars HTML template body with placeholders. + */ + templateBody: string; + /** + * Last update time corresponding to the new version of the template. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the template. + */ + version?: number; +} + +/** + * Change that lead to this version of the template. + * + * Description of the change. + * + * Change that lead to this version of the entity. + */ +export interface ChangeDescription { + changeSummary?: { [key: string]: ChangeSummary }; + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface ChangeSummary { + changedAt?: number; + /** + * Name of the user or bot who made this change + */ + changedBy?: string; + changeSource?: ChangeSource; + [property: string]: any; +} + +/** + * The source of the change. This will change based on the context of the change (example: + * manual vs programmatic) + */ +export enum ChangeSource { + Automated = "Automated", + Derived = "Derived", + Ingested = "Ingested", + Manual = "Manual", + Propagated = "Propagated", + Suggested = "Suggested", +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Provider of the template. System templates are pre-loaded and cannot be deleted. User + * templates are created by users and can be deleted. + * + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. Some apps such as AutoPilot create entities with + * `automation` provider type. These entities can be deleted by the user. + */ +export enum ProviderType { + Automation = "automation", + System = "system", + User = "user", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/testCaseResult.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/testCaseResult.ts index af7b9af80ae..6156ac8d297 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/testCaseResult.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/testCaseResult.ts @@ -48,6 +48,8 @@ export interface EntityTestResultSummaryObject { * Status of the test case. * * Status of Test Case run. + * + * Status of the test for this dimension combination */ export enum TestCaseStatus { Aborted = "Aborted", @@ -76,6 +78,11 @@ export interface TestCaseParameterValue { * Schema to capture test case result. */ export interface TestCaseResultElement { + /** + * List of dimensional test results. Only populated when the test case has dimensionColumns + * specified. + */ + dimensionResults?: TestCaseDimensionResult[]; /** * Number of rows that failed. */ @@ -142,13 +149,95 @@ export interface TestCaseResultElement { } /** - * Test case that this result is for. + * Test case result for dimensional analysis - supports both single and multi-dimensional + * groupings + */ +export interface TestCaseDimensionResult { + /** + * Composite key for API filtering: 'region=mumbai' or 'region=mumbai,product=laptop' + */ + dimensionKey: string; + /** + * Array of dimension name-value pairs for this result (e.g., [{'name': 'region', 'value': + * 'mumbai'}, {'name': 'product', 'value': 'laptop'}]) + */ + dimensionValues: DimensionValue[]; + /** + * Number of rows that failed for this dimension combination + */ + failedRows?: number; + /** + * Percentage of rows that failed for this dimension combination + */ + failedRowsPercentage?: number; + /** + * Unique identifier of this dimensional result instance + */ + id: string; + /** + * Impact score indicating the significance of this dimension for revealing data quality + * variations. Higher scores indicate dimensions with more significant quality issues + * considering both failure rate and data volume. + */ + impactScore?: number; + /** + * Number of rows that passed for this dimension combination + */ + passedRows?: number; + /** + * Percentage of rows that passed for this dimension combination + */ + passedRowsPercentage?: number; + /** + * Details of test case results for this dimension combination + */ + result?: string; + /** + * Reference to the test case for efficient querying of dimensional time series + */ + testCase?: EntityReference; + /** + * Reference to the parent TestCaseResult execution that generated this dimensional result + */ + testCaseResultId: string; + /** + * Status of the test for this dimension combination + */ + testCaseStatus: TestCaseStatus; + /** + * Test result values for this dimension combination + */ + testResultValue?: TestResultValue[]; + /** + * Timestamp when the dimensional test result was captured (same as parent TestCaseResult) + */ + timestamp: number; +} + +/** + * A single dimension name-value pair for dimensional test results + */ +export interface DimensionValue { + /** + * Name of the dimension (e.g., 'column', 'region', 'tier') + */ + name: string; + /** + * Value for this dimension (e.g., 'address', 'US', 'gold') + */ + value: string; +} + +/** + * Reference to the test case for efficient querying of dimensional time series * * This schema defines the EntityReference type used for referencing an entity. * EntityReference is used for capturing relationships from one entity to another. For * example, a table has an attribute called database of type EntityReference that captures * the relationship of a table `belongs to a` database. * + * Test case that this result is for. + * * Test definition that this result is for. */ export interface EntityReference { diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/thread.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/thread.ts index 8b5ef1852d8..eb29dc251da 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/thread.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/thread.ts @@ -175,6 +175,8 @@ export interface ChatbotDetails { * example, a table has an attribute called database of type EntityReference that captures * the relationship of a table `belongs to a` database. * + * Reference to the test case for efficient querying of dimensional time series + * * Test case that this result is for. * * Test definition that this result is for. @@ -318,6 +320,8 @@ export interface EntityTestResultSummaryObject { * Status of the test case. * * Status of Test Case run. + * + * Status of the test for this dimension combination */ export enum TestCaseStatus { Aborted = "Aborted", @@ -346,6 +350,11 @@ export interface TestCaseParameterValue { * Schema to capture test case result. */ export interface TestCaseResult { + /** + * List of dimensional test results. Only populated when the test case has dimensionColumns + * specified. + */ + dimensionResults?: TestCaseDimensionResult[]; /** * Number of rows that failed. */ @@ -411,6 +420,86 @@ export interface TestCaseResult { [property: string]: any; } +/** + * Test case result for dimensional analysis - supports both single and multi-dimensional + * groupings + */ +export interface TestCaseDimensionResult { + /** + * Composite key for API filtering: 'region=mumbai' or 'region=mumbai,product=laptop' + */ + dimensionKey: string; + /** + * Array of dimension name-value pairs for this result (e.g., [{'name': 'region', 'value': + * 'mumbai'}, {'name': 'product', 'value': 'laptop'}]) + */ + dimensionValues: DimensionValue[]; + /** + * Number of rows that failed for this dimension combination + */ + failedRows?: number; + /** + * Percentage of rows that failed for this dimension combination + */ + failedRowsPercentage?: number; + /** + * Unique identifier of this dimensional result instance + */ + id: string; + /** + * Impact score indicating the significance of this dimension for revealing data quality + * variations. Higher scores indicate dimensions with more significant quality issues + * considering both failure rate and data volume. + */ + impactScore?: number; + /** + * Number of rows that passed for this dimension combination + */ + passedRows?: number; + /** + * Percentage of rows that passed for this dimension combination + */ + passedRowsPercentage?: number; + /** + * Details of test case results for this dimension combination + */ + result?: string; + /** + * Reference to the test case for efficient querying of dimensional time series + */ + testCase?: EntityReference; + /** + * Reference to the parent TestCaseResult execution that generated this dimensional result + */ + testCaseResultId: string; + /** + * Status of the test for this dimension combination + */ + testCaseStatus: TestCaseStatus; + /** + * Test result values for this dimension combination + */ + testResultValue?: TestResultValue[]; + /** + * Timestamp when the dimensional test result was captured (same as parent TestCaseResult) + */ + timestamp: number; +} + +/** + * A single dimension name-value pair for dimensional test results + */ +export interface DimensionValue { + /** + * Name of the dimension (e.g., 'column', 'region', 'tier') + */ + name: string; + /** + * Value for this dimension (e.g., 'address', 'US', 'gold') + */ + value: string; +} + /** * Schema to capture test case result values. */ diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/tests/dimensionResult.ts b/openmetadata-ui/src/main/resources/ui/src/generated/tests/dimensionResult.ts new file mode 100644 index 00000000000..27e70eef3b8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/tests/dimensionResult.ts @@ -0,0 +1,97 @@ +/* + * Copyright 2025 Collate. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Test case result for a specific combination of dimension values + */ +export interface DimensionResult { + /** + * Array of dimension name-value pairs for this result (e.g., [{'name': 'region', 'value': + * 'mumbai'}, {'name': 'product', 'value': 'laptop'}]) + */ + dimensionValues: DimensionValue[]; + /** + * Number of rows that failed for this dimension + */ + failedRows?: number; + /** + * Percentage of rows that failed for this dimension + */ + failedRowsPercentage?: number; + /** + * Impact score indicating the significance of this dimension for revealing data quality + * variations. Higher scores indicate dimensions with more variance in test results. + */ + impactScore?: number; + /** + * Number of rows that passed for this dimension + */ + passedRows?: number; + /** + * Percentage of rows that passed for this dimension + */ + passedRowsPercentage?: number; + /** + * Details of test case results for this dimension combination + */ + result?: string; + /** + * Status of the test for this dimension combination + */ + testCaseStatus: TestCaseStatus; + testResultValue?: TestResultValue[]; +} + +/** + * A single dimension name-value pair for dimensional test results + */ +export interface DimensionValue { + /** + * Name of the dimension (e.g., 'column', 'region', 'tier') + */ + name: string; + /** + * Value for this dimension (e.g., 'address', 'US', 'gold') + */ + value: string; +} + +/** + * Status of the test for this dimension combination + * + * Status of Test Case run. + */ +export enum TestCaseStatus { + Aborted = "Aborted", + Failed = "Failed", + Queued = "Queued", + Success = "Success", +} + +/** + * Schema to capture test case result values. + */ +export interface TestResultValue { + /** + * name of the value + */ + name?: string; + /** + * predicted value + */ + predictedValue?: string; + /** + * test result value + */ + value?: string; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/tests/testCase.ts b/openmetadata-ui/src/main/resources/ui/src/generated/tests/testCase.ts index 12eedb1285c..6d678a89b6b 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/tests/testCase.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/tests/testCase.ts @@ -35,6 +35,12 @@ export interface TestCase { * Description of the testcase. */ description?: string; + /** + * List of columns to group test results by dimensions. When specified, the test will be + * executed both overall and grouped by these columns to provide fine-grained data quality + * insights. + */ + dimensionColumns?: string[]; /** * Display Name that identifies this test. */ @@ -217,6 +223,8 @@ export interface FieldChange { * example, a table has an attribute called database of type EntityReference that captures * the relationship of a table `belongs to a` database. * + * Reference to the test case for efficient querying of dimensional time series + * * Test case that this result is for. * * Test definition that this result is for. @@ -417,6 +425,11 @@ export interface Style { * Schema to capture test case result. */ export interface TestCaseResult { + /** + * List of dimensional test results. Only populated when the test case has dimensionColumns + * specified. + */ + dimensionResults?: TestCaseDimensionResult[]; /** * Number of rows that failed. */ @@ -483,6 +496,88 @@ export interface TestCaseResult { } /** + * Test case result for dimensional analysis - supports both single and multi-dimensional + * groupings + */ +export interface TestCaseDimensionResult { + /** + * Composite key for API filtering: 'region=mumbai' or 'region=mumbai,product=laptop' + */ + dimensionKey: string; + /** + * Array of dimension name-value pairs for this result (e.g., [{'name': 'region', 'value': + * 'mumbai'}, {'name': 'product', 'value': 'laptop'}]) + */ + dimensionValues: DimensionValue[]; + /** + * Number of rows that failed for this dimension combination + */ + failedRows?: number; + /** + * Percentage of rows that failed for this dimension combination + */ + failedRowsPercentage?: number; + /** + * Unique identifier of this dimensional result instance + */ + id: string; + /** + * Impact score indicating the significance of this dimension for revealing data quality + * variations. Higher scores indicate dimensions with more significant quality issues + * considering both failure rate and data volume. + */ + impactScore?: number; + /** + * Number of rows that passed for this dimension combination + */ + passedRows?: number; + /** + * Percentage of rows that passed for this dimension combination + */ + passedRowsPercentage?: number; + /** + * Details of test case results for this dimension combination + */ + result?: string; + /** + * Reference to the test case for efficient querying of dimensional time series + */ + testCase?: EntityReference; + /** + * Reference to the parent TestCaseResult execution that generated this dimensional result + */ + testCaseResultId: string; + /** + * Status of the test for this dimension combination + */ + testCaseStatus: TestCaseStatus; + /** + * Test result values for this dimension combination + */ + testResultValue?: TestResultValue[]; + /** + * Timestamp when the dimensional test result was captured (same as parent TestCaseResult) + */ + timestamp: number; +} + +/** + * A single dimension name-value pair for dimensional test results + */ +export interface DimensionValue { + /** + * Name of the dimension (e.g., 'column', 'region', 'tier') + */ + name: string; + /** + * Value for this dimension (e.g., 'address', 'US', 'gold') + */ + value: string; +} + +/** + * Status of the test for this dimension combination + * * Status of Test Case run. * * Status of the test case.