@attlaz/client 1.95.0 → 1.97.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Catalog/Service/CatalogEndpoint.js +2 -1
- package/dist/Catalog/Service/CatalogProductEndpoint.js +3 -2
- package/dist/Client.d.ts +12 -12
- package/dist/Client.js +12 -12
- package/dist/{EnhanceData → DataEnrichment}/Service/GenerateContentEndpoint.js +3 -2
- package/dist/DataQuality/Model/QualityDataset.d.ts +1 -1
- package/dist/DataQuality/Model/QualityDataset.js +1 -1
- package/dist/DataQuality/Model/QualityEntity.d.ts +1 -1
- package/dist/DataQuality/Model/QualityEntity.js +1 -1
- package/dist/DataQuality/Model/{QualitySuppression.d.ts → QualityEntityProblemSuppression.d.ts} +3 -3
- package/dist/DataQuality/Model/{QualitySuppression.js → QualityEntityProblemSuppression.js} +3 -3
- package/dist/DataQuality/Model/QualityEntityProblemSuppressionResult.d.ts +6 -0
- package/dist/DataQuality/Model/QualityProblem.d.ts +1 -1
- package/dist/DataQuality/Model/QualityProblem.js +1 -1
- package/dist/DataQuality/Model/QualityProblemDefinition.d.ts +1 -1
- package/dist/DataQuality/Model/QualityProblemDefinition.js +1 -1
- package/dist/DataQuality/Model/QualityProblemEvent.d.ts +1 -1
- package/dist/DataQuality/Model/QualityProblemEvent.js +1 -1
- package/dist/DataQuality/Model/QualityReportEntity.d.ts +31 -0
- package/dist/DataQuality/Model/QualityReportEntity.js +44 -0
- package/dist/DataQuality/Model/QualityReportProblem.d.ts +22 -0
- package/dist/DataQuality/Model/QualityReportProblem.js +35 -0
- package/dist/DataQuality/Model/QualityReportResult.d.ts +9 -0
- package/dist/DataQuality/Model/QualityReportResult.js +14 -0
- package/dist/DataQuality/Model/QualityScan.d.ts +19 -0
- package/dist/DataQuality/Model/QualityScan.js +28 -0
- package/dist/DataQuality/Service/QualityEndpoint.d.ts +64 -7
- package/dist/DataQuality/Service/QualityEndpoint.js +116 -30
- package/dist/FeedManagement/Service/CatalogFeedEndpoint.js +2 -1
- package/dist/Flow/Service/FlowEndpoint.js +6 -5
- package/dist/Flow/Service/FlowRunEndpoint.js +8 -7
- package/dist/Flow/Service/FlowRunRequestEndpoint.js +2 -1
- package/dist/Flow/Service/FlowRunStatsEndpoint.js +2 -1
- package/dist/Helper/LoadAllHelper.js +7 -1
- package/dist/Http/Data/Path.d.ts +11 -0
- package/dist/Http/Data/Path.js +31 -0
- package/dist/Http/HttpClient.d.ts +8 -1
- package/dist/Http/HttpClient.js +21 -1
- package/dist/Http/OAuthClientOptions.d.ts +2 -0
- package/dist/Http/OAuthClientOptions.js +3 -0
- package/dist/Http/Transport/OAuthClient.d.ts +7 -0
- package/dist/Http/Transport/OAuthClient.js +31 -4
- package/dist/Logging/Service/LogEndpoint.d.ts +5 -1
- package/dist/Logging/Service/LogEndpoint.js +14 -8
- package/dist/{Pulse → MarketPulse}/Service/CompetitorEndpoint.js +4 -3
- package/dist/{Pulse → MarketPulse}/Service/CrawlJobEndpoint.d.ts +1 -0
- package/dist/{Pulse → MarketPulse}/Service/CrawlJobEndpoint.js +8 -6
- package/dist/{Pulse → MarketPulse}/Service/IndexJobEndpoint.js +5 -4
- package/dist/{Pulse → MarketPulse}/Service/PriceAlertEndpoint.js +8 -7
- package/dist/{Pulse → MarketPulse}/Service/PricingEndpoint.js +9 -8
- package/dist/{Pulse → MarketPulse}/Service/ProductGroupEndpoint.js +4 -3
- package/dist/{Pulse → MarketPulse}/Service/ProductMatchEndpoint.js +6 -5
- package/dist/{Pulse → MarketPulse}/Service/ProductMatchJobEndpoint.js +5 -4
- package/dist/{Pulse → MarketPulse}/Service/PulseCatalogProductEndpoint.js +4 -3
- package/dist/{Pulse → MarketPulse}/Service/PulseStatisticsEndpoint.js +5 -4
- package/dist/{Pulse → MarketPulse}/Service/VendorProductEndpoint.js +11 -7
- package/dist/Service/AccessTokenEndpoint.js +3 -2
- package/dist/Service/AdapterConnectionEndpoint.js +9 -8
- package/dist/Service/AdapterEndpoint.js +3 -2
- package/dist/Service/ChannelEndpoint.js +5 -4
- package/dist/Service/CodeDeployEndpoint.js +5 -4
- package/dist/Service/CodeSourceStrategiesEndpoint.js +3 -2
- package/dist/Service/CollectionsEndpoint.js +5 -4
- package/dist/Service/CommandExecutionEndpoint.js +2 -1
- package/dist/Service/ConfigEndpoint.d.ts +6 -1
- package/dist/Service/ConfigEndpoint.js +9 -3
- package/dist/Service/ConfigurationEndpoint.js +5 -4
- package/dist/Service/HealthAlertEndpoint.js +3 -2
- package/dist/Service/PlatformEndpoint.js +3 -2
- package/dist/Service/PlatformLanguageEndpoint.js +2 -1
- package/dist/Service/ProjectEndpoint.js +3 -2
- package/dist/Service/ProjectEnvironmentEndpoint.js +3 -2
- package/dist/Service/ProviderTokenEndpoint.js +4 -3
- package/dist/Service/RunnerPoolEndpoint.js +5 -4
- package/dist/Service/SourcesAccountEndpoint.js +6 -5
- package/dist/Service/StorageEndpoint.js +8 -7
- package/dist/Service/SubscriberEndpoint.js +4 -3
- package/dist/Service/TriggerEndpoint.js +5 -4
- package/dist/Service/UserActionEndpoint.js +4 -3
- package/dist/Service/UserEndpoint.js +3 -2
- package/dist/Service/WorkspaceEndpoint.js +2 -1
- package/dist/Service/WorkspaceMemberEndpoint.js +5 -4
- package/dist/index.d.ts +52 -48
- package/dist/index.js +38 -34
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -2
- package/dist/DataQuality/Model/QualitySuppressionResult.d.ts +0 -6
- /package/dist/{EnhanceData → DataEnrichment}/Model/GenerateContentBatch.d.ts +0 -0
- /package/dist/{EnhanceData → DataEnrichment}/Model/GenerateContentBatch.js +0 -0
- /package/dist/{EnhanceData → DataEnrichment}/Model/GenerateContentBatchData.d.ts +0 -0
- /package/dist/{EnhanceData → DataEnrichment}/Model/GenerateContentBatchData.js +0 -0
- /package/dist/{EnhanceData → DataEnrichment}/Service/GenerateContentEndpoint.d.ts +0 -0
- /package/dist/DataQuality/Model/{QualitySuppressionResult.js → QualityEntityProblemSuppressionResult.js} +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/CatalogProductWithMatches.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/CatalogProductWithMatches.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/CompetingVendorProduct.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/CompetingVendorProduct.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/Competitor.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/Competitor.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/CrawlJob.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/CrawlJob.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/IndexJob.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/IndexJob.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/MarketSummaryEntry.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/MarketSummaryEntry.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/MatchHistory.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/MatchHistory.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/MatchHistoryBucket.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/MatchHistoryBucket.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/MatchHistoryInterval.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/MatchHistoryInterval.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/MatchedVendorProduct.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/MatchedVendorProduct.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PriceAlertConfig.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PriceAlertConfig.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PriceAlertConfigData.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PriceAlertConfigData.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PriceAlertEvent.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PriceAlertEvent.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PriceIndexSnapshotEntry.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PriceIndexSnapshotEntry.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PriceSuggestion.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PriceSuggestion.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PricingRule.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PricingRule.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PricingRuleData.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PricingRuleData.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductGroup.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductGroup.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductGroupData.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductGroupData.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductMatch.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductMatch.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductMatchJob.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductMatchJob.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductSegmentType.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductSegmentType.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductsSegment.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ProductsSegment.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PulseCatalogProductFilterOptions.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PulseCatalogProductFilterOptions.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PulseCatalogProductFilters.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/PulseCatalogProductFilters.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ReviewMatch.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ReviewMatch.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ReviewMatchFilters.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/ReviewMatchFilters.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/TopCompetitor.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/TopCompetitor.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/Vendor.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/Vendor.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/VendorProduct.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/VendorProduct.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/VendorProductPriceHistoryEntry.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/VendorProductPriceHistoryEntry.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/VendorStatus.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Model/VendorStatus.js +0 -0
- /package/dist/{Pulse → MarketPulse}/Service/CompetitorEndpoint.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Service/IndexJobEndpoint.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Service/PriceAlertEndpoint.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Service/PricingEndpoint.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Service/ProductGroupEndpoint.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Service/ProductMatchEndpoint.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Service/ProductMatchJobEndpoint.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Service/PulseCatalogProductEndpoint.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Service/PulseStatisticsEndpoint.d.ts +0 -0
- /package/dist/{Pulse → MarketPulse}/Service/VendorProductEndpoint.d.ts +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { path } from '../../Http/Data/Path.js';
|
|
1
2
|
import { QueryString } from '../../Http/Data/QueryString.js';
|
|
2
3
|
import { Catalog } from '../Model/Catalog.js';
|
|
3
4
|
import { Endpoint } from '../../Service/Endpoint.js';
|
|
@@ -15,7 +16,7 @@ export class CatalogEndpoint extends Endpoint {
|
|
|
15
16
|
}
|
|
16
17
|
/** The catalog with this id, or null. */
|
|
17
18
|
async getById(catalogId) {
|
|
18
|
-
const result = await this.requestObject('/catalogs
|
|
19
|
+
const result = await this.requestObject(path('/catalogs/:catalogId', { catalogId: catalogId.toString() }), null, Catalog.parse, 'GET');
|
|
19
20
|
return result.getData();
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { path } from '../../Http/Data/Path.js';
|
|
1
2
|
import { QueryString } from '../../Http/Data/QueryString.js';
|
|
2
3
|
import { Endpoint } from '../../Service/Endpoint.js';
|
|
3
4
|
import { CatalogProduct } from '../Model/CatalogProduct.js';
|
|
@@ -9,13 +10,13 @@ import { CatalogProduct } from '../Model/CatalogProduct.js';
|
|
|
9
10
|
*/
|
|
10
11
|
export class CatalogProductEndpoint extends Endpoint {
|
|
11
12
|
async getByCatalog(catalogId, pagination = null) {
|
|
12
|
-
const queryString = new QueryString('/catalogs/'
|
|
13
|
+
const queryString = new QueryString(path('/catalogs/:catalogId/products', { catalogId: catalogId.toString() }));
|
|
13
14
|
queryString.addPagination(pagination);
|
|
14
15
|
return await this.requestCollection(queryString, CatalogProduct.parse);
|
|
15
16
|
}
|
|
16
17
|
/** The product with this catalog identifier, or null. */
|
|
17
18
|
async getByIdentifier(catalogId, identifier) {
|
|
18
|
-
const queryString = new QueryString('/catalogs/'
|
|
19
|
+
const queryString = new QueryString(path('/catalogs/:catalogId/products', { catalogId: catalogId.toString() }));
|
|
19
20
|
queryString.set('identifier', identifier);
|
|
20
21
|
const result = await this.requestCollection(queryString, CatalogProduct.parse);
|
|
21
22
|
const products = result.getData();
|
package/dist/Client.d.ts
CHANGED
|
@@ -24,20 +24,20 @@ import { PlatformLanguageEndpoint } from './Service/PlatformLanguageEndpoint.js'
|
|
|
24
24
|
import { ProjectEndpoint } from './Service/ProjectEndpoint.js';
|
|
25
25
|
import { ProjectEnvironmentEndpoint } from './Service/ProjectEnvironmentEndpoint.js';
|
|
26
26
|
import { ProviderTokenEndpoint } from './Service/ProviderTokenEndpoint.js';
|
|
27
|
-
import { VendorProductEndpoint } from './
|
|
28
|
-
import { CrawlJobEndpoint } from './
|
|
27
|
+
import { VendorProductEndpoint } from './MarketPulse/Service/VendorProductEndpoint.js';
|
|
28
|
+
import { CrawlJobEndpoint } from './MarketPulse/Service/CrawlJobEndpoint.js';
|
|
29
29
|
import { CatalogEndpoint } from './Catalog/Service/CatalogEndpoint.js';
|
|
30
|
-
import { ProductMatchJobEndpoint } from './
|
|
31
|
-
import { IndexJobEndpoint } from './
|
|
32
|
-
import { ProductMatchEndpoint } from './
|
|
33
|
-
import { PulseCatalogProductEndpoint } from './
|
|
34
|
-
import { PriceAlertEndpoint } from './
|
|
35
|
-
import { PricingEndpoint } from './
|
|
36
|
-
import { ProductGroupEndpoint } from './
|
|
30
|
+
import { ProductMatchJobEndpoint } from './MarketPulse/Service/ProductMatchJobEndpoint.js';
|
|
31
|
+
import { IndexJobEndpoint } from './MarketPulse/Service/IndexJobEndpoint.js';
|
|
32
|
+
import { ProductMatchEndpoint } from './MarketPulse/Service/ProductMatchEndpoint.js';
|
|
33
|
+
import { PulseCatalogProductEndpoint } from './MarketPulse/Service/PulseCatalogProductEndpoint.js';
|
|
34
|
+
import { PriceAlertEndpoint } from './MarketPulse/Service/PriceAlertEndpoint.js';
|
|
35
|
+
import { PricingEndpoint } from './MarketPulse/Service/PricingEndpoint.js';
|
|
36
|
+
import { ProductGroupEndpoint } from './MarketPulse/Service/ProductGroupEndpoint.js';
|
|
37
37
|
import { CatalogProductEndpoint } from './Catalog/Service/CatalogProductEndpoint.js';
|
|
38
|
-
import { GenerateContentEndpoint } from './
|
|
39
|
-
import { CompetitorEndpoint } from './
|
|
40
|
-
import { PulseStatisticsEndpoint } from './
|
|
38
|
+
import { GenerateContentEndpoint } from './DataEnrichment/Service/GenerateContentEndpoint.js';
|
|
39
|
+
import { CompetitorEndpoint } from './MarketPulse/Service/CompetitorEndpoint.js';
|
|
40
|
+
import { PulseStatisticsEndpoint } from './MarketPulse/Service/PulseStatisticsEndpoint.js';
|
|
41
41
|
import { QualityEndpoint } from './DataQuality/Service/QualityEndpoint.js';
|
|
42
42
|
import { CatalogFeedEndpoint } from './FeedManagement/Service/CatalogFeedEndpoint.js';
|
|
43
43
|
import { RunnerEndpoint } from './Service/RunnerEndpoint.js';
|
package/dist/Client.js
CHANGED
|
@@ -24,20 +24,20 @@ import { PlatformLanguageEndpoint } from './Service/PlatformLanguageEndpoint.js'
|
|
|
24
24
|
import { ProjectEndpoint } from './Service/ProjectEndpoint.js';
|
|
25
25
|
import { ProjectEnvironmentEndpoint } from './Service/ProjectEnvironmentEndpoint.js';
|
|
26
26
|
import { ProviderTokenEndpoint } from './Service/ProviderTokenEndpoint.js';
|
|
27
|
-
import { VendorProductEndpoint } from './
|
|
28
|
-
import { CrawlJobEndpoint } from './
|
|
27
|
+
import { VendorProductEndpoint } from './MarketPulse/Service/VendorProductEndpoint.js';
|
|
28
|
+
import { CrawlJobEndpoint } from './MarketPulse/Service/CrawlJobEndpoint.js';
|
|
29
29
|
import { CatalogEndpoint } from './Catalog/Service/CatalogEndpoint.js';
|
|
30
|
-
import { ProductMatchJobEndpoint } from './
|
|
31
|
-
import { IndexJobEndpoint } from './
|
|
32
|
-
import { ProductMatchEndpoint } from './
|
|
33
|
-
import { PulseCatalogProductEndpoint } from './
|
|
34
|
-
import { PriceAlertEndpoint } from './
|
|
35
|
-
import { PricingEndpoint } from './
|
|
36
|
-
import { ProductGroupEndpoint } from './
|
|
30
|
+
import { ProductMatchJobEndpoint } from './MarketPulse/Service/ProductMatchJobEndpoint.js';
|
|
31
|
+
import { IndexJobEndpoint } from './MarketPulse/Service/IndexJobEndpoint.js';
|
|
32
|
+
import { ProductMatchEndpoint } from './MarketPulse/Service/ProductMatchEndpoint.js';
|
|
33
|
+
import { PulseCatalogProductEndpoint } from './MarketPulse/Service/PulseCatalogProductEndpoint.js';
|
|
34
|
+
import { PriceAlertEndpoint } from './MarketPulse/Service/PriceAlertEndpoint.js';
|
|
35
|
+
import { PricingEndpoint } from './MarketPulse/Service/PricingEndpoint.js';
|
|
36
|
+
import { ProductGroupEndpoint } from './MarketPulse/Service/ProductGroupEndpoint.js';
|
|
37
37
|
import { CatalogProductEndpoint } from './Catalog/Service/CatalogProductEndpoint.js';
|
|
38
|
-
import { GenerateContentEndpoint } from './
|
|
39
|
-
import { CompetitorEndpoint } from './
|
|
40
|
-
import { PulseStatisticsEndpoint } from './
|
|
38
|
+
import { GenerateContentEndpoint } from './DataEnrichment/Service/GenerateContentEndpoint.js';
|
|
39
|
+
import { CompetitorEndpoint } from './MarketPulse/Service/CompetitorEndpoint.js';
|
|
40
|
+
import { PulseStatisticsEndpoint } from './MarketPulse/Service/PulseStatisticsEndpoint.js';
|
|
41
41
|
import { QualityEndpoint } from './DataQuality/Service/QualityEndpoint.js';
|
|
42
42
|
import { CatalogFeedEndpoint } from './FeedManagement/Service/CatalogFeedEndpoint.js';
|
|
43
43
|
import { RunnerEndpoint } from './Service/RunnerEndpoint.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { path } from '../../Http/Data/Path.js';
|
|
1
2
|
import { QueryString } from '../../Http/Data/QueryString.js';
|
|
2
3
|
import { Endpoint } from '../../Service/Endpoint.js';
|
|
3
4
|
import { GenerateContentBatch } from '../Model/GenerateContentBatch.js';
|
|
@@ -9,13 +10,13 @@ import { GenerateContentBatch } from '../Model/GenerateContentBatch.js';
|
|
|
9
10
|
*/
|
|
10
11
|
export class GenerateContentEndpoint extends Endpoint {
|
|
11
12
|
async getBatches(projectId, pagination = null) {
|
|
12
|
-
const queryString = new QueryString('/projects
|
|
13
|
+
const queryString = new QueryString(path('/projects/:projectId/content-generation-batches', { projectId }));
|
|
13
14
|
queryString.addPagination(pagination);
|
|
14
15
|
return await this.requestCollection(queryString, GenerateContentBatch.parse);
|
|
15
16
|
}
|
|
16
17
|
/** Queue a batch. The generated values become proposals to review, not direct writes. */
|
|
17
18
|
async requestGeneration(projectId, data) {
|
|
18
|
-
const result = await this.requestObject('/projects
|
|
19
|
+
const result = await this.requestObject(path('/projects/:projectId/content-generation-batches', { projectId }), data, GenerateContentBatch.parse, 'POST');
|
|
19
20
|
return result.getData();
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiRecord } from '../../Model/ApiRecord.js';
|
|
2
2
|
/**
|
|
3
3
|
* A data-quality dataset: the set of entities being checked, and the problems found on them —
|
|
4
|
-
* the `/
|
|
4
|
+
* the `/data-quality/datasets` resource.
|
|
5
5
|
*
|
|
6
6
|
* `autoCloseMode` decides what happens to an open problem that a later scan no longer reports.
|
|
7
7
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A data-quality dataset: the set of entities being checked, and the problems found on them —
|
|
3
|
-
* the `/
|
|
3
|
+
* the `/data-quality/datasets` resource.
|
|
4
4
|
*
|
|
5
5
|
* `autoCloseMode` decides what happens to an open problem that a later scan no longer reports.
|
|
6
6
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiRecord } from '../../Model/ApiRecord.js';
|
|
2
2
|
/**
|
|
3
3
|
* One thing being checked in a dataset (a product, a category, …), with a rollup of the problems
|
|
4
|
-
* currently open on it — the `/
|
|
4
|
+
* currently open on it — the `/data-quality/datasets/:datasetId/entities` resource.
|
|
5
5
|
*
|
|
6
6
|
* `entityType` + `entityId` identify it in the source system; `id` is the dataset's own row.
|
|
7
7
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* One thing being checked in a dataset (a product, a category, …), with a rollup of the problems
|
|
3
|
-
* currently open on it — the `/
|
|
3
|
+
* currently open on it — the `/data-quality/datasets/:datasetId/entities` resource.
|
|
4
4
|
*
|
|
5
5
|
* `entityType` + `entityId` identify it in the source system; `id` is the dataset's own row.
|
|
6
6
|
*/
|
package/dist/DataQuality/Model/{QualitySuppression.d.ts → QualityEntityProblemSuppression.d.ts}
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ApiRecord } from '../../Model/ApiRecord.js';
|
|
2
2
|
/**
|
|
3
3
|
* A standing decision to ignore a problem code — the
|
|
4
|
-
* `/
|
|
4
|
+
* `/data-quality/datasets/:datasetId/entity-problem-suppressions` resource.
|
|
5
5
|
*
|
|
6
6
|
* With `entityType` and `entityId` set it covers that one entity; with both null it covers the code
|
|
7
7
|
* across the whole dataset. Suppressed problems are still ingested but parked in `muted`, so they
|
|
8
8
|
* stay out of the needs-attention list and out of every auto-close path without losing history.
|
|
9
9
|
*/
|
|
10
|
-
export declare class
|
|
10
|
+
export declare class QualityEntityProblemSuppression {
|
|
11
11
|
id: string;
|
|
12
12
|
code: string;
|
|
13
13
|
/** Both null = the suppression applies to this code across the whole dataset. */
|
|
@@ -18,5 +18,5 @@ export declare class QualitySuppression {
|
|
|
18
18
|
createdAt: Date | null;
|
|
19
19
|
constructor(id: string, code: string);
|
|
20
20
|
get isDatasetWide(): boolean;
|
|
21
|
-
static parse(raw: ApiRecord):
|
|
21
|
+
static parse(raw: ApiRecord): QualityEntityProblemSuppression;
|
|
22
22
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A standing decision to ignore a problem code — the
|
|
3
|
-
* `/
|
|
3
|
+
* `/data-quality/datasets/:datasetId/entity-problem-suppressions` resource.
|
|
4
4
|
*
|
|
5
5
|
* With `entityType` and `entityId` set it covers that one entity; with both null it covers the code
|
|
6
6
|
* across the whole dataset. Suppressed problems are still ingested but parked in `muted`, so they
|
|
7
7
|
* stay out of the needs-attention list and out of every auto-close path without losing history.
|
|
8
8
|
*/
|
|
9
|
-
export class
|
|
9
|
+
export class QualityEntityProblemSuppression {
|
|
10
10
|
id;
|
|
11
11
|
code;
|
|
12
12
|
/** Both null = the suppression applies to this code across the whole dataset. */
|
|
@@ -23,7 +23,7 @@ export class QualitySuppression {
|
|
|
23
23
|
return this.entityId === null;
|
|
24
24
|
}
|
|
25
25
|
static parse(raw) {
|
|
26
|
-
const suppression = new
|
|
26
|
+
const suppression = new QualityEntityProblemSuppression(raw.id, raw.code);
|
|
27
27
|
suppression.entityType = raw.entity_type ?? null;
|
|
28
28
|
// The API strips the `_id` suffix, so `entity_id` arrives as `entity`.
|
|
29
29
|
suppression.entityId = raw.entity ?? null;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { QualityEntityProblemSuppression } from './QualityEntityProblemSuppression.js';
|
|
2
|
+
/** What a new suppression did: the record itself, plus how many open problems it muted. */
|
|
3
|
+
export type QualityEntityProblemSuppressionResult = {
|
|
4
|
+
suppression: QualityEntityProblemSuppression | null;
|
|
5
|
+
muted: number;
|
|
6
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiRecord } from '../../Model/ApiRecord.js';
|
|
2
2
|
/**
|
|
3
3
|
* One quality issue found on an entity — the
|
|
4
|
-
* `/
|
|
4
|
+
* `/data-quality/datasets/:datasetId/entities/:entityType/:entityId/problems` resource.
|
|
5
5
|
*
|
|
6
6
|
* `code` says what is wrong (the rule that fired) and `property` where; `channel` and `locale`
|
|
7
7
|
* narrow it to one sales channel or language when the rule is scoped that way.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* One quality issue found on an entity — the
|
|
3
|
-
* `/
|
|
3
|
+
* `/data-quality/datasets/:datasetId/entities/:entityType/:entityId/problems` resource.
|
|
4
4
|
*
|
|
5
5
|
* `code` says what is wrong (the rule that fired) and `property` where; `channel` and `locale`
|
|
6
6
|
* narrow it to one sales channel or language when the rule is scoped that way.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ApiRecord } from '../../Model/ApiRecord.js';
|
|
2
2
|
/**
|
|
3
|
-
* The catalogue entry behind a problem code — the `/
|
|
3
|
+
* The catalogue entry behind a problem code — the `/data-quality/definitions` resource.
|
|
4
4
|
*
|
|
5
5
|
* A code is a machine key (`verlichting.ean_invalid_checkdigit`); the definition is what makes it
|
|
6
6
|
* readable, so anything showing a code to a user should resolve it here. Definitions are either
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The catalogue entry behind a problem code — the `/
|
|
2
|
+
* The catalogue entry behind a problem code — the `/data-quality/definitions` resource.
|
|
3
3
|
*
|
|
4
4
|
* A code is a machine key (`verlichting.ean_invalid_checkdigit`); the definition is what makes it
|
|
5
5
|
* readable, so anything showing a code to a user should resolve it here. Definitions are either
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiRecord } from '../../Model/ApiRecord.js';
|
|
2
2
|
/**
|
|
3
3
|
* One transition of a single problem — the
|
|
4
|
-
* `/
|
|
4
|
+
* `/data-quality/datasets/:datasetId/entities/:entityType/:entityId/problems/:code/events` resource.
|
|
5
5
|
*
|
|
6
6
|
* A problem is reported once and then re-reported by every later scan; only the transitions are
|
|
7
7
|
* recorded, so the timeline stays short: `reported` when it first appears, `resolved` when a scan
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* One transition of a single problem — the
|
|
3
|
-
* `/
|
|
3
|
+
* `/data-quality/datasets/:datasetId/entities/:entityType/:entityId/problems/:code/events` resource.
|
|
4
4
|
*
|
|
5
5
|
* A problem is reported once and then re-reported by every later scan; only the transitions are
|
|
6
6
|
* recorded, so the timeline stays short: `reported` when it first appears, `resolved` when a scan
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { QualityReportProblem } from './QualityReportProblem.js';
|
|
2
|
+
/**
|
|
3
|
+
* One entity being reported on: its identity, optionally what it is, and what was found.
|
|
4
|
+
*
|
|
5
|
+
* `entityType` + `entityId` are the natural key within the dataset — an entity is created on first
|
|
6
|
+
* report, so there is nothing to register up front. `name`, `url` and `imageUrl` are optional: send
|
|
7
|
+
* them and the dashboard can show a recognisable row instead of a bare identifier.
|
|
8
|
+
*
|
|
9
|
+
* `passed` carries codes that were *checked and found clean*. That is what lets the platform close
|
|
10
|
+
* a problem that is no longer there — an entity reported with no problems and no `passed` codes says
|
|
11
|
+
* nothing about the codes it was previously failing.
|
|
12
|
+
*/
|
|
13
|
+
export declare class QualityReportEntity {
|
|
14
|
+
entityType: string;
|
|
15
|
+
entityId: string;
|
|
16
|
+
name: string | null;
|
|
17
|
+
url: string | null;
|
|
18
|
+
imageUrl: string | null;
|
|
19
|
+
data: Record<string, unknown> | null;
|
|
20
|
+
problems: QualityReportProblem[];
|
|
21
|
+
passed: string[];
|
|
22
|
+
constructor(entityType: string, entityId: string);
|
|
23
|
+
/**
|
|
24
|
+
* The snake_case wire shape.
|
|
25
|
+
*
|
|
26
|
+
* Built explicitly, and sent with `_formatted: true`, because the client's key formatter
|
|
27
|
+
* snake_cases keys *and strips a trailing `_id`* — it would turn `entity_id` into `entity`, which
|
|
28
|
+
* the report endpoint rejects. See Endpoint.prepareParameters().
|
|
29
|
+
*/
|
|
30
|
+
toPayload(): Record<string, unknown>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One entity being reported on: its identity, optionally what it is, and what was found.
|
|
3
|
+
*
|
|
4
|
+
* `entityType` + `entityId` are the natural key within the dataset — an entity is created on first
|
|
5
|
+
* report, so there is nothing to register up front. `name`, `url` and `imageUrl` are optional: send
|
|
6
|
+
* them and the dashboard can show a recognisable row instead of a bare identifier.
|
|
7
|
+
*
|
|
8
|
+
* `passed` carries codes that were *checked and found clean*. That is what lets the platform close
|
|
9
|
+
* a problem that is no longer there — an entity reported with no problems and no `passed` codes says
|
|
10
|
+
* nothing about the codes it was previously failing.
|
|
11
|
+
*/
|
|
12
|
+
export class QualityReportEntity {
|
|
13
|
+
entityType;
|
|
14
|
+
entityId;
|
|
15
|
+
name = null;
|
|
16
|
+
url = null;
|
|
17
|
+
imageUrl = null;
|
|
18
|
+
data = null;
|
|
19
|
+
problems = [];
|
|
20
|
+
passed = [];
|
|
21
|
+
constructor(entityType, entityId) {
|
|
22
|
+
this.entityType = entityType;
|
|
23
|
+
this.entityId = entityId;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The snake_case wire shape.
|
|
27
|
+
*
|
|
28
|
+
* Built explicitly, and sent with `_formatted: true`, because the client's key formatter
|
|
29
|
+
* snake_cases keys *and strips a trailing `_id`* — it would turn `entity_id` into `entity`, which
|
|
30
|
+
* the report endpoint rejects. See Endpoint.prepareParameters().
|
|
31
|
+
*/
|
|
32
|
+
toPayload() {
|
|
33
|
+
return {
|
|
34
|
+
entity_type: this.entityType,
|
|
35
|
+
entity_id: this.entityId,
|
|
36
|
+
name: this.name,
|
|
37
|
+
url: this.url,
|
|
38
|
+
image_url: this.imageUrl,
|
|
39
|
+
data: this.data,
|
|
40
|
+
problems: this.problems.map((problem) => problem.toPayload()),
|
|
41
|
+
passed: this.passed,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One problem found on one entity, as sent to the report endpoint.
|
|
3
|
+
*
|
|
4
|
+
* `code` is the machine key the problem definition hangs off (`shop.ean_invalid_checkdigit`);
|
|
5
|
+
* `property` is what the problem is about (`ean`, `name`, `image`). Severity is optional: leave it
|
|
6
|
+
* null and the platform applies the definition's default.
|
|
7
|
+
*/
|
|
8
|
+
export declare class QualityReportProblem {
|
|
9
|
+
code: string;
|
|
10
|
+
property: string;
|
|
11
|
+
severity: string | null;
|
|
12
|
+
note: string | null;
|
|
13
|
+
data: Record<string, unknown> | null;
|
|
14
|
+
channel: string | null;
|
|
15
|
+
locale: string | null;
|
|
16
|
+
constructor(code: string, property: string);
|
|
17
|
+
/**
|
|
18
|
+
* The snake_case wire shape. Built here rather than left to the client's key formatter, which
|
|
19
|
+
* would rewrite the keys — see QualityReportEntity.toPayload().
|
|
20
|
+
*/
|
|
21
|
+
toPayload(): Record<string, unknown>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One problem found on one entity, as sent to the report endpoint.
|
|
3
|
+
*
|
|
4
|
+
* `code` is the machine key the problem definition hangs off (`shop.ean_invalid_checkdigit`);
|
|
5
|
+
* `property` is what the problem is about (`ean`, `name`, `image`). Severity is optional: leave it
|
|
6
|
+
* null and the platform applies the definition's default.
|
|
7
|
+
*/
|
|
8
|
+
export class QualityReportProblem {
|
|
9
|
+
code;
|
|
10
|
+
property;
|
|
11
|
+
severity = null;
|
|
12
|
+
note = null;
|
|
13
|
+
data = null;
|
|
14
|
+
channel = null;
|
|
15
|
+
locale = null;
|
|
16
|
+
constructor(code, property) {
|
|
17
|
+
this.code = code;
|
|
18
|
+
this.property = property;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The snake_case wire shape. Built here rather than left to the client's key formatter, which
|
|
22
|
+
* would rewrite the keys — see QualityReportEntity.toPayload().
|
|
23
|
+
*/
|
|
24
|
+
toPayload() {
|
|
25
|
+
return {
|
|
26
|
+
code: this.code,
|
|
27
|
+
property: this.property,
|
|
28
|
+
severity: this.severity,
|
|
29
|
+
note: this.note,
|
|
30
|
+
data: this.data,
|
|
31
|
+
channel: this.channel,
|
|
32
|
+
locale: this.locale,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ApiRecord } from '../../Model/ApiRecord.js';
|
|
2
|
+
/** What a report call did: how much was ingested, and how much it resolved. */
|
|
3
|
+
export declare class QualityReportResult {
|
|
4
|
+
entityCount: number;
|
|
5
|
+
problemCount: number;
|
|
6
|
+
/** Problems closed because the reporter said the code now passes on that entity. */
|
|
7
|
+
resolvedCount: number;
|
|
8
|
+
static parse(raw: ApiRecord): QualityReportResult;
|
|
9
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** What a report call did: how much was ingested, and how much it resolved. */
|
|
2
|
+
export class QualityReportResult {
|
|
3
|
+
entityCount = 0;
|
|
4
|
+
problemCount = 0;
|
|
5
|
+
/** Problems closed because the reporter said the code now passes on that entity. */
|
|
6
|
+
resolvedCount = 0;
|
|
7
|
+
static parse(raw) {
|
|
8
|
+
const result = new QualityReportResult();
|
|
9
|
+
result.entityCount = Number(raw.entity_count ?? 0);
|
|
10
|
+
result.problemCount = Number(raw.problem_count ?? 0);
|
|
11
|
+
result.resolvedCount = Number(raw.resolved_count ?? 0);
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ApiRecord } from '../../Model/ApiRecord.js';
|
|
2
|
+
/**
|
|
3
|
+
* One reporting run against a dataset — the `/data-quality/datasets/:datasetId/scans` resource.
|
|
4
|
+
*
|
|
5
|
+
* A scan brackets the problems a reporter sends: open one, report into it, complete it. Completing
|
|
6
|
+
* is what lets the platform resolve problems that were not re-reported, so a scan that is opened and
|
|
7
|
+
* never completed leaves stale problems open.
|
|
8
|
+
*/
|
|
9
|
+
export declare class QualityScan {
|
|
10
|
+
id: string;
|
|
11
|
+
dataset: string;
|
|
12
|
+
/** The check pack this run covers; scopes what auto-close is allowed to resolve. */
|
|
13
|
+
pack: string | null;
|
|
14
|
+
status: string;
|
|
15
|
+
startedAt: Date | null;
|
|
16
|
+
completedAt: Date | null;
|
|
17
|
+
constructor(id: string, dataset: string, status: string);
|
|
18
|
+
static parse(raw: ApiRecord): QualityScan;
|
|
19
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One reporting run against a dataset — the `/data-quality/datasets/:datasetId/scans` resource.
|
|
3
|
+
*
|
|
4
|
+
* A scan brackets the problems a reporter sends: open one, report into it, complete it. Completing
|
|
5
|
+
* is what lets the platform resolve problems that were not re-reported, so a scan that is opened and
|
|
6
|
+
* never completed leaves stale problems open.
|
|
7
|
+
*/
|
|
8
|
+
export class QualityScan {
|
|
9
|
+
id;
|
|
10
|
+
dataset;
|
|
11
|
+
/** The check pack this run covers; scopes what auto-close is allowed to resolve. */
|
|
12
|
+
pack = null;
|
|
13
|
+
status;
|
|
14
|
+
startedAt = null;
|
|
15
|
+
completedAt = null;
|
|
16
|
+
constructor(id, dataset, status) {
|
|
17
|
+
this.id = id;
|
|
18
|
+
this.dataset = dataset;
|
|
19
|
+
this.status = status;
|
|
20
|
+
}
|
|
21
|
+
static parse(raw) {
|
|
22
|
+
const scan = new QualityScan(raw.id, raw.dataset, raw.status);
|
|
23
|
+
scan.pack = raw.pack ?? null;
|
|
24
|
+
scan.startedAt = raw.started_at ? new Date(raw.started_at) : null;
|
|
25
|
+
scan.completedAt = raw.completed_at ? new Date(raw.completed_at) : null;
|
|
26
|
+
return scan;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -5,14 +5,17 @@ import { QualityFilterOptions } from '../Model/QualityFilterOptions.js';
|
|
|
5
5
|
import { QualityProblem } from '../Model/QualityProblem.js';
|
|
6
6
|
import { QualityProblemDefinition } from '../Model/QualityProblemDefinition.js';
|
|
7
7
|
import { QualityProblemEvent } from '../Model/QualityProblemEvent.js';
|
|
8
|
+
import { QualityReportEntity } from '../Model/QualityReportEntity.js';
|
|
9
|
+
import { QualityReportResult } from '../Model/QualityReportResult.js';
|
|
10
|
+
import { QualityScan } from '../Model/QualityScan.js';
|
|
8
11
|
import { QualitySummary } from '../Model/QualitySummary.js';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
12
|
+
import { QualityEntityProblemSuppression } from '../Model/QualityEntityProblemSuppression.js';
|
|
13
|
+
import { QualityEntityProblemSuppressionResult } from '../Model/QualityEntityProblemSuppressionResult.js';
|
|
11
14
|
import { CursorPagination } from '../../Model/Pagination/CursorPagination.js';
|
|
12
15
|
import { CollectionResult } from '../../Model/Result/CollectionResult.js';
|
|
13
16
|
import { Endpoint } from '../../Service/Endpoint.js';
|
|
14
17
|
/**
|
|
15
|
-
* Data Quality — `/
|
|
18
|
+
* Data Quality — `/data-quality/datasets`. A dataset holds the entities being checked and the
|
|
16
19
|
* problems open on them.
|
|
17
20
|
*/
|
|
18
21
|
export declare class QualityEndpoint extends Endpoint {
|
|
@@ -29,6 +32,60 @@ export declare class QualityEndpoint extends Endpoint {
|
|
|
29
32
|
getEntityProblems(datasetId: string, entityType: string, entityId: string, includeSuppressed?: boolean): Promise<CollectionResult<QualityProblem>>;
|
|
30
33
|
/** The transition timeline for one problem, oldest first. */
|
|
31
34
|
getProblemEvents(datasetId: string, entityType: string, entityId: string, code: string): Promise<CollectionResult<QualityProblemEvent>>;
|
|
35
|
+
/**
|
|
36
|
+
* Open a scan: the bracket a reporter puts around one run of checks.
|
|
37
|
+
*
|
|
38
|
+
* `pack` names the group of checks this run covers. It scopes what completing the scan is allowed
|
|
39
|
+
* to close, so a partial run cannot resolve problems it never looked at.
|
|
40
|
+
*/
|
|
41
|
+
openScan(datasetId: string, pack?: string | null): Promise<QualityScan>;
|
|
42
|
+
/**
|
|
43
|
+
* Report what an open scan found. Safe to call repeatedly to send entities in batches.
|
|
44
|
+
*
|
|
45
|
+
* Entities are created on first report — there is nothing to register up front.
|
|
46
|
+
*
|
|
47
|
+
* **Batch size**: the API caps a request body at 512 KB (the Gateway rejects over 1 MB before it
|
|
48
|
+
* even arrives), and an entity carrying one problem is roughly 250-300 bytes of JSON — so keep
|
|
49
|
+
* batches to a low four figures of entities. An oversize request comes back as `413` with error
|
|
50
|
+
* code `payload_too_large`. Send several batches into the same scan rather than one large one.
|
|
51
|
+
*/
|
|
52
|
+
reportToScan(datasetId: string, scanId: string, entities: QualityReportEntity[]): Promise<QualityReportResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Close the scan, resolving problems the run covered but did not re-report. Returns how many were
|
|
55
|
+
* resolved.
|
|
56
|
+
*
|
|
57
|
+
* Skipping this leaves problems open that the reporter has already stopped finding.
|
|
58
|
+
*/
|
|
59
|
+
completeScan(datasetId: string, scanId: string): Promise<number>;
|
|
60
|
+
/**
|
|
61
|
+
* Open a scan, report everything and complete it in one call — for a reporter that already has
|
|
62
|
+
* the full picture in memory and does not need to stream it in batches.
|
|
63
|
+
*
|
|
64
|
+
* Everything goes in one request, so this is bounded by the API's 512 KB body cap — a few
|
|
65
|
+
* thousand entities at most. Beyond that use `openScan` / `reportToScan` / `completeScan`, which
|
|
66
|
+
* can send as many batches as you like into one scan.
|
|
67
|
+
*/
|
|
68
|
+
reportProblems(datasetId: string, entities: QualityReportEntity[], pack?: string | null): Promise<QualityReportResult>;
|
|
69
|
+
/**
|
|
70
|
+
* Both report routes take the same already-snake_cased body and return the same counts.
|
|
71
|
+
*
|
|
72
|
+
* `_formatted: true` sends the body verbatim. Without it the client's key formatter would rewrite
|
|
73
|
+
* every key and strip the trailing `_id` from `entity_id`, which the endpoint requires.
|
|
74
|
+
*/
|
|
75
|
+
private postReport;
|
|
76
|
+
/**
|
|
77
|
+
* A write that came back with nothing — the base Endpoint maps a 404 to null data, and also
|
|
78
|
+
* returns null when the response cannot be parsed.
|
|
79
|
+
*
|
|
80
|
+
* Reads may legitimately answer "no such thing" with null, but a write cannot: returning a zero
|
|
81
|
+
* count here would be indistinguishable from a report that genuinely changed nothing, and a
|
|
82
|
+
* reporter would log success while its problems went nowhere.
|
|
83
|
+
*
|
|
84
|
+
* The message names both causes because the API cannot yet tell them apart — a missing dataset
|
|
85
|
+
* and a path that no longer exists (a reporter still on `/data_quality/`) both come back as a
|
|
86
|
+
* bare 404. Once the API sets an error `code`, branch on that instead.
|
|
87
|
+
*/
|
|
88
|
+
private static writeFailed;
|
|
32
89
|
/** Clear an entity's problems so the next scan starts from scratch; returns how many were removed. */
|
|
33
90
|
resetEntity(datasetId: string, entityType: string, entityId: string): Promise<number>;
|
|
34
91
|
getFilterOptions(datasetId: string): Promise<QualityFilterOptions>;
|
|
@@ -40,18 +97,18 @@ export declare class QualityEndpoint extends Endpoint {
|
|
|
40
97
|
* have open problems, so a fully suppressed or resolved code has no label there.
|
|
41
98
|
*/
|
|
42
99
|
getDefinitions(projectId: string, pack?: string | null): Promise<CollectionResult<QualityProblemDefinition>>;
|
|
43
|
-
|
|
100
|
+
getEntityProblemSuppressions(datasetId: string): Promise<CollectionResult<QualityEntityProblemSuppression>>;
|
|
44
101
|
/**
|
|
45
102
|
* Suppress a code, either on one entity or — with both entity fields omitted — across the whole
|
|
46
103
|
* dataset. Also mutes the matching problems that are already open, so suppressing acts on what
|
|
47
104
|
* is there rather than only on future scans.
|
|
48
105
|
*/
|
|
49
|
-
|
|
106
|
+
createEntityProblemSuppression(datasetId: string, suppression: {
|
|
50
107
|
code: string;
|
|
51
108
|
entityType?: string | null;
|
|
52
109
|
entityId?: string | null;
|
|
53
110
|
reason?: string | null;
|
|
54
|
-
}): Promise<
|
|
111
|
+
}): Promise<QualityEntityProblemSuppressionResult>;
|
|
55
112
|
/** Lift a suppression; returns how many muted problems were returned to the open list. */
|
|
56
|
-
|
|
113
|
+
deleteEntityProblemSuppression(datasetId: string, entityProblemSuppressionId: string): Promise<number>;
|
|
57
114
|
}
|