@spottoai/types-package 1.0.2-beta.416 → 1.0.2-beta.418

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 (40) hide show
  1. package/dist/azure/reportEvidence.d.ts +13 -1
  2. package/dist/azure/reportEvidence.d.ts.map +1 -1
  3. package/dist/azure/reportEvidence.js.map +1 -1
  4. package/dist/azure/reportEvidenceCatalogueValidation.d.ts.map +1 -1
  5. package/dist/azure/reportEvidenceCatalogueValidation.js +4 -0
  6. package/dist/azure/reportEvidenceCatalogueValidation.js.map +1 -1
  7. package/dist/azure/reportSavingsContributionValidation.d.ts +5 -0
  8. package/dist/azure/reportSavingsContributionValidation.d.ts.map +1 -0
  9. package/dist/azure/reportSavingsContributionValidation.js +37 -0
  10. package/dist/azure/reportSavingsContributionValidation.js.map +1 -0
  11. package/dist/esm/azure/reportEvidenceCatalogueValidation.js +4 -0
  12. package/dist/esm/azure/reportSavingsContributionValidation.js +30 -0
  13. package/dist/esm/index.js +1 -0
  14. package/dist/esm/scheduler/bastionSchedule.js +1 -0
  15. package/dist/esm/scheduler/bastionScheduleProfile.js +206 -0
  16. package/dist/esm/scheduler/bastionScheduleValidation.js +401 -0
  17. package/dist/esm/scheduler/index.js +3 -0
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/scheduler/bastionSchedule.d.ts +113 -0
  23. package/dist/scheduler/bastionSchedule.d.ts.map +1 -0
  24. package/dist/scheduler/bastionSchedule.js +3 -0
  25. package/dist/scheduler/bastionSchedule.js.map +1 -0
  26. package/dist/scheduler/bastionScheduleProfile.d.ts +24 -0
  27. package/dist/scheduler/bastionScheduleProfile.d.ts.map +1 -0
  28. package/dist/scheduler/bastionScheduleProfile.js +210 -0
  29. package/dist/scheduler/bastionScheduleProfile.js.map +1 -0
  30. package/dist/scheduler/bastionScheduleValidation.d.ts +10 -0
  31. package/dist/scheduler/bastionScheduleValidation.d.ts.map +1 -0
  32. package/dist/scheduler/bastionScheduleValidation.js +412 -0
  33. package/dist/scheduler/bastionScheduleValidation.js.map +1 -0
  34. package/dist/scheduler/index.d.ts +3 -0
  35. package/dist/scheduler/index.d.ts.map +1 -1
  36. package/dist/scheduler/index.js +3 -0
  37. package/dist/scheduler/index.js.map +1 -1
  38. package/dist/scheduler/scheduler.d.ts +14 -10
  39. package/dist/scheduler/scheduler.d.ts.map +1 -1
  40. package/package.json +3 -2
@@ -1,4 +1,5 @@
1
- import type { CostSavingsSummaryBasis } from './views';
1
+ import type { CostSavingsSummaryBasis, CostSavingsAggregationPolicy } from './views';
2
+ import type { PortfolioSavingsContributionV2, ScenarioSavingsPotentialV2 } from './savings';
2
3
  import type { TenantMfaEnforcementStatus } from './governance';
3
4
  import type { SecureScoreEvidence } from './secureScore';
4
5
  import type { ReportDailySpend } from './reportDailySpend';
@@ -43,6 +44,12 @@ export interface ReportEvidenceReference {
43
44
  value?: string | number | boolean;
44
45
  }
