@harnessio/react-ccm-optimization-service-client 0.2.0 → 0.3.1

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 (123) hide show
  1. package/dist/ccm-optimization-service/src/services/hooks/useCreateAiGovernancePolicyMutation.d.ts +23 -0
  2. package/dist/ccm-optimization-service/src/services/hooks/useCreateAiGovernancePolicyMutation.js +14 -0
  3. package/dist/ccm-optimization-service/src/services/hooks/useDeleteAiGovernancePolicyMutation.d.ts +24 -0
  4. package/dist/ccm-optimization-service/src/services/hooks/useDeleteAiGovernancePolicyMutation.js +14 -0
  5. package/dist/ccm-optimization-service/src/services/hooks/useDryRunAiGovernancePolicyMutation.d.ts +29 -0
  6. package/dist/ccm-optimization-service/src/services/hooks/useDryRunAiGovernancePolicyMutation.js +14 -0
  7. package/dist/ccm-optimization-service/src/services/hooks/useGetAiGovernancePolicyOverviewQuery.d.ts +24 -0
  8. package/dist/ccm-optimization-service/src/services/hooks/useGetAiGovernancePolicyOverviewQuery.js +14 -0
  9. package/dist/ccm-optimization-service/src/services/hooks/useGetAiGovernancePolicyQuery.d.ts +24 -0
  10. package/dist/ccm-optimization-service/src/services/hooks/useGetAiGovernancePolicyQuery.js +14 -0
  11. package/dist/ccm-optimization-service/src/services/hooks/useGetMyAiGovernanceBudgetOverviewQuery.d.ts +28 -0
  12. package/dist/ccm-optimization-service/src/services/hooks/useGetMyAiGovernanceBudgetOverviewQuery.js +14 -0
  13. package/dist/ccm-optimization-service/src/services/hooks/useListAiGovernanceOverrideRequestsMutation.d.ts +27 -0
  14. package/dist/ccm-optimization-service/src/services/hooks/useListAiGovernanceOverrideRequestsMutation.js +14 -0
  15. package/dist/ccm-optimization-service/src/services/hooks/useListAiGovernancePoliciesMutation.d.ts +23 -0
  16. package/dist/ccm-optimization-service/src/services/hooks/useListAiGovernancePoliciesMutation.js +14 -0
  17. package/dist/ccm-optimization-service/src/services/hooks/useListAiGovernancePolicySubjectsMutation.d.ts +27 -0
  18. package/dist/ccm-optimization-service/src/services/hooks/useListAiGovernancePolicySubjectsMutation.js +14 -0
  19. package/dist/ccm-optimization-service/src/services/hooks/useListMyAiGovernanceBudgetsQuery.d.ts +20 -0
  20. package/dist/ccm-optimization-service/src/services/hooks/useListMyAiGovernanceBudgetsQuery.js +14 -0
  21. package/dist/ccm-optimization-service/src/services/hooks/useListMyAiGovernanceOverrideRequestsMutation.d.ts +23 -0
  22. package/dist/ccm-optimization-service/src/services/hooks/useListMyAiGovernanceOverrideRequestsMutation.js +14 -0
  23. package/dist/ccm-optimization-service/src/services/hooks/useRequestMyAiGovernanceBudgetOverrideMutation.d.ts +23 -0
  24. package/dist/ccm-optimization-service/src/services/hooks/useRequestMyAiGovernanceBudgetOverrideMutation.js +14 -0
  25. package/dist/ccm-optimization-service/src/services/hooks/useReviewAiGovernanceOverrideRequestsMutation.d.ts +27 -0
  26. package/dist/ccm-optimization-service/src/services/hooks/useReviewAiGovernanceOverrideRequestsMutation.js +14 -0
  27. package/dist/ccm-optimization-service/src/services/hooks/useUpdateAiGovernancePolicyMutation.d.ts +27 -0
  28. package/dist/ccm-optimization-service/src/services/hooks/useUpdateAiGovernancePolicyMutation.js +14 -0
  29. package/dist/ccm-optimization-service/src/services/index.d.ts +74 -0
  30. package/dist/ccm-optimization-service/src/services/index.js +14 -0
  31. package/dist/ccm-optimization-service/src/services/requestBodies/AiGovernancePolicyUpsertRequestRequestBody.d.ts +2 -0
  32. package/dist/ccm-optimization-service/src/services/requestBodies/AiGovernancePolicyUpsertRequestRequestBody.js +1 -0
  33. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceApprovalRequest.d.ts +64 -0
  34. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceApprovalRequest.js +1 -0
  35. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceApprovalRequestList.d.ts +20 -0
  36. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceApprovalRequestList.js +1 -0
  37. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceApprovalRequestListResponse.d.ts +4 -0
  38. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceApprovalRequestListResponse.js +1 -0
  39. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceApprovalRequestView.d.ts +7 -0
  40. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceApprovalRequestView.js +1 -0
  41. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceConnectorRef.d.ts +14 -0
  42. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceConnectorRef.js +4 -0
  43. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceDryRunResponse.d.ts +4 -0
  44. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceDryRunResponse.js +1 -0
  45. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceDryRunResult.d.ts +14 -0
  46. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceDryRunResult.js +1 -0
  47. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceDryRunRuleResult.d.ts +15 -0
  48. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceDryRunRuleResult.js +1 -0
  49. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceDryRunSubject.d.ts +28 -0
  50. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceDryRunSubject.js +4 -0
  51. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceGovernancePeriod.d.ts +21 -0
  52. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceGovernancePeriod.js +4 -0
  53. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceMyOverrideRequestsList.d.ts +6 -0
  54. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceMyOverrideRequestsList.js +1 -0
  55. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceMyOverrideRequestsListRequest.d.ts +47 -0
  56. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceMyOverrideRequestsListRequest.js +4 -0
  57. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceMyOverrideRequestsListResponse.d.ts +4 -0
  58. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceMyOverrideRequestsListResponse.js +1 -0
  59. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceOverrideRequestsListRequest.d.ts +51 -0
  60. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceOverrideRequestsListRequest.js +4 -0
  61. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicy.d.ts +24 -0
  62. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicy.js +1 -0
  63. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyAuthoring.d.ts +10 -0
  64. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyAuthoring.js +1 -0
  65. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyBudget.d.ts +9 -0
  66. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyBudget.js +1 -0
  67. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyDetails.d.ts +8 -0
  68. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyDetails.js +1 -0
  69. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyDetailsResponse.d.ts +4 -0
  70. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyDetailsResponse.js +1 -0
  71. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyDocument.d.ts +6 -0
  72. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyDocument.js +1 -0
  73. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyListItem.d.ts +21 -0
  74. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyListItem.js +1 -0
  75. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyListRequest.d.ts +33 -0
  76. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyListRequest.js +4 -0
  77. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyListResponse.d.ts +14 -0
  78. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyListResponse.js +1 -0
  79. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyOverviewMetrics.d.ts +31 -0
  80. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyOverviewMetrics.js +1 -0
  81. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyResponse.d.ts +4 -0
  82. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyResponse.js +1 -0
  83. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicySpec.d.ts +56 -0
  84. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicySpec.js +4 -0
  85. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicySubjectRow.d.ts +24 -0
  86. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicySubjectRow.js +1 -0
  87. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicySubjectsRequest.d.ts +39 -0
  88. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicySubjectsRequest.js +4 -0
  89. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicySubjectsResponse.d.ts +14 -0
  90. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicySubjectsResponse.js +1 -0
  91. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyUpsertRequest.d.ts +11 -0
  92. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyUpsertRequest.js +1 -0
  93. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyUserHealth.d.ts +5 -0
  94. package/dist/ccm-optimization-service/src/services/schemas/AiGovernancePolicyUserHealth.js +4 -0
  95. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceRequestBudgetOverrideRequest.d.ts +20 -0
  96. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceRequestBudgetOverrideRequest.js +4 -0
  97. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceReviewOverrideItem.d.ts +11 -0
  98. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceReviewOverrideItem.js +4 -0
  99. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceReviewOverrideOutcome.d.ts +10 -0
  100. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceReviewOverrideOutcome.js +1 -0
  101. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceReviewOverridesRequest.d.ts +4 -0
  102. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceReviewOverridesRequest.js +1 -0
  103. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceReviewOverridesResponse.d.ts +12 -0
  104. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceReviewOverridesResponse.js +1 -0
  105. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceReviewOverridesResult.d.ts +4 -0
  106. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceReviewOverridesResult.js +1 -0
  107. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceRuleBudget.d.ts +32 -0
  108. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceRuleBudget.js +1 -0
  109. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceSubjects.d.ts +31 -0
  110. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceSubjects.js +4 -0
  111. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceUserBudgetOverview.d.ts +8 -0
  112. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceUserBudgetOverview.js +1 -0
  113. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceUserBudgetOverviewResponse.d.ts +4 -0
  114. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceUserBudgetOverviewResponse.js +1 -0
  115. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceUserBudgetRow.d.ts +61 -0
  116. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceUserBudgetRow.js +1 -0
  117. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceUserBudgets.d.ts +12 -0
  118. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceUserBudgets.js +1 -0
  119. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceUserBudgetsResponse.d.ts +4 -0
  120. package/dist/ccm-optimization-service/src/services/schemas/AiGovernanceUserBudgetsResponse.js +1 -0
  121. package/dist/ccm-optimization-service/src/services/schemas/AlertMessageResponse.d.ts +8 -0
  122. package/dist/ccm-optimization-service/src/services/schemas/AlertMessageResponse.js +4 -0
  123. package/package.json +1 -1
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Pagination request for listing override request history on a policy
3
+ */
4
+ export interface AiGovernanceOverrideRequestsListRequest {
5
+ /**
6
+ * Optional filters; supports subject_id equals to scope results to one governed user
7
+ */
8
+ filters?: Array<{
9
+ /**
10
+ * Field to filter on
11
+ */
12
+ field?: 'subject_id';
13
+ /**
14
+ * Filter operator
15
+ */
16
+ operator?: 'equals';
17
+ /**
18
+ * Subject email or ID values to match
19
+ */
20
+ values?: string[];
21
+ }>;
22
+ /**
23
+ * Number of history records per page (max 100)
24
+ * @default 10
25
+ * @example 10
26
+ */
27
+ limit?: number;
28
+ /**
29
+ * Page number (1-indexed) for history
30
+ * @default 1
31
+ * @example 1
32
+ */
33
+ page?: number;
34
+ /**
35
+ * Optional search string (reserved for future use)
36
+ */
37
+ query?: string;
38
+ /**
39
+ * Sorting options for history
40
+ */
41
+ sort?: {
42
+ /**
43
+ * @example "decided_at"
44
+ */
45
+ field?: 'decided_at';
46
+ /**
47
+ * @example "DESC"
48
+ */
49
+ type?: 'ASC' | 'DESC';
50
+ };
51
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,24 @@
1
+ import type { AiGovernancePolicyDocument } from '../schemas/AiGovernancePolicyDocument';
2
+ export interface AiGovernancePolicy {
3
+ accountId?: string;
4
+ /**
5
+ * @format date-time
6
+ */
7
+ createdAt?: string;
8
+ createdBy?: string;
9
+ document?: AiGovernancePolicyDocument;
10
+ /**
11
+ * @format uuid
12
+ */
13
+ id?: string;
14
+ name?: string;
15
+ /**
16
+ * Original YAML upload when the policy was created or last updated via rawYaml. Empty when the JSON policy path was used; document is always authoritative.
17
+ */
18
+ rawYaml?: string;
19
+ /**
20
+ * @format date-time
21
+ */
22
+ updatedAt?: string;
23
+ updatedBy?: string;
24
+ }
@@ -0,0 +1,10 @@
1
+ import type { AiGovernancePolicySpec } from '../schemas/AiGovernancePolicySpec';
2
+ import type { AiGovernanceSubjects } from '../schemas/AiGovernanceSubjects';
3
+ export interface AiGovernancePolicyAuthoring {
4
+ /**
5
+ * Lowercase slug policy name
6
+ */
7
+ name: string;
8
+ spec: AiGovernancePolicySpec;
9
+ subjects: AiGovernanceSubjects;
10
+ }
@@ -0,0 +1,9 @@
1
+ import type { AiGovernanceRuleBudget } from '../schemas/AiGovernanceRuleBudget';
2
+ export interface AiGovernancePolicyBudget {
3
+ /**
4
+ * @format uuid
5
+ */
6
+ policy_id: string;
7
+ policy_name: string;
8
+ rule_budgets: AiGovernanceRuleBudget[];
9
+ }
@@ -0,0 +1,8 @@
1
+ import type { AiGovernancePolicyOverviewMetrics } from '../schemas/AiGovernancePolicyOverviewMetrics';
2
+ export interface AiGovernancePolicyDetails extends AiGovernancePolicyOverviewMetrics {
3
+ /**
4
+ * @format uuid
5
+ */
6
+ policyId?: string;
7
+ policyName?: string;
8
+ }
@@ -0,0 +1,4 @@
1
+ import type { AiGovernancePolicyDetails } from '../schemas/AiGovernancePolicyDetails';
2
+ export interface AiGovernancePolicyDetailsResponse {
3
+ response: AiGovernancePolicyDetails;
4
+ }
@@ -0,0 +1,6 @@
1
+ import type { AiGovernancePolicySpec } from '../schemas/AiGovernancePolicySpec';
2
+ import type { AiGovernanceSubjects } from '../schemas/AiGovernanceSubjects';
3
+ export interface AiGovernancePolicyDocument {
4
+ spec?: AiGovernancePolicySpec;
5
+ subjects?: AiGovernanceSubjects;
6
+ }
@@ -0,0 +1,21 @@
1
+ import type { AiGovernancePolicyDocument } from '../schemas/AiGovernancePolicyDocument';
2
+ import type { AiGovernancePolicyOverviewMetrics } from '../schemas/AiGovernancePolicyOverviewMetrics';
3
+ export interface AiGovernancePolicyListItem extends AiGovernancePolicyOverviewMetrics {
4
+ accountId?: string;
5
+ /**
6
+ * @format date-time
7
+ */
8
+ createdAt?: string;
9
+ createdBy?: string;
10
+ document?: AiGovernancePolicyDocument;
11
+ /**
12
+ * @format uuid
13
+ */
14
+ id?: string;
15
+ name?: string;
16
+ /**
17
+ * @format date-time
18
+ */
19
+ updatedAt?: string;
20
+ updatedBy?: string;
21
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Pagination request for listing governance policies
3
+ */
4
+ export interface AiGovernancePolicyListRequest {
5
+ filters?: Array<{
6
+ [key: string]: any;
7
+ }>;
8
+ /**
9
+ * Number of records per page (max 100)
10
+ * @default 10
11
+ * @example 10
12
+ */
13
+ limit?: number;
14
+ /**
15
+ * Page number (1-indexed)
16
+ * @default 1
17
+ * @example 1
18
+ */
19
+ page?: number;
20
+ /**
21
+ * Sorting options
22
+ */
23
+ sort?: {
24
+ /**
25
+ * @example "name"
26
+ */
27
+ field?: 'created_at' | 'name' | 'updated_at';
28
+ /**
29
+ * @example "DESC"
30
+ */
31
+ type?: 'ASC' | 'DESC';
32
+ };
33
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { AiGovernancePolicyListItem } from '../schemas/AiGovernancePolicyListItem';
2
+ export interface AiGovernancePolicyListResponse {
3
+ response: {
4
+ items: AiGovernancePolicyListItem[];
5
+ /**
6
+ * Total number of pages
7
+ */
8
+ pages: number;
9
+ /**
10
+ * Total number of policies matching the criteria
11
+ */
12
+ total: number;
13
+ };
14
+ }
@@ -0,0 +1,31 @@
1
+ import type { AiGovernanceGovernancePeriod } from '../schemas/AiGovernanceGovernancePeriod';
2
+ import type { AiGovernancePolicyUserHealth } from '../schemas/AiGovernancePolicyUserHealth';
3
+ /**
4
+ * Overview metrics shared by policy list items and the single-policy overview response. Spend fields are populated only after dry-run or reconcile writes the per-policy stats cache.
5
+ */
6
+ export interface AiGovernancePolicyOverviewMetrics {
7
+ /**
8
+ * Null until dry-run or reconcile has seeded the per-policy stats cache for the current period
9
+ */
10
+ cumulativeSpend?: number | null;
11
+ pendingRequestsCount: number;
12
+ period: AiGovernanceGovernancePeriod;
13
+ /**
14
+ * 1-indexed day within the current budget period
15
+ */
16
+ periodDay: number;
17
+ /**
18
+ * Null until dry-run or reconcile has seeded the per-policy stats cache for the current period
19
+ */
20
+ spendPercent?: number | null;
21
+ /**
22
+ * Total effective budget ceiling for the current policy period across all budget-cap rules
23
+ */
24
+ totalPeriodBudget: number;
25
+ totalSubjects: number;
26
+ /**
27
+ * Null until dry-run or reconcile has seeded the per-policy stats cache for the current period
28
+ */
29
+ userHealth?: AiGovernancePolicyUserHealth | null;
30
+ warnings?: string[];
31
+ }
@@ -0,0 +1,4 @@
1
+ import type { AiGovernancePolicy } from '../schemas/AiGovernancePolicy';
2
+ export interface AiGovernancePolicyResponse {
3
+ response: AiGovernancePolicy;
4
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Typed constraint payload for a policy. Only type=budget-cap is currently supported.
3
+ */
4
+ export interface AiGovernancePolicySpec {
5
+ /**
6
+ * Graduated responses triggered at ascending spend thresholds. Actions determine enforcement behavior; there is no separate enforcement strategy field.
7
+ */
8
+ actions?: Array<{
9
+ channels?: string[];
10
+ dedupeByCeiling?: boolean;
11
+ delivery?: 'digest' | 'immediate';
12
+ do: 'block-user' | 'notify' | 'remove-premium-models';
13
+ includeRecoveryInstructions?: boolean;
14
+ models?: string[];
15
+ when: {
16
+ thresholdPercent?: number;
17
+ };
18
+ }>;
19
+ /**
20
+ * Overall budget ceiling. Required unless every entry in providers sets its own amount.
21
+ */
22
+ amount?: number;
23
+ /**
24
+ * Approval tiers for budget-override requests, with strictly ascending upToAmount
25
+ */
26
+ approvals?: Array<{
27
+ approvers: {
28
+ emails?: string[];
29
+ userGroups?: string[];
30
+ };
31
+ autoApproveWhen?: {
32
+ maxPremiumSpendPercent?: number;
33
+ };
34
+ upToAmount: number;
35
+ }>;
36
+ /**
37
+ * Cron expression or descriptor (e.g. @hourly) controlling how often the policy is evaluated
38
+ */
39
+ evaluationSchedule: string;
40
+ /**
41
+ * Whether the ceiling applies per subject or to a shared pool. Defaults to per-subject (pooled for account-scoped subjects). Account-scoped policies must use pooled.
42
+ */
43
+ mode?: 'per-subject' | 'pooled';
44
+ period: 'custom' | 'monthly' | 'quarterly' | 'weekly';
45
+ /**
46
+ * Per-provider budget ceilings. Required (non-empty) when amount is omitted; provider names must not repeat. Each entry with its own amount creates an independent provider scope; an entry with no amount is governed by the total scope only.
47
+ */
48
+ providers?: Array<{
49
+ amount?: number;
50
+ provider: 'anthropic' | 'bedrock' | 'cursor';
51
+ }>;
52
+ /**
53
+ * Constraint shape; only budget-cap is currently supported
54
+ */
55
+ type: 'budget-cap';
56
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,24 @@
1
+ import type { AiGovernanceApprovalRequestView } from '../schemas/AiGovernanceApprovalRequestView';
2
+ export interface AiGovernancePolicySubjectRow {
3
+ /**
4
+ * Effective budget ceiling after active overrides
5
+ */
6
+ budget: number;
7
+ /**
8
+ * Subject email
9
+ */
10
+ email: string;
11
+ pendingRequest?: AiGovernanceApprovalRequestView;
12
+ /**
13
+ * Current-period spend for the primary budget-cap rule
14
+ */
15
+ spendAmount: number;
16
+ /**
17
+ * Spend as a percentage of effective budget
18
+ */
19
+ spendPercent: number;
20
+ /**
21
+ * Budget utilization band for the subject
22
+ */
23
+ status: 'atRisk' | 'good' | 'overBudget';
24
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Pagination and filter request for listing governed subjects on a policy
3
+ */
4
+ export interface AiGovernancePolicySubjectsRequest {
5
+ /**
6
+ * all returns every mapped subject; pending_requests returns only subjects with an open budget raise request
7
+ * @default "all"
8
+ */
9
+ filter?: 'all' | 'pending_requests';
10
+ /**
11
+ * Number of records per page (max 100)
12
+ * @default 10
13
+ * @example 10
14
+ */
15
+ limit?: number;
16
+ /**
17
+ * Page number (1-indexed)
18
+ * @default 1
19
+ * @example 1
20
+ */
21
+ page?: number;
22
+ /**
23
+ * Optional search string matched against subject email
24
+ */
25
+ query?: string;
26
+ /**
27
+ * Sorting options
28
+ */
29
+ sort?: {
30
+ /**
31
+ * @example "email"
32
+ */
33
+ field?: 'email';
34
+ /**
35
+ * @example "ASC"
36
+ */
37
+ type?: 'ASC' | 'DESC';
38
+ };
39
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { AiGovernancePolicySubjectRow } from '../schemas/AiGovernancePolicySubjectRow';
2
+ export interface AiGovernancePolicySubjectsResponse {
3
+ response: {
4
+ items: AiGovernancePolicySubjectRow[];
5
+ /**
6
+ * Total number of pages
7
+ */
8
+ pages: number;
9
+ /**
10
+ * Total number of mapped subjects matching the filter
11
+ */
12
+ total: number;
13
+ };
14
+ }
@@ -0,0 +1,11 @@
1
+ import type { AiGovernancePolicyAuthoring } from '../schemas/AiGovernancePolicyAuthoring';
2
+ /**
3
+ * Provide either rawYaml or policy (not both required in schema, but one must be supplied at runtime).
4
+ */
5
+ export interface AiGovernancePolicyUpsertRequest {
6
+ policy?: AiGovernancePolicyAuthoring;
7
+ /**
8
+ * Full governance policy YAML document with exactly one policy entry containing subjects and spec
9
+ */
10
+ rawYaml?: string;
11
+ }
@@ -0,0 +1,5 @@
1
+ export interface AiGovernancePolicyUserHealth {
2
+ atRisk?: number;
3
+ good?: number;
4
+ overBudget?: number;
5
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,20 @@
1
+ export interface AiGovernanceRequestBudgetOverrideRequest {
2
+ /**
3
+ * Requested budget ceiling raise in USD dollars
4
+ */
5
+ amount: number;
6
+ /**
7
+ * Governance policy that contains the budget-cap rule
8
+ * @format uuid
9
+ */
10
+ policy_id: string;
11
+ /**
12
+ * Business justification for the override request
13
+ */
14
+ reason: string;
15
+ /**
16
+ * Budget-cap rule to raise
17
+ * @format uuid
18
+ */
19
+ rule_id: string;
20
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,11 @@
1
+ export interface AiGovernanceReviewOverrideItem {
2
+ action: 'approve' | 'reject';
3
+ /**
4
+ * Optional approved ceiling in USD dollars when action is approve; the caller must be authorized for this amount on the pending tier
5
+ */
6
+ approved_amount?: number;
7
+ /**
8
+ * @format uuid
9
+ */
10
+ request_id: string;
11
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { AiGovernanceApprovalRequest } from '../schemas/AiGovernanceApprovalRequest';
2
+ export interface AiGovernanceReviewOverrideOutcome {
3
+ message?: string;
4
+ request?: AiGovernanceApprovalRequest;
5
+ /**
6
+ * @format uuid
7
+ */
8
+ requestId: string;
9
+ success: boolean;
10
+ }
@@ -0,0 +1,4 @@
1
+ import type { AiGovernanceReviewOverrideItem } from '../schemas/AiGovernanceReviewOverrideItem';
2
+ export interface AiGovernanceReviewOverridesRequest {
3
+ items: AiGovernanceReviewOverrideItem[];
4
+ }
@@ -0,0 +1,12 @@
1
+ import type { AiGovernanceReviewOverridesResult } from '../schemas/AiGovernanceReviewOverridesResult';
2
+ export interface AiGovernanceReviewOverridesResponse {
3
+ code?: string;
4
+ errors?: string[];
5
+ response?: AiGovernanceReviewOverridesResult;
6
+ success?: boolean;
7
+ /**
8
+ * Unix milliseconds timestamp
9
+ * @format int64
10
+ */
11
+ ts?: number;
12
+ }
@@ -0,0 +1,4 @@
1
+ import type { AiGovernanceReviewOverrideOutcome } from '../schemas/AiGovernanceReviewOverrideOutcome';
2
+ export interface AiGovernanceReviewOverridesResult {
3
+ results: AiGovernanceReviewOverrideOutcome[];
4
+ }
@@ -0,0 +1,32 @@
1
+ import type { AiGovernanceGovernancePeriod } from '../schemas/AiGovernanceGovernancePeriod';
2
+ export interface AiGovernanceRuleBudget {
3
+ /**
4
+ * Effective budget ceiling in USD dollars after active overrides
5
+ */
6
+ amount: number;
7
+ /**
8
+ * Spend as a percentage of the effective ceiling
9
+ */
10
+ percentage: number;
11
+ period: AiGovernanceGovernancePeriod;
12
+ /**
13
+ * Connector providers with spend in the current period for this rule
14
+ */
15
+ providers: string[];
16
+ /**
17
+ * Remaining budget in USD dollars (effective ceiling minus spend)
18
+ */
19
+ remaining: number;
20
+ /**
21
+ * Remaining budget as a percentage of the effective ceiling
22
+ */
23
+ remaining_percentage: number;
24
+ /**
25
+ * @format uuid
26
+ */
27
+ rule_id: string;
28
+ /**
29
+ * Current-period spend in USD dollars
30
+ */
31
+ spend: number;
32
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Policy-level subject selector. Exactly one of account, users, userGroups, perspective, or costCategory must be set.
3
+ */
4
+ export interface AiGovernanceSubjects {
5
+ /**
6
+ * Governs every subject on the account. Must be true when set.
7
+ */
8
+ account?: boolean;
9
+ /**
10
+ * Cost category identifier in scope
11
+ */
12
+ costCategory?: string;
13
+ /**
14
+ * Principals permanently excluded from every scope under the policy
15
+ */
16
+ exclude?: {
17
+ users?: string[];
18
+ };
19
+ /**
20
+ * Cost perspective identifier in scope
21
+ */
22
+ perspective?: string;
23
+ /**
24
+ * User group identifiers in scope
25
+ */
26
+ userGroups?: string[];
27
+ /**
28
+ * Explicit user emails in scope
29
+ */
30
+ users?: string[];
31
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { AiGovernancePolicyBudget } from '../schemas/AiGovernancePolicyBudget';
2
+ export interface AiGovernanceUserBudgetOverview {
3
+ policy_budgets: AiGovernancePolicyBudget[];
4
+ /**
5
+ * Canonical subject identifier for the logged-in user (typically email when available)
6
+ */
7
+ subject_id: string;
8
+ }