@spottoai/types-package 1.0.2-beta.356 → 1.0.2-beta.358

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.
Files changed (57) hide show
  1. package/README.md +26 -0
  2. package/dist/accounts/azureSpSetup.d.ts +2 -4
  3. package/dist/accounts/azureSpSetup.d.ts.map +1 -1
  4. package/dist/azure/billingArtifactCanonicalization.d.ts +28 -0
  5. package/dist/azure/billingArtifactCanonicalization.d.ts.map +1 -0
  6. package/dist/azure/billingArtifactCanonicalization.js +291 -0
  7. package/dist/azure/billingArtifactCanonicalization.js.map +1 -0
  8. package/dist/azure/billingArtifactEvidence.d.ts +39 -0
  9. package/dist/azure/billingArtifactEvidence.d.ts.map +1 -0
  10. package/dist/azure/billingArtifactEvidence.js +29 -0
  11. package/dist/azure/billingArtifactEvidence.js.map +1 -0
  12. package/dist/azure/billingArtifactGeneration.d.ts +114 -0
  13. package/dist/azure/billingArtifactGeneration.d.ts.map +1 -0
  14. package/dist/azure/billingArtifactGeneration.js +238 -0
  15. package/dist/azure/billingArtifactGeneration.js.map +1 -0
  16. package/dist/azure/billingPlots.d.ts +22 -0
  17. package/dist/azure/billingPlots.d.ts.map +1 -1
  18. package/dist/azure/billingPlots.js +186 -0
  19. package/dist/azure/billingPlots.js.map +1 -1
  20. package/dist/azure/views.d.ts +62 -1
  21. package/dist/azure/views.d.ts.map +1 -1
  22. package/dist/azure/views.js +152 -1
  23. package/dist/azure/views.js.map +1 -1
  24. package/dist/common/artifactControlData.d.ts +12 -0
  25. package/dist/common/artifactControlData.d.ts.map +1 -0
  26. package/dist/common/artifactControlData.js +102 -0
  27. package/dist/common/artifactControlData.js.map +1 -0
  28. package/dist/common/artifactEvidence.d.ts +144 -0
  29. package/dist/common/artifactEvidence.d.ts.map +1 -0
  30. package/dist/common/artifactEvidence.js +181 -0
  31. package/dist/common/artifactEvidence.js.map +1 -0
  32. package/dist/common/artifactEvidenceValidation.d.ts +16 -0
  33. package/dist/common/artifactEvidenceValidation.d.ts.map +1 -0
  34. package/dist/common/artifactEvidenceValidation.js +31 -0
  35. package/dist/common/artifactEvidenceValidation.js.map +1 -0
  36. package/dist/common/artifactGeneration.d.ts +4 -2
  37. package/dist/common/artifactGeneration.d.ts.map +1 -1
  38. package/dist/common/artifactGeneration.js.map +1 -1
  39. package/dist/common/capabilityPassport.d.ts +6 -11
  40. package/dist/common/capabilityPassport.d.ts.map +1 -1
  41. package/dist/common/capabilityPassport.js +2 -10
  42. package/dist/common/capabilityPassport.js.map +1 -1
  43. package/dist/esm/azure/billingArtifactCanonicalization.js +281 -0
  44. package/dist/esm/azure/billingArtifactEvidence.js +23 -0
  45. package/dist/esm/azure/billingArtifactGeneration.js +229 -0
  46. package/dist/esm/azure/billingPlots.js +184 -1
  47. package/dist/esm/azure/views.js +149 -0
  48. package/dist/esm/common/artifactControlData.js +95 -0
  49. package/dist/esm/common/artifactEvidence.js +173 -0
  50. package/dist/esm/common/artifactEvidenceValidation.js +24 -0
  51. package/dist/esm/common/capabilityPassport.js +2 -10
  52. package/dist/esm/index.js +3 -0
  53. package/dist/index.d.ts +3 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +3 -0
  56. package/dist/index.js.map +1 -1
  57. package/package.json +3 -2