45
46
  export interface ReportCompactRecommendationResource {
47
+ /** Exact producer allocation; standalone resource savings must not be added as portfolio value. */
48
+ portfolioContribution?: PortfolioSavingsContributionV2;
49
+ scenarioSavings?: ScenarioSavingsPotentialV2;
50
+ savingsOwnerResourceId?: string;
51
+ billableComponentKey?: string;
52
+ savingsAggregationPolicy?: CostSavingsAggregationPolicy;
46
53
  id: string;
47
54
  name?: string;
48
55
  type?: string;
@@ -60,6 +67,11 @@ export interface ReportCompactRecommendationResource {
60
67
  savingsBasis?: ReportSavingsBasis;
61
68
  }
62
69
  export interface ReportCompactRecommendation {
70
+ portfolioContribution?: PortfolioSavingsContributionV2;
71
+ scenarioSavings?: ScenarioSavingsPotentialV2;
72
+ savingsOwnerResourceId?: string;
73
+ billableComponentKey?: string;
74
+ savingsAggregationPolicy?: CostSavingsAggregationPolicy;
63
75
  recommendation: {
64
76
  id: string;
65
77
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"reportEvidence.d.ts","sourceRoot":"","sources":["../../src/azure/reportEvidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reportEvidence.d.ts","sourceRoot":"","sources":["../../src/azure/reportEvidence.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reportEvidence.js","sourceRoot":"","sources":["../../src/azure/reportEvidence.ts"],"names":[],"mappings":";;;AAMa,QAAA,sBAAsB,GAAG;IACpC,UAAU,EAAE,EAAE;IACd,sBAAsB,EAAE,EAAE;IAC1B,uBAAuB,EAAE,IAAI;IAC7B,qBAAqB,EAAE,IAAI;IAC3B,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,EAAE;IAClB,uBAAuB,EAAE,CAAC;IAC1B,iBAAiB,EAAE,IAAI;IACvB,+BAA+B,EAAE,KAAK;IACtC,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,EAAE;IACrB,WAAW,EAAE,EAAE;IACf,oBAAoB,EAAE,EAAE;IACxB,6BAA6B,EAAE,CAAC;IAChC,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,sBAAsB,EAAE,IAAI;IAC5B,0BAA0B,EAAE,EAAE;CACtB,CAAC"}
1
+ {"version":3,"file":"reportEvidence.js","sourceRoot":"","sources":["../../src/azure/reportEvidence.ts"],"names":[],"mappings":";;;AAOa,QAAA,sBAAsB,GAAG;IACpC,UAAU,EAAE,EAAE;IACd,sBAAsB,EAAE,EAAE;IAC1B,uBAAuB,EAAE,IAAI;IAC7B,qBAAqB,EAAE,IAAI;IAC3B,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,EAAE;IAClB,uBAAuB,EAAE,CAAC;IAC1B,iBAAiB,EAAE,IAAI;IACvB,+BAA+B,EAAE,KAAK;IACtC,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,EAAE;IACrB,WAAW,EAAE,EAAE;IACf,oBAAoB,EAAE,EAAE;IACxB,6BAA6B,EAAE,CAAC;IAChC,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,sBAAsB,EAAE,IAAI;IAC5B,0BAA0B,EAAE,EAAE;CACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reportEvidenceCatalogueValidation.d.ts","sourceRoot":"","sources":["../../src/azure/reportEvidenceCatalogueValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EAWL,KAAK,UAAU,EAChB,MAAM,mCAAmC,CAAC;AAW3C,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,2BAiFjE,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,UAmBV,CAAC"}
1
+ {"version":3,"file":"reportEvidenceCatalogueValidation.d.ts","sourceRoot":"","sources":["../../src/azure/reportEvidenceCatalogueValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAG5F,OAAO,EAWL,KAAK,UAAU,EAChB,MAAM,mCAAmC,CAAC;AAY3C,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,2BAkFjE,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,UAmBV,CAAC"}
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isInventoryCatalogueResource = exports.isCompactRecommendation = void 0;
4
4
  const reportEvidence_1 = require("./reportEvidence");
5
5
  const reportSpendValidation_1 = require("./reportSpendValidation");
6
+ const reportSavingsContributionValidation_1 = require("./reportSavingsContributionValidation");
6
7
  const reportEvidenceValidationHelpers_1 = require("./reportEvidenceValidationHelpers");
7
8
  const isCompactRecommendationResource = (value) => (0, reportEvidenceValidationHelpers_1.isRecord)(value) &&
9
+ (0, reportSavingsContributionValidation_1.hasValidReportSavingsMetadata)(value) &&
8
10
  (0, reportEvidenceValidationHelpers_1.isString)(value.id) &&
9
11
  ['name', 'type', 'resourceGroup', 'location', 'currency', 'currencySymbol'].every(key => (0, reportEvidenceValidationHelpers_1.isOptionalString)(value[key])) &&
10
12
  ['spend', 'spendAmortized'].every(key => (0, reportEvidenceValidationHelpers_1.isOptionalFiniteNumber)(value[key])) &&
@@ -14,6 +16,8 @@ const isCompactRecommendationResource = (value) => (0, reportEvidenceValidationH
14
16
  const isCompactRecommendation = (value) => {
15
17
  if (!(0, reportEvidenceValidationHelpers_1.isRecord)(value) || !(0, reportEvidenceValidationHelpers_1.isRecord)(value.recommendation) || !Array.isArray(value.resources))
16
18
  return false;
19
+ if (!(0, reportSavingsContributionValidation_1.hasValidReportSavingsMetadata)(value))
20
+ return false;
17
21
  if (value.savingsBasis !== undefined && !(0, reportSpendValidation_1.isReportSavingsBasis)(value.savingsBasis))
18
22
  return false;
19
23
  const recommendation = value.recommendation;
@@ -1 +1 @@
1
- {"version":3,"file":"reportEvidenceCatalogueValidation.js","sourceRoot":"","sources":["../../src/azure/reportEvidenceCatalogueValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reportEvidenceCatalogueValidation.js","sourceRoot":"","sources":["../../src/azure/reportEvidenceCatalogueValidation.ts"],"names":[],"mappings":";;;AAAA,qDAA4F;AAC5F,mEAA+D;AAC/D,+FAAsF;AACtF,uFAY2C;AAE3C,MAAM,+BAA+B,GAAG,CAAC,KAAc,EAAuB,EAAE,CAC9E,IAAA,0CAAQ,EAAC,KAAK,CAAC;IACf,IAAA,mEAA6B,EAAC,KAAK,CAAC;IACpC,IAAA,0CAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,kDAAgB,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACtH,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,wDAAsB,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,IAAA,4CAAoB,EAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC9E,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS;QAC1B,CAAC,IAAA,0CAAQ,EAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAA,wDAAsB,EAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAA,wDAAsB,EAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAE9H,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAwC,EAAE;IAC9F,IAAI,CAAC,IAAA,0CAAQ,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,0CAAQ,EAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACzG,IAAI,CAAC,IAAA,mEAA6B,EAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,IAAA,4CAAoB,EAAC,KAAK,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IAChG,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAC5C,MAAM,UAAU,GAAG,cAAc,CAAC,yBAAyB,CAAC;IAC5D,IACE,UAAU,KAAK,SAAS;QACxB,CAAC,CAAC,IAAA,0CAAQ,EAAC,UAAU,CAAC;YACpB,CAAC,IAAA,yCAAO,EAAC,UAAU,CAAC,cAAc,CAAC;YACnC,CAAC,IAAA,yCAAO,EAAC,UAAU,CAAC,UAAU,CAAC;YAC/B,UAAU,CAAC,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC;QAEpD,OAAO,KAAK,CAAC;IACf,IACE,cAAc,CAAC,qBAAqB,KAAK,SAAS;QAClD,CAAC,CAAC,IAAA,0CAAQ,EAAC,cAAc,CAAC,qBAAqB,CAAC;YAC9C,CAAC,IAAA,oDAAkB,EAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAEnG,OAAO,KAAK,CAAC;IACf,IACE,CAAC,IAAA,0CAAQ,EAAC,cAAc,CAAC,EAAE,CAAC;QAC5B,CAAC,IAAA,0CAAQ,EAAC,cAAc,CAAC,KAAK,CAAC;QAC/B,cAAc,CAAC,QAAQ,KAAK,IAAI;QAChC,CAAC,IAAA,yCAAO,EAAC,KAAK,CAAC,cAAc,CAAC;QAC9B,CAAC,IAAA,yCAAO,EAAC,KAAK,CAAC,oBAAoB,CAAC;QACpC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,uCAAsB,CAAC,uBAAuB;QACvE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,+BAA+B,CAAC;QACvD,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,oBAAoB,EAC5E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,KAAK,CAAC,iBAAiB,KAAK,SAAS;QACrC,CAAC,CAAC,IAAA,+CAAa,EAAC,KAAK,CAAC,iBAAiB,EAAE,uCAAsB,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;YACjH,KAAK,CAAC,iBAAiB,CAAC,UAAU,KAAK,KAAK,CAAC,cAAc,CAAC;QAE9D,OAAO,KAAK,CAAC;IACf,IACE,CAAC,IAAA,oDAAkB,EAAC,cAAc,EAAE;QAClC,MAAM;QACN,UAAU;QACV,cAAc;QACd,YAAY;QACZ,aAAa;QACb,aAAa;QACb,cAAc;QACd,cAAc;QACd,mBAAmB;QACnB,gBAAgB;QAChB,mBAAmB;QACnB,UAAU;QACV,aAAa;QACb,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,MAAM;QACN,UAAU;QACV,eAAe;QACf,cAAc;QACd,gBAAgB;QAChB,gBAAgB;KACjB,CAAC;QACF,CAAC,IAAA,oDAAkB,EAAC,cAAc,EAAE;YAClC,aAAa;YACb,YAAY;YACZ,yBAAyB;YACzB,sBAAsB;YACtB,eAAe;YACf,YAAY;YACZ,iBAAiB;SAClB,CAAC;QACF,CAAC,IAAA,mDAAiB,EAAC,cAAc,CAAC,QAAQ,CAAC;QAC3C,CAAC,IAAA,mDAAiB,EAAC,cAAc,CAAC,sBAAsB,CAAC;QACzD,CAAC,IAAA,oDAAkB,EAAC,KAAK,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAC1D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,KAAK,CAAC,OAAO,KAAK,SAAS;QAC3B,CAAC,IAAA,0CAAQ,EAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAA,wDAAsB,EAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAA,wDAAsB,EAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAChI,CAAC;AACJ,CAAC,CAAC;AAlFW,QAAA,uBAAuB,2BAkFlC;AAEK,MAAM,4BAA4B,GAAG,CAAC,KAAc,EAAuB,EAAE,CAClF,IAAA,0CAAQ,EAAC,KAAK,CAAC;IACf,+BAA+B,CAAC,KAAK,CAAC;IACtC,IAAA,wDAAsB,EAAC,KAAK,CAAC,WAAW,CAAC;IACzC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;QACvB,CAAC,IAAA,0CAAQ,EAAC,KAAK,CAAC,IAAI,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG;YACrC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;IAChI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS;QAC7B,CAAC,IAAA,0CAAQ,EAAC,KAAK,CAAC,UAAU,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,GAAG;YAC3C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CACpC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,IAAA,0CAAQ,EAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,IAAA,gDAAc,EAAC,KAAK,CAAC,CAAC,CAAC,CAC3I,CAAC,CAAC;IACP,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS;QACrC,CAAC,IAAA,0CAAQ,EAAC,KAAK,CAAC,kBAAkB,CAAC;YACjC,IAAA,0CAAQ,EAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC;YAC1C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC;YACpD,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC;YACjD,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,0CAAQ,CAAC,CAAC,CAAC,CAAC;AAnBjD,QAAA,4BAA4B,gCAmBqB"}
@@ -0,0 +1,5 @@
1
+ import type { PortfolioSavingsContributionV2, ScenarioSavingsPotentialV2 } from './savings';
2
+ export declare const isReportPortfolioSavingsContribution: (value: unknown) => value is PortfolioSavingsContributionV2;
3
+ export declare const isReportScenarioSavings: (value: unknown) => value is ScenarioSavingsPotentialV2;
4
+ export declare const hasValidReportSavingsMetadata: (value: Record<string, unknown>) => boolean;
5
+ //# sourceMappingURL=reportSavingsContributionValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reportSavingsContributionValidation.d.ts","sourceRoot":"","sources":["../../src/azure/reportSavingsContributionValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAcnH,eAAO,MAAM,oCAAoC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,8BAQH,CAAC;AAE7E,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,0BAKsE,CAAC;AAEzI,eAAO,MAAM,6BAA6B,GAAI,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAQU,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasValidReportSavingsMetadata = exports.isReportScenarioSavings = exports.isReportPortfolioSavingsContribution = void 0;
4
+ const reportEvidenceValidationHelpers_1 = require("./reportEvidenceValidationHelpers");
5
+ const isMoneyRange = (value) => {
6
+ if (!(0, reportEvidenceValidationHelpers_1.isRecord)(value) || typeof value.currency !== 'string' || !/^[A-Z]{3}$/.test(value.currency))
7
+ return false;
8
+ const fields = ['minorUnitScale', 'currentMonthlyMinorUnits', 'minSavingsMinorUnits', 'maxSavingsMinorUnits'];
9
+ if (!fields.every(key => Number.isSafeInteger(value[key]) && Number(value[key]) >= 0))
10
+ return false;
11
+ return (Number(value.minorUnitScale) <= 6 &&
12
+ Number(value.minSavingsMinorUnits) <= Number(value.maxSavingsMinorUnits) &&
13
+ Number(value.maxSavingsMinorUnits) <= Number(value.currentMonthlyMinorUnits));
14
+ };
15
+ const isReportPortfolioSavingsContribution = (value) => (0, reportEvidenceValidationHelpers_1.isRecord)(value) &&
16
+ value.semantics === 'portfolio-contribution' &&
17
+ isMoneyRange(value.range) &&
18
+ Array.isArray(value.allocationIds) &&
19
+ value.allocationIds.length <= 10000 &&
20
+ value.allocationIds.every(id => typeof id === 'string' && id.trim().length > 0 && id.length <= 16384) &&
21
+ new Set(value.allocationIds).size === value.allocationIds.length &&
22
+ (value.allocationIds.length > 0 || value.range.maxSavingsMinorUnits === 0);
23
+ exports.isReportPortfolioSavingsContribution = isReportPortfolioSavingsContribution;
24
+ const isReportScenarioSavings = (value) => (0, reportEvidenceValidationHelpers_1.isRecord)(value) &&
25
+ value.semantics === 'standalone-scenario' &&
26
+ isMoneyRange(value.range) &&
27
+ (value.combinationPolicy === 'additive' || value.combinationPolicy === 'exclusive' || value.combinationPolicy === 'conditional') &&
28
+ (value.combinationGroupId === undefined || (typeof value.combinationGroupId === 'string' && value.combinationGroupId.length <= 16384));
29
+ exports.isReportScenarioSavings = isReportScenarioSavings;
30
+ const hasValidReportSavingsMetadata = (value) => ['savingsOwnerResourceId', 'billableComponentKey'].every(key => value[key] === undefined || (typeof value[key] === 'string' && value[key].trim().length > 0 && value[key].length <= 16384)) &&
31
+ (value.savingsAggregationPolicy === undefined ||
32
+ value.savingsAggregationPolicy === 'owner-component' ||
33
+ value.savingsAggregationPolicy === 'resource') &&
34
+ (value.portfolioContribution === undefined || (0, exports.isReportPortfolioSavingsContribution)(value.portfolioContribution)) &&
35
+ (value.scenarioSavings === undefined || (0, exports.isReportScenarioSavings)(value.scenarioSavings));
36
+ exports.hasValidReportSavingsMetadata = hasValidReportSavingsMetadata;
37
+ //# sourceMappingURL=reportSavingsContributionValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reportSavingsContributionValidation.js","sourceRoot":"","sources":["../../src/azure/reportSavingsContributionValidation.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { REPORT_EVIDENCE_LIMITS } from './reportEvidence.js';
2
2
  import { isReportSavingsBasis } from './reportSpendValidation.js';
3
+ import { hasValidReportSavingsMetadata } from './reportSavingsContributionValidation.js';
3
4
  import { isRecord, isString, isOptionalString, isOptionalFiniteNumber, isOptionalBoolean, isFiniteNumber, isCount, isBoundedRows, hasOptionalStrings, hasOptionalNumbers, } from './reportEvidenceValidationHelpers.js';
4
5
  const isCompactRecommendationResource = (value) => isRecord(value) &&
6
+ hasValidReportSavingsMetadata(value) &&
5
7
  isString(value.id) &&
6
8
  ['name', 'type', 'resourceGroup', 'location', 'currency', 'currencySymbol'].every(key => isOptionalString(value[key])) &&
7
9
  ['spend', 'spendAmortized'].every(key => isOptionalFiniteNumber(value[key])) &&
@@ -11,6 +13,8 @@ const isCompactRecommendationResource = (value) => isRecord(value) &&
11
13
  export const isCompactRecommendation = (value) => {
12
14
  if (!isRecord(value) || !isRecord(value.recommendation) || !Array.isArray(value.resources))
13
15
  return false;
16
+ if (!hasValidReportSavingsMetadata(value))
17
+ return false;
14
18
  if (value.savingsBasis !== undefined && !isReportSavingsBasis(value.savingsBasis))
15
19
  return false;
16
20
  const recommendation = value.recommendation;
@@ -0,0 +1,30 @@
1
+ import { isRecord } from './reportEvidenceValidationHelpers.js';
2
+ const isMoneyRange = (value) => {
3
+ if (!isRecord(value) || typeof value.currency !== 'string' || !/^[A-Z]{3}$/.test(value.currency))
4
+ return false;
5
+ const fields = ['minorUnitScale', 'currentMonthlyMinorUnits', 'minSavingsMinorUnits', 'maxSavingsMinorUnits'];
6
+ if (!fields.every(key => Number.isSafeInteger(value[key]) && Number(value[key]) >= 0))
7
+ return false;
8
+ return (Number(value.minorUnitScale) <= 6 &&
9
+ Number(value.minSavingsMinorUnits) <= Number(value.maxSavingsMinorUnits) &&
10
+ Number(value.maxSavingsMinorUnits) <= Number(value.currentMonthlyMinorUnits));
11
+ };
12
+ export const isReportPortfolioSavingsContribution = (value) => isRecord(value) &&
13
+ value.semantics === 'portfolio-contribution' &&
14
+ isMoneyRange(value.range) &&
15
+ Array.isArray(value.allocationIds) &&
16
+ value.allocationIds.length <= 10000 &&
17
+ value.allocationIds.every(id => typeof id === 'string' && id.trim().length > 0 && id.length <= 16384) &&
18
+ new Set(value.allocationIds).size === value.allocationIds.length &&
19
+ (value.allocationIds.length > 0 || value.range.maxSavingsMinorUnits === 0);
20
+ export const isReportScenarioSavings = (value) => isRecord(value) &&
21
+ value.semantics === 'standalone-scenario' &&
22
+ isMoneyRange(value.range) &&
23
+ (value.combinationPolicy === 'additive' || value.combinationPolicy === 'exclusive' || value.combinationPolicy === 'conditional') &&
24
+ (value.combinationGroupId === undefined || (typeof value.combinationGroupId === 'string' && value.combinationGroupId.length <= 16384));
25
+ export const hasValidReportSavingsMetadata = (value) => ['savingsOwnerResourceId', 'billableComponentKey'].every(key => value[key] === undefined || (typeof value[key] === 'string' && value[key].trim().length > 0 && value[key].length <= 16384)) &&
26
+ (value.savingsAggregationPolicy === undefined ||
27
+ value.savingsAggregationPolicy === 'owner-component' ||
28
+ value.savingsAggregationPolicy === 'resource') &&
29
+ (value.portfolioContribution === undefined || isReportPortfolioSavingsContribution(value.portfolioContribution)) &&
30
+ (value.scenarioSavings === undefined || isReportScenarioSavings(value.scenarioSavings));
package/dist/esm/index.js CHANGED
@@ -44,6 +44,7 @@ export * from './azure/subscriptions.js';
44
44
  export * from './azure/views.js';
45
45
  export * from './azure/security.js';
46
46
  export * from './azure/savings.js';
47
+ export { isReportPortfolioSavingsContribution, isReportScenarioSavings } from './azure/reportSavingsContributionValidation.js';
47
48
  export * from './azure/serviceRetirement.js';
48
49
  export * from './azure/serviceRetirementState.js';
49
50
  export * from './azure/serviceRetirementWorkManagement.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,206 @@
1
+ const MAX_IDENTIFIER_LENGTH = 2048;
2
+ const MAX_ETAG_LENGTH = 4096;
3
+ const MAX_LOCATION_LENGTH = 128;
4
+ const MAX_IP_CONFIGURATION_NAME_LENGTH = 80;
5
+ const MAX_TAG_COUNT = 50;
6
+ const MAX_TAG_NAME_LENGTH = 512;
7
+ const MAX_TAG_VALUE_LENGTH = 256;
8
+ function isPlainRecord(value) {
9
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
10
+ return false;
11
+ const prototype = Reflect.getPrototypeOf(value);
12
+ return prototype === Object.prototype || prototype === null;
13
+ }
14
+ function hasOnlyFields(value, fields) {
15
+ const allowed = new Set(fields);
16
+ return Object.keys(value).every(field => allowed.has(field));
17
+ }
18
+ function readString(value, maximumLength) {
19
+ if (typeof value !== 'string' || value.trim().length === 0 || value.length > maximumLength)
20
+ return undefined;
21
+ return value.trim();
22
+ }
23
+ function normalizeResourceId(value) {
24
+ const resourceId = readString(value, MAX_IDENTIFIER_LENGTH);
25
+ if (!resourceId || resourceId.includes('\\') || resourceId.includes('//') || resourceId.endsWith('/'))
26
+ return undefined;
27
+ return resourceId.toLowerCase();
28
+ }
29
+ function readBastionSubscriptionId(resourceId) {
30
+ return /^\/subscriptions\/([a-z0-9-]+)\/resourcegroups\/[a-z0-9._()-]+\/providers\/microsoft\.network\/bastionhosts\/[a-z0-9._()-]+$/.exec(resourceId)?.[1];
31
+ }
32
+ function readBoolean(value) {
33
+ return value === undefined ? false : typeof value === 'boolean' ? value : undefined;
34
+ }
35
+ function readTags(value) {
36
+ if (value === undefined)
37
+ return {};
38
+ if (!isPlainRecord(value) || Object.keys(value).length > MAX_TAG_COUNT)
39
+ return undefined;
40
+ const entries = [];
41
+ for (const key of Object.keys(value).sort()) {
42
+ const tagValue = value[key];
43
+ if (key.length === 0 || key.length > MAX_TAG_NAME_LENGTH || typeof tagValue !== 'string' || tagValue.length > MAX_TAG_VALUE_LENGTH) {
44
+ return undefined;
45
+ }
46
+ entries.push([key, tagValue]);
47
+ }
48
+ return Object.fromEntries(entries);
49
+ }
50
+ function readZones(value) {
51
+ if (value === undefined)
52
+ return undefined;
53
+ if (!Array.isArray(value) ||
54
+ value.length < 1 ||
55
+ value.length > 3 ||
56
+ !value.every(zone => typeof zone === 'string' && /^[1-3]$/.test(zone)) ||
57
+ new Set(value).size !== value.length) {
58
+ return false;
59
+ }
60
+ return [...value].sort();
61
+ }
62
+ function readSku(value) {
63
+ if (!isPlainRecord(value) || !hasOnlyFields(value, ['name']))
64
+ return undefined;
65
+ const name = value['name'];
66
+ return name === 'Basic' || name === 'Standard' || name === 'Premium' ? name : undefined;
67
+ }
68
+ /** Normalizes an eligible public dedicated Azure Bastion profile for schedule readiness and recovery. */
69
+ export function readSupportedBastionScheduleProfileV1(value, expectedResourceId) {
70
+ try {
71
+ if (!isPlainRecord(value) ||
72
+ !hasOnlyFields(value, ['name', 'id', 'etag', 'type', 'location', 'tags', 'sku', 'properties', 'systemData', 'zones'])) {
73
+ return undefined;
74
+ }
75
+ const normalizedExpectedResourceId = normalizeResourceId(expectedResourceId);
76
+ const normalizedSourceResourceId = normalizeResourceId(value['id']);
77
+ const bastionSubscriptionId = normalizedSourceResourceId ? readBastionSubscriptionId(normalizedSourceResourceId) : undefined;
78
+ const resourceType = readString(value['type'], MAX_IDENTIFIER_LENGTH)?.toLowerCase();
79
+ const sourceEtag = readString(value['etag'], MAX_ETAG_LENGTH);
80
+ const location = readString(value['location'], MAX_LOCATION_LENGTH)?.toLowerCase();
81
+ const tags = readTags(value['tags']);
82
+ const skuName = readSku(value['sku']);
83
+ const zones = readZones(value['zones']);
84
+ if (!normalizedExpectedResourceId ||
85
+ normalizedSourceResourceId !== normalizedExpectedResourceId ||
86
+ !bastionSubscriptionId ||
87
+ resourceType !== 'microsoft.network/bastionhosts' ||
88
+ !sourceEtag ||
89
+ !location ||
90
+ !tags ||
91
+ !skuName ||
92
+ zones === false) {
93
+ return undefined;
94
+ }
95
+ if (!isPlainRecord(value['properties']) ||
96
+ !hasOnlyFields(value['properties'], [
97
+ 'provisioningState',
98
+ 'dnsName',
99
+ 'publicUri',
100
+ 'scaleUnits',
101
+ 'disableCopyPaste',
102
+ 'enableFileCopy',
103
+ 'enableIpConnect',
104
+ 'enableShareableLink',
105
+ 'enableTunneling',
106
+ 'enableKerberos',
107
+ 'enableSessionRecording',
108
+ 'enablePrivateOnlyBastion',
109
+ 'ipConfigurations',
110
+ 'networkAcls',
111
+ 'virtualNetwork',
112
+ ]) ||
113
+ value['properties']['provisioningState'] !== 'Succeeded' ||
114
+ value['properties']['networkAcls'] !== undefined ||
115
+ value['properties']['virtualNetwork'] !== undefined) {
116
+ return undefined;
117
+ }
118
+ const properties = value['properties'];
119
+ const scaleUnits = properties['scaleUnits'];
120
+ if (typeof scaleUnits !== 'number' ||
121
+ !Number.isInteger(scaleUnits) ||
122
+ (skuName === 'Basic' ? scaleUnits !== 2 : scaleUnits < 2 || scaleUnits > 50)) {
123
+ return undefined;
124
+ }
125
+ const disableCopyPaste = readBoolean(properties['disableCopyPaste']);
126
+ const enableFileCopy = readBoolean(properties['enableFileCopy']);
127
+ const enableIpConnect = readBoolean(properties['enableIpConnect']);
128
+ const enableShareableLink = readBoolean(properties['enableShareableLink']);
129
+ const enableTunneling = readBoolean(properties['enableTunneling']);
130
+ const enableKerberos = readBoolean(properties['enableKerberos']);
131
+ const enableSessionRecording = readBoolean(properties['enableSessionRecording']);
132
+ const enablePrivateOnlyBastion = readBoolean(properties['enablePrivateOnlyBastion']);
133
+ if (disableCopyPaste === undefined ||
134
+ enableFileCopy === undefined ||
135
+ enableIpConnect === undefined ||
136
+ enableShareableLink === undefined ||
137
+ enableTunneling === undefined ||
138
+ enableKerberos === undefined ||
139
+ enableSessionRecording !== false ||
140
+ enablePrivateOnlyBastion !== false ||
141
+ (skuName === 'Basic' && (enableFileCopy || enableIpConnect || enableShareableLink || enableTunneling || enableKerberos))) {
142
+ return undefined;
143
+ }
144
+ const configurations = properties['ipConfigurations'];
145
+ if (!Array.isArray(configurations) || configurations.length !== 1)
146
+ return undefined;
147
+ const configuration = configurations[0];
148
+ if (!isPlainRecord(configuration) ||
149
+ !hasOnlyFields(configuration, ['name', 'id', 'etag', 'type', 'properties']) ||
150
+ !isPlainRecord(configuration['properties']) ||
151
+ !hasOnlyFields(configuration['properties'], ['provisioningState', 'privateIPAllocationMethod', 'publicIPAddress', 'subnet']) ||
152
+ (configuration['properties']['provisioningState'] !== undefined && configuration['properties']['provisioningState'] !== 'Succeeded') ||
153
+ configuration['properties']['privateIPAllocationMethod'] !== 'Dynamic') {
154
+ return undefined;
155
+ }
156
+ const ipConfigurationName = readString(configuration['name'], MAX_IP_CONFIGURATION_NAME_LENGTH);
157
+ const publicIp = configuration['properties']['publicIPAddress'];
158
+ const subnet = configuration['properties']['subnet'];
159
+ if (!ipConfigurationName ||
160
+ !isPlainRecord(publicIp) ||
161
+ !hasOnlyFields(publicIp, ['id']) ||
162
+ !isPlainRecord(subnet) ||
163
+ !hasOnlyFields(subnet, ['id'])) {
164
+ return undefined;
165
+ }
166
+ const publicIpId = normalizeResourceId(publicIp['id']);
167
+ const subnetId = normalizeResourceId(subnet['id']);
168
+ const publicIpMatch = publicIpId
169
+ ? /^\/subscriptions\/([a-z0-9-]+)\/resourcegroups\/[a-z0-9._()-]+\/providers\/microsoft\.network\/publicipaddresses\/[a-z0-9._()-]+$/.exec(publicIpId)
170
+ : undefined;
171
+ const subnetMatch = subnetId
172
+ ? /^\/subscriptions\/([a-z0-9-]+)\/resourcegroups\/[a-z0-9._()-]+\/providers\/microsoft\.network\/virtualnetworks\/[a-z0-9._()-]+\/subnets\/azurebastionsubnet$/.exec(subnetId)
173
+ : undefined;
174
+ if (!publicIpId ||
175
+ !publicIpMatch ||
176
+ publicIpMatch[1] !== bastionSubscriptionId ||
177
+ !subnetId ||
178
+ !subnetMatch ||
179
+ subnetMatch[1] !== bastionSubscriptionId) {
180
+ return undefined;
181
+ }
182
+ return {
183
+ skuName,
184
+ location,
185
+ ...(zones ? { zones } : {}),
186
+ scaleUnits,
187
+ disableCopyPaste,
188
+ enableFileCopy,
189
+ enableIpConnect,
190
+ enableShareableLink,
191
+ enableTunneling,
192
+ enableKerberos,
193
+ enableSessionRecording: false,
194
+ enablePrivateOnlyBastion: false,
195
+ tags,
196
+ ipConfigurationName,
197
+ publicIpId,
198
+ subnetId,
199
+ virtualNetworkId: subnetId.slice(0, subnetId.lastIndexOf('/subnets/')),
200
+ sourceEtag,
201
+ };
202
+ }
203
+ catch {
204
+ return undefined;
205
+ }
206
+ }