@@ -0,0 +1,114 @@
1
+ import { type ArtifactCoverageVerdict, type ArtifactOwnershipBinding, type ArtifactRevisionVector } from '../common/artifactEvidence.js';
2
+ import type { ArtifactDescriptor } from '../common/artifactGeneration.js';
3
+ import type { BillingAnalyzerMetadata } from './billingGeneration.js';
4
+ import { type BillingCompletedArtifactPublicationDecision } from './billingArtifactEvidence.js';
5
+ type BillingArtifactBasis = 'actual' | 'amortized';
6
+ interface BillingAnalyzerRequestedPeriod {
7
+ fromInclusive: string;
8
+ throughExclusive: string;
9
+ dateBasis: 'utc' | 'billing-calendar' | 'company-local';
10
+ timeZone?: string;
11
+ basis: BillingArtifactBasis;
12
+ }
13
+ interface BillingAnalyzerInputObjectDescriptor {
14
+ path: string;
15
+ versionId?: string;
16
+ etag: string;
17
+ sha256: string;
18
+ byteCount: number;
19
+ rowCount: number;
20
+ basis: BillingArtifactBasis;
21
+ currencyCode?: string;
22
+ coverage: ArtifactCoverageVerdict;
23
+ }
24
+ interface BillingAnalyzerOutputArtifactDescriptor extends ArtifactDescriptor {
25
+ path: string;
26
+ }
27
+ interface BillingGenerationDocumentV2 {
28
+ schemaVersion: 2;
29
+ status: 'completed';
30
+ subscriptionId: string;
31
+ generationId: string;
32
+ ownership: ArtifactOwnershipBinding<'azure'>;
33
+ revision: ArtifactRevisionVector;
34
+ }
35
+ export interface BillingAnalyzerInputManifestV2 extends BillingGenerationDocumentV2 {
36
+ publicationKey: string;
37
+ coveragePlanDigest: string;
38
+ asOfUtc: string;
39
+ stableCutoffUtc: string;
40
+ requestedPeriods: [BillingAnalyzerRequestedPeriod, ...BillingAnalyzerRequestedPeriod[]];
41
+ inputs: [BillingAnalyzerInputObjectDescriptor, ...BillingAnalyzerInputObjectDescriptor[]];
42
+ manifestDigest: string;
43
+ completedAt: string;
44
+ }
45
+ export interface BillingAnalyzerInputCurrentPointerV1 {
46
+ schemaVersion: 1;
47
+ status: 'completed';
48
+ subscriptionId: string;
49
+ generationId: string;
50
+ ownership: ArtifactOwnershipBinding<'azure'> & {
51
+ ownershipEpochRevision: number;
52
+ };
53
+ revision: ArtifactRevisionVector & {
54
+ ownershipEpochRevision: number;
55
+ };
56
+ manifestPath: string;
57
+ manifestDigest: string;
58
+ completedAt: string;
59
+ }
60
+ export interface BillingAnalyzerRequestV2 {
61
+ schemaVersion: 2;
62
+ eventId: string;
63
+ messageId: string;
64
+ correlationId: string;
65
+ occurredAt: string;
66
+ idempotencyKey: string;
67
+ publicationMode: 'observe' | 'enforce';
68
+ subscriptionId: string;
69
+ generationId: string;
70
+ ownership: ArtifactOwnershipBinding<'azure'>;
71
+ revision: ArtifactRevisionVector;
72
+ inputManifestPath: string;
73
+ inputManifestDigest: string;
74
+ displayMetadata?: BillingAnalyzerMetadata;
75
+ }
76
+ export interface BillingAnalyzerOutputManifestV2 extends BillingGenerationDocumentV2 {
77
+ inputManifestPath: string;
78
+ inputManifestDigest: string;
79
+ outputBindingDigest: string;
80
+ artifacts: [BillingAnalyzerOutputArtifactDescriptor, ...BillingAnalyzerOutputArtifactDescriptor[]];
81
+ publicationDecision: BillingCompletedArtifactPublicationDecision;
82
+ manifestDigest: string;
83
+ completedAt: string;
84
+ }
85
+ export interface BillingAnalysisCurrentPointerV1 {
86
+ schemaVersion: 1;
87
+ status: 'completed';
88
+ subscriptionId: string;
89
+ generationId: string;
90
+ ownership: ArtifactOwnershipBinding<'azure'> & {
91
+ ownershipEpochRevision: number;
92
+ };
93
+ revision: ArtifactRevisionVector & {
94
+ ownershipEpochRevision: number;
95
+ };
96
+ inputManifestPath: string;
97
+ inputManifestDigest: string;
98
+ outputManifestPath: string;
99
+ outputManifestDigest: string;
100
+ publicationDecision: BillingCompletedArtifactPublicationDecision;
101
+ completedAt: string;
102
+ }
103
+ /** Validates one immutable billing analyzer input manifest without performing I/O. */
104
+ export declare const isBillingAnalyzerInputManifestV2: (value: unknown) => value is BillingAnalyzerInputManifestV2;
105
+ /** Validates the enforceable current pointer for one published analyzer input generation. */
106
+ export declare const isBillingAnalyzerInputCurrentPointerV1: (value: unknown) => value is BillingAnalyzerInputCurrentPointerV1;
107
+ /** Validates the V2 queue envelope and its immutable input-manifest binding. */
108
+ export declare const isBillingAnalyzerRequestV2: (value: unknown) => value is BillingAnalyzerRequestV2;
109
+ /** Validates an immutable analyzer output manifest and its exact input binding. */
110
+ export declare const isBillingAnalyzerOutputManifestV2: (value: unknown) => value is BillingAnalyzerOutputManifestV2;
111
+ /** Validates the sole promoted authority pointer for completed billing analysis. */
112
+ export declare const isBillingAnalysisCurrentPointerV1: (value: unknown) => value is BillingAnalysisCurrentPointerV1;
113
+ export {};
114
+ //# sourceMappingURL=billingArtifactGeneration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billingArtifactGeneration.d.ts","sourceRoot":"","sources":["../../src/azure/billingArtifactGeneration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isBillingAnalysisCurrentPointerV1 = exports.isBillingAnalyzerOutputManifestV2 = exports.isBillingAnalyzerRequestV2 = exports.isBillingAnalyzerInputCurrentPointerV1 = exports.isBillingAnalyzerInputManifestV2 = void 0;
4
+ const artifactEvidence_js_1 = require("../common/artifactEvidence.js");
5
+ const artifactEvidenceValidation_js_1 = require("../common/artifactEvidenceValidation.js");
6
+ const artifactControlData_js_1 = require("../common/artifactControlData.js");
7
+ const billingArtifactEvidence_js_1 = require("./billingArtifactEvidence.js");
8
+ const BILLING_BASES = new Set(['actual', 'amortized']);
9
+ const COVERAGE_VERDICTS = new Set(['complete', 'partial', 'none', 'unknown']);
10
+ const DATE_BASES = new Set(['utc', 'billing-calendar', 'company-local']);
11
+ const CONTENT_ENCODINGS = new Set(['identity', 'gzip']);
12
+ const SHA256_PATTERN = /^[a-f0-9]{64}$/;
13
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
14
+ const isNonEmptyString = (value) => typeof value === 'string' && value.trim() === value && value.length > 0;
15
+ const isPositiveInteger = (value) => Number.isSafeInteger(value) && Number(value) > 0;
16
+ const isNonNegativeInteger = (value) => Number.isSafeInteger(value) && Number(value) >= 0;
17
+ const isFiniteNumber = (value) => typeof value === 'number' && Number.isFinite(value);
18
+ const isStringIn = (value, values) => typeof value === 'string' && values.has(value);
19
+ const hasUniqueValues = (values) => new Set(values).size === values.length;
20
+ const publicationDecisionReferencesDigest = (value, digests) => isRecord(value) &&
21
+ Array.isArray(value.dependencies) &&
22
+ value.dependencies.some(dependency => isRecord(dependency) && typeof dependency.digest === 'string' && digests.has(dependency.digest));
23
+ const isCanonicalIsoTimestamp = (value) => {
24
+ if (!isNonEmptyString(value))
25
+ return false;
26
+ const timestamp = Date.parse(value);
27
+ return Number.isFinite(timestamp) && new Date(timestamp).toISOString() === value;
28
+ };
29
+ const hasControlCharacters = (value) => Array.from(value).some(character => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127);
30
+ const allowedDescriptorPaths = (descriptors) => Array.isArray(descriptors) ? descriptors.flatMap(descriptor => (0, artifactControlData_js_1.allowedArtifactReferenceField)(descriptor, 'path')) : [];
31
+ const isPathSegment = (value) => isNonEmptyString(value) && !/[\\/?#%]/.test(value) && !hasControlCharacters(value) && value !== '.' && value !== '..';
32
+ const inputGenerationPrefix = (subscriptionId, generationId) => `subscriptions/${subscriptionId}/history/billing/analyzer-inputs/generations/${generationId}/`;
33
+ const inputManifestPath = (subscriptionId, generationId) => `${inputGenerationPrefix(subscriptionId, generationId)}manifest.json`;
34
+ const outputGenerationPrefix = (subscriptionId, generationId) => `subscriptions/${subscriptionId}/billing/generations/${generationId}/`;
35
+ const outputManifestPath = (subscriptionId, generationId) => `${outputGenerationPrefix(subscriptionId, generationId)}manifest.json`;
36
+ const isGenerationPath = (value, prefix, forbiddenExactPath) => (0, artifactEvidenceValidation_js_1.isStrictLogicalArtifactReference)(value) && value.startsWith(prefix) && value.length > prefix.length && value !== forbiddenExactPath;
37
+ const hasMatchingIdentity = (subscriptionId, generationId, ownership, revision, enforceable) => {
38
+ if (!isPathSegment(subscriptionId) ||
39
+ !isPathSegment(generationId) ||
40
+ !(0, artifactEvidence_js_1.isArtifactOwnershipBinding)(ownership) ||
41
+ !(0, artifactEvidenceValidation_js_1.isArtifactRevisionVector)(revision)) {
42
+ return false;
43
+ }
44
+ if (ownership.provider !== 'azure' || ownership.accountId !== subscriptionId)
45
+ return false;
46
+ if (ownership.ownershipEpochRevision !== revision.ownershipEpochRevision)
47
+ return false;
48
+ return !enforceable || (0, artifactEvidence_js_1.isEnforceableArtifactOwnershipBinding)(ownership);
49
+ };
50
+ const isSha256 = (value) => typeof value === 'string' && SHA256_PATTERN.test(value);
51
+ const isRequestedPeriod = (value) => {
52
+ if (!isRecord(value) ||
53
+ !isCanonicalIsoTimestamp(value.fromInclusive) ||
54
+ !isCanonicalIsoTimestamp(value.throughExclusive) ||
55
+ Date.parse(value.throughExclusive) <= Date.parse(value.fromInclusive) ||
56
+ !isStringIn(value.dateBasis, DATE_BASES) ||
57
+ !isStringIn(value.basis, BILLING_BASES)) {
58
+ return false;
59
+ }
60
+ return value.timeZone === undefined || isNonEmptyString(value.timeZone);
61
+ };
62
+ const isInputObjectDescriptor = (value, subscriptionId, generationId) => {
63
+ if (!isRecord(value))
64
+ return false;
65
+ const prefix = inputGenerationPrefix(subscriptionId, generationId);
66
+ return (isGenerationPath(value.path, prefix, inputManifestPath(subscriptionId, generationId)) &&
67
+ (value.versionId === undefined || isNonEmptyString(value.versionId)) &&
68
+ isNonEmptyString(value.etag) &&
69
+ isSha256(value.sha256) &&
70
+ isPositiveInteger(value.byteCount) &&
71
+ isNonNegativeInteger(value.rowCount) &&
72
+ isStringIn(value.basis, BILLING_BASES) &&
73
+ (value.currencyCode === undefined || isNonEmptyString(value.currencyCode)) &&
74
+ isStringIn(value.coverage, COVERAGE_VERDICTS));
75
+ };
76
+ const isOutputArtifactDescriptor = (value, subscriptionId, generationId) => {
77
+ if (!isRecord(value))
78
+ return false;
79
+ const prefix = outputGenerationPrefix(subscriptionId, generationId);
80
+ return (isGenerationPath(value.path, prefix, outputManifestPath(subscriptionId, generationId)) &&
81
+ isNonEmptyString(value.name) &&
82
+ value.mediaType === 'application/json' &&
83
+ isStringIn(value.contentEncoding, CONTENT_ENCODINGS) &&
84
+ isNonNegativeInteger(value.byteLength) &&
85
+ isSha256(value.sha256));
86
+ };
87
+ const isJsonMetadata = (value) => {
88
+ if (!isRecord(value))
89
+ return false;
90
+ const visit = (candidate) => {
91
+ if (candidate === null || typeof candidate === 'string' || typeof candidate === 'boolean')
92
+ return true;
93
+ if (isFiniteNumber(candidate))
94
+ return true;
95
+ if (Array.isArray(candidate))
96
+ return candidate.every(visit);
97
+ return isRecord(candidate) && Object.getPrototypeOf(candidate) === Object.prototype && Object.values(candidate).every(visit);
98
+ };
99
+ return visit(value);
100
+ };
101
+ /** Validates one immutable billing analyzer input manifest without performing I/O. */
102
+ const isBillingAnalyzerInputManifestV2 = (value) => {
103
+ if (!isRecord(value) ||
104
+ (0, artifactControlData_js_1.containsForbiddenArtifactControlData)(value, [...(0, artifactControlData_js_1.allowedArtifactIdentityField)(value, 'publicationKey'), ...allowedDescriptorPaths(value.inputs)])) {
105
+ return false;
106
+ }
107
+ if (value.schemaVersion !== 2 || value.status !== 'completed')
108
+ return false;
109
+ if (!hasMatchingIdentity(value.subscriptionId, value.generationId, value.ownership, value.revision, false))
110
+ return false;
111
+ if (!isNonEmptyString(value.publicationKey) || !isSha256(value.coveragePlanDigest) || !isSha256(value.manifestDigest))
112
+ return false;
113
+ if (!isCanonicalIsoTimestamp(value.asOfUtc) || !isCanonicalIsoTimestamp(value.stableCutoffUtc) || !isCanonicalIsoTimestamp(value.completedAt)) {
114
+ return false;
115
+ }
116
+ if (Date.parse(value.stableCutoffUtc) > Date.parse(value.asOfUtc) || Date.parse(value.completedAt) < Date.parse(value.asOfUtc))
117
+ return false;
118
+ if (!Array.isArray(value.requestedPeriods) || value.requestedPeriods.length === 0 || !value.requestedPeriods.every(isRequestedPeriod))
119
+ return false;
120
+ const periodKeys = value.requestedPeriods.map(period => `${period.fromInclusive}\n${period.throughExclusive}\n${period.dateBasis}\n${period.timeZone ?? ''}\n${period.basis}`);
121
+ if (!hasUniqueValues(periodKeys))
122
+ return false;
123
+ if (!Array.isArray(value.inputs) || value.inputs.length === 0)
124
+ return false;
125
+ if (!value.inputs.every(input => isInputObjectDescriptor(input, value.subscriptionId, value.generationId)))
126
+ return false;
127
+ return hasUniqueValues(value.inputs.map(input => input.path));
128
+ };
129
+ exports.isBillingAnalyzerInputManifestV2 = isBillingAnalyzerInputManifestV2;
130
+ /** Validates the enforceable current pointer for one published analyzer input generation. */
131
+ const isBillingAnalyzerInputCurrentPointerV1 = (value) => {
132
+ if (!isRecord(value) || (0, artifactControlData_js_1.containsForbiddenArtifactControlData)(value, (0, artifactControlData_js_1.allowedArtifactReferenceField)(value, 'manifestPath')))
133
+ return false;
134
+ if (value.schemaVersion !== 1 || value.status !== 'completed')
135
+ return false;
136
+ if (!hasMatchingIdentity(value.subscriptionId, value.generationId, value.ownership, value.revision, true))
137
+ return false;
138
+ return ((0, artifactEvidenceValidation_js_1.isStrictLogicalArtifactReference)(value.manifestPath) &&
139
+ value.manifestPath === inputManifestPath(value.subscriptionId, value.generationId) &&
140
+ isSha256(value.manifestDigest) &&
141
+ isCanonicalIsoTimestamp(value.completedAt));
142
+ };
143
+ exports.isBillingAnalyzerInputCurrentPointerV1 = isBillingAnalyzerInputCurrentPointerV1;
144
+ /** Validates the V2 queue envelope and its immutable input-manifest binding. */
145
+ const isBillingAnalyzerRequestV2 = (value) => {
146
+ if (!isRecord(value) || (0, artifactControlData_js_1.containsForbiddenArtifactControlData)(value, (0, artifactControlData_js_1.allowedArtifactReferenceField)(value, 'inputManifestPath')))
147
+ return false;
148
+ if (value.schemaVersion !== 2 || (value.publicationMode !== 'observe' && value.publicationMode !== 'enforce'))
149
+ return false;
150
+ const enforceable = value.publicationMode === 'enforce';
151
+ if (!hasMatchingIdentity(value.subscriptionId, value.generationId, value.ownership, value.revision, enforceable))
152
+ return false;
153
+ if (![value.eventId, value.correlationId].every(isNonEmptyString) || !isSha256(value.messageId) || !isSha256(value.idempotencyKey))
154
+ return false;
155
+ if (value.idempotencyKey !== value.messageId || !isCanonicalIsoTimestamp(value.occurredAt))
156
+ return false;
157
+ if (!(0, artifactEvidenceValidation_js_1.isStrictLogicalArtifactReference)(value.inputManifestPath) ||
158
+ value.inputManifestPath !== inputManifestPath(value.subscriptionId, value.generationId)) {
159
+ return false;
160
+ }
161
+ if (!isSha256(value.inputManifestDigest))
162
+ return false;
163
+ return value.displayMetadata === undefined || isJsonMetadata(value.displayMetadata);
164
+ };
165
+ exports.isBillingAnalyzerRequestV2 = isBillingAnalyzerRequestV2;
166
+ /** Validates an immutable analyzer output manifest and its exact input binding. */
167
+ const isBillingAnalyzerOutputManifestV2 = (value) => {
168
+ if (!isRecord(value) ||
169
+ (0, artifactControlData_js_1.containsForbiddenArtifactControlData)(value, [
170
+ ...(0, artifactControlData_js_1.allowedArtifactReferenceField)(value, 'inputManifestPath'),
171
+ ...allowedDescriptorPaths(value.artifacts),
172
+ ])) {
173
+ return false;
174
+ }
175
+ if (value.schemaVersion !== 2 || value.status !== 'completed')
176
+ return false;
177
+ if (!hasMatchingIdentity(value.subscriptionId, value.generationId, value.ownership, value.revision, false))
178
+ return false;
179
+ if (!(0, artifactEvidenceValidation_js_1.isStrictLogicalArtifactReference)(value.inputManifestPath) ||
180
+ value.inputManifestPath !== inputManifestPath(value.subscriptionId, value.generationId)) {
181
+ return false;
182
+ }
183
+ if (!isSha256(value.inputManifestDigest) || !isSha256(value.outputBindingDigest) || !isSha256(value.manifestDigest))
184
+ return false;
185
+ if (!Array.isArray(value.artifacts) || value.artifacts.length === 0)
186
+ return false;
187
+ if (!value.artifacts.every(artifact => isOutputArtifactDescriptor(artifact, value.subscriptionId, value.generationId))) {
188
+ return false;
189
+ }
190
+ if (!hasUniqueValues(value.artifacts.map(artifact => artifact.path)) || !hasUniqueValues(value.artifacts.map(artifact => artifact.name)))
191
+ return false;
192
+ const outputDerivedDigests = new Set([
193
+ value.inputManifestDigest,
194
+ value.outputBindingDigest,
195
+ value.manifestDigest,
196
+ ...value.artifacts.map(artifact => artifact.sha256),
197
+ ]);
198
+ if (value.outputBindingDigest === value.inputManifestDigest ||
199
+ value.outputBindingDigest === value.manifestDigest ||
200
+ value.artifacts.some(artifact => artifact.sha256 === value.outputBindingDigest || artifact.sha256 === value.manifestDigest) ||
201
+ publicationDecisionReferencesDigest(value.publicationDecision, new Set([...outputDerivedDigests].filter(digest => digest !== value.inputManifestDigest)))) {
202
+ return false;
203
+ }
204
+ if (!value.artifacts.some(artifact => artifact.path === `${outputGenerationPrefix(value.subscriptionId, value.generationId)}metadata.json`)) {
205
+ return false;
206
+ }
207
+ return ((0, billingArtifactEvidence_js_1.isBillingCompletedArtifactPublicationDecision)(value.publicationDecision, value.generationId, value.inputManifestDigest) &&
208
+ isCanonicalIsoTimestamp(value.completedAt));
209
+ };
210
+ exports.isBillingAnalyzerOutputManifestV2 = isBillingAnalyzerOutputManifestV2;
211
+ /** Validates the sole promoted authority pointer for completed billing analysis. */
212
+ const isBillingAnalysisCurrentPointerV1 = (value) => {
213
+ if (!isRecord(value) ||
214
+ (0, artifactControlData_js_1.containsForbiddenArtifactControlData)(value, [
215
+ ...(0, artifactControlData_js_1.allowedArtifactReferenceField)(value, 'inputManifestPath'),
216
+ ...(0, artifactControlData_js_1.allowedArtifactReferenceField)(value, 'outputManifestPath'),
217
+ ])) {
218
+ return false;
219
+ }
220
+ if (value.schemaVersion !== 1 || value.status !== 'completed')
221
+ return false;
222
+ if (!hasMatchingIdentity(value.subscriptionId, value.generationId, value.ownership, value.revision, true))
223
+ return false;
224
+ if (!(0, artifactEvidenceValidation_js_1.isStrictLogicalArtifactReference)(value.inputManifestPath) ||
225
+ value.inputManifestPath !== inputManifestPath(value.subscriptionId, value.generationId)) {
226
+ return false;
227
+ }
228
+ if (!(0, artifactEvidenceValidation_js_1.isStrictLogicalArtifactReference)(value.outputManifestPath) ||
229
+ value.outputManifestPath !== outputManifestPath(value.subscriptionId, value.generationId)) {
230
+ return false;
231
+ }
232
+ if (!isSha256(value.inputManifestDigest) || !isSha256(value.outputManifestDigest))
233
+ return false;
234
+ return ((0, billingArtifactEvidence_js_1.isBillingCompletedArtifactPublicationDecision)(value.publicationDecision, value.generationId, value.inputManifestDigest) &&
235
+ isCanonicalIsoTimestamp(value.completedAt));
236
+ };
237
+ exports.isBillingAnalysisCurrentPointerV1 = isBillingAnalysisCurrentPointerV1;
238
+ //# sourceMappingURL=billingArtifactGeneration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billingArtifactGeneration.js","sourceRoot":"","sources":["../../src/azure/billingArtifactGeneration.ts"],"names":[],"mappings":";;;AAAA,uEAMuC;AAEvC,2FAAqH;AACrH,6EAK0C;AAE1C,6EAA+I;AAsG/I,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AACtF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,CAAC,KAAK,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAC;AACjF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAChE,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAExC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5I,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACtI,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChH,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpH,MAAM,cAAc,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChH,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,MAAmB,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5H,MAAM,eAAe,GAAG,CAAC,MAAgB,EAAW,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC;AAC9F,MAAM,mCAAmC,GAAG,CAAC,KAAc,EAAE,OAAoB,EAAW,EAAE,CAC5F,QAAQ,CAAC,KAAK,CAAC;IACf,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;IACjC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzI,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAmB,EAAE;IAClE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;AACnF,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAW,EAAE,CACtD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AAEvG,MAAM,sBAAsB,GAAG,CAAC,WAAoB,EAAmC,EAAE,CACvF,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAA,sDAA6B,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAEzH,MAAM,aAAa,GAAG,CAAC,KAAc,EAAmB,EAAE,CACxD,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,CAAC;AAExH,MAAM,qBAAqB,GAAG,CAAC,cAAsB,EAAE,YAAoB,EAAU,EAAE,CACrF,iBAAiB,cAAc,gDAAgD,YAAY,GAAG,CAAC;AAEjG,MAAM,iBAAiB,GAAG,CAAC,cAAsB,EAAE,YAAoB,EAAU,EAAE,CACjF,GAAG,qBAAqB,CAAC,cAAc,EAAE,YAAY,CAAC,eAAe,CAAC;AAExE,MAAM,sBAAsB,GAAG,CAAC,cAAsB,EAAE,YAAoB,EAAU,EAAE,CACtF,iBAAiB,cAAc,wBAAwB,YAAY,GAAG,CAAC;AAEzE,MAAM,kBAAkB,GAAG,CAAC,cAAsB,EAAE,YAAoB,EAAU,EAAE,CAClF,GAAG,sBAAsB,CAAC,cAAc,EAAE,YAAY,CAAC,eAAe,CAAC;AAEzE,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAE,MAAc,EAAE,kBAA2B,EAAmB,EAAE,CACxG,IAAA,gEAAgC,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,KAAK,kBAAkB,CAAC;AAEtI,MAAM,mBAAmB,GAAG,CAC1B,cAAuB,EACvB,YAAqB,EACrB,SAAkB,EAClB,QAAiB,EACjB,WAAoB,EACX,EAAE;IACX,IACE,CAAC,aAAa,CAAC,cAAc,CAAC;QAC9B,CAAC,aAAa,CAAC,YAAY,CAAC;QAC5B,CAAC,IAAA,gDAA0B,EAAC,SAAS,CAAC;QACtC,CAAC,IAAA,wDAAwB,EAAC,QAAQ,CAAC,EACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,SAAS,KAAK,cAAc;QAAE,OAAO,KAAK,CAAC;IAC3F,IAAI,SAAS,CAAC,sBAAsB,KAAK,QAAQ,CAAC,sBAAsB;QAAE,OAAO,KAAK,CAAC;IACvF,OAAO,CAAC,WAAW,IAAI,IAAA,2DAAqC,EAAC,SAAS,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAE9G,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA2C,EAAE;IACpF,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,CAAC,uBAAuB,CAAC,KAAK,CAAC,aAAa,CAAC;QAC7C,CAAC,uBAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;QACrE,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;QACxC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,EACvC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAE,cAAsB,EAAE,YAAoB,EAAiD,EAAE;IAC9I,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,MAAM,GAAG,qBAAqB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACnE,OAAO,CACL,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACrF,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpE,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QACtB,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC;QAClC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;QACtC,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1E,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAC9C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CACjC,KAAc,EACd,cAAsB,EACtB,YAAoB,EAC8B,EAAE;IACpD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,MAAM,GAAG,sBAAsB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACpE,OAAO,CACL,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACtF,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5B,KAAK,CAAC,SAAS,KAAK,kBAAkB;QACtC,UAAU,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC;QACpD,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC;QACtC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CACvB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAc,EAAoC,EAAE;IAC1E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,SAAkB,EAAW,EAAE;QAC5C,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACvG,IAAI,cAAc,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/H,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC,CAAC;AAEF,sFAAsF;AAC/E,MAAM,gCAAgC,GAAG,CAAC,KAAc,EAA2C,EAAE;IAC1G,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,IAAA,6DAAoC,EAAC,KAAK,EAAE,CAAC,GAAG,IAAA,qDAA4B,EAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAChJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzH,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IACpI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9I,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7I,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAAE,OAAO,KAAK,CAAC;IACpJ,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAC3C,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,QAAQ,IAAI,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,CAChI,CAAC;IACF,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,cAAwB,EAAE,KAAK,CAAC,YAAsB,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7I,OAAO,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAtBW,QAAA,gCAAgC,oCAsB3C;AAEF,6FAA6F;AACtF,MAAM,sCAAsC,GAAG,CAAC,KAAc,EAAiD,EAAE;IACtH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAA,6DAAoC,EAAC,KAAK,EAAE,IAAA,sDAA6B,EAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACxI,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACxH,OAAO,CACL,IAAA,gEAAgC,EAAC,KAAK,CAAC,YAAY,CAAC;QACpD,KAAK,CAAC,YAAY,KAAK,iBAAiB,CAAC,KAAK,CAAC,cAAwB,EAAE,KAAK,CAAC,YAAsB,CAAC;QACtG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;QAC9B,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3C,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,sCAAsC,0CAUjD;AAEF,gFAAgF;AACzE,MAAM,0BAA0B,GAAG,CAAC,KAAc,EAAqC,EAAE;IAC9F,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAA,6DAAoC,EAAC,KAAK,EAAE,IAAA,sDAA6B,EAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7I,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5H,MAAM,WAAW,GAAG,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC;IACxD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/H,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IACjJ,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,SAAS,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACzG,IACE,CAAC,IAAA,gEAAgC,EAAC,KAAK,CAAC,iBAAiB,CAAC;QAC1D,KAAK,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,KAAK,CAAC,cAAwB,EAAE,KAAK,CAAC,YAAsB,CAAC,EAC3G,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAAE,OAAO,KAAK,CAAC;IACvD,OAAO,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACtF,CAAC,CAAC;AAfW,QAAA,0BAA0B,8BAerC;AAEF,mFAAmF;AAC5E,MAAM,iCAAiC,GAAG,CAAC,KAAc,EAA4C,EAAE;IAC5G,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,IAAA,6DAAoC,EAAC,KAAK,EAAE;YAC1C,GAAG,IAAA,sDAA6B,EAAC,KAAK,EAAE,mBAAmB,CAAC;YAC5D,GAAG,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC;SAC3C,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzH,IACE,CAAC,IAAA,gEAAgC,EAAC,KAAK,CAAC,iBAAiB,CAAC;QAC1D,KAAK,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,KAAK,CAAC,cAAwB,EAAE,KAAK,CAAC,YAAsB,CAAC,EAC3G,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAClI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClF,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,0BAA0B,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAwB,EAAE,KAAK,CAAC,YAAsB,CAAC,CAAC,EAAE,CAAC;QAC3I,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtI,OAAO,KAAK,CAAC;IACf,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS;QAC3C,KAAK,CAAC,mBAAmB;QACzB,KAAK,CAAC,mBAAmB;QACzB,KAAK,CAAC,cAAc;QACpB,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;KACpD,CAAC,CAAC;IACH,IACE,KAAK,CAAC,mBAAmB,KAAK,KAAK,CAAC,mBAAmB;QACvD,KAAK,CAAC,mBAAmB,KAAK,KAAK,CAAC,cAAc;QAClD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,mBAAmB,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,cAAc,CAAC;QAC3H,mCAAmC,CACjC,KAAK,CAAC,mBAAmB,EACzB,IAAI,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAC1F,EACD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CACnB,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,cAAwB,EAAE,KAAK,CAAC,YAAsB,CAAC,eAAe,CACrI,EACD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,IAAA,0EAA6C,EAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,YAAsB,EAAE,KAAK,CAAC,mBAA6B,CAAC;QAC3I,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3C,CAAC;AACJ,CAAC,CAAC;AArDW,QAAA,iCAAiC,qCAqD5C;AAEF,oFAAoF;AAC7E,MAAM,iCAAiC,GAAG,CAAC,KAAc,EAA4C,EAAE;IAC5G,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,IAAA,6DAAoC,EAAC,KAAK,EAAE;YAC1C,GAAG,IAAA,sDAA6B,EAAC,KAAK,EAAE,mBAAmB,CAAC;YAC5D,GAAG,IAAA,sDAA6B,EAAC,KAAK,EAAE,oBAAoB,CAAC;SAC9D,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACxH,IACE,CAAC,IAAA,gEAAgC,EAAC,KAAK,CAAC,iBAAiB,CAAC;QAC1D,KAAK,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,KAAK,CAAC,cAAwB,EAAE,KAAK,CAAC,YAAsB,CAAC,EAC3G,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,CAAC,IAAA,gEAAgC,EAAC,KAAK,CAAC,kBAAkB,CAAC;QAC3D,KAAK,CAAC,kBAAkB,KAAK,kBAAkB,CAAC,KAAK,CAAC,cAAwB,EAAE,KAAK,CAAC,YAAsB,CAAC,EAC7G,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC;QAAE,OAAO,KAAK,CAAC;IAChG,OAAO,CACL,IAAA,0EAA6C,EAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,YAAsB,EAAE,KAAK,CAAC,mBAA6B,CAAC;QAC3I,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3C,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,iCAAiC,qCA6B5C"}
@@ -1,6 +1,9 @@
1
1
  /**
2
2
  * Billing cost analysis types for Azure cost visualization.
3
3
  */
4
+ import { type ArtifactOwnershipBinding, type ArtifactRevisionVector, type BillingArtifactReadState } from '../common/artifactEvidence.js';
5
+ import { type BillingCompletedArtifactPublicationDecision, type BillingPartialArtifactPublicationDecision } from './billingArtifactEvidence.js';
6
+ export type { BillingArtifactPublicationDecision, BillingCompletedArtifactPublicationDecision, BillingPartialArtifactPublicationDecision, } from './billingArtifactEvidence.js';
4
7
  /** Named cost chart windows emitted by the Azure billing analyzer. */
5
8
  export type BillingChartViewKey = '7_days' | '30_days' | '90_days' | '12_months' | 'forecast_90_days' | (string & {});
6
9
  /** Supported billing chart aggregation categories. */
@@ -246,6 +249,25 @@ export interface BillingCostAnalysisMetadata {
246
249
  /** Forecast amount at the end of the current period. */
247
250
  forecastPeriodEnd?: number;
248
251
  }
252
+ type BillingCostAnalysisDocumentState = Exclude<BillingArtifactReadState, 'suppressed' | 'unavailable'>;
253
+ type BillingCompletedCostAnalysisDocumentState = Exclude<BillingCostAnalysisDocumentState, 'partial'>;
254
+ /** Immutable billing metadata with an explicit evidence and read-state binding. */
255
+ interface BillingCostAnalysisMetadataV2Base extends BillingCostAnalysisMetadata {
256
+ schemaVersion: 2;
257
+ ownership: ArtifactOwnershipBinding<'azure'>;
258
+ revision: ArtifactRevisionVector;
259
+ inputManifestDigest: string;
260
+ outputBindingDigest: string;
261
+ }
262
+ export type BillingCostAnalysisMetadataV2 = BillingCostAnalysisMetadataV2Base & ({
263
+ artifactState: BillingCompletedCostAnalysisDocumentState;
264
+ artifactEvidence: BillingCompletedArtifactPublicationDecision;
265
+ } | {
266
+ artifactState: 'partial';
267
+ artifactEvidence: BillingPartialArtifactPublicationDecision;
268
+ });
269
+ /** Dependency-free validator for customer-readable V2 billing metadata. */
270
+ export declare const isBillingCostAnalysisMetadataV2: (value: unknown) => value is BillingCostAnalysisMetadataV2;
249
271
  /** @deprecated Use BillingCostAnalysisMetadata. */
250
272
  export type BillingPlotsMetadata = BillingCostAnalysisMetadata;
251
273
  //# sourceMappingURL=billingPlots.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"billingPlots.d.ts","sourceRoot":"","sources":["../../src/azure/billingPlots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"billingPlots.d.ts","sourceRoot":"","sources":["../../src/azure/billingPlots.ts"],"names":[],"mappings":"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"}