@atensec/pulumi-thoth 0.1.3 → 0.1.5

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 (48) hide show
  1. package/access/{apiKey.ts → agentApiKey.ts} +29 -33
  2. package/access/endpointApiKey.ts +235 -0
  3. package/access/fleetApiKey.ts +235 -0
  4. package/access/getApiKeyAuthorization.ts +72 -0
  5. package/access/getApiKeys.ts +57 -0
  6. package/access/index.ts +33 -7
  7. package/billing/getCreditBank.ts +56 -0
  8. package/billing/getEstimate.ts +93 -0
  9. package/billing/getInvoices.ts +49 -0
  10. package/billing/getMonthlyCost.ts +38 -0
  11. package/billing/getPricing.ts +37 -0
  12. package/billing/getReport.ts +49 -0
  13. package/billing/getReports.ts +29 -0
  14. package/billing/index.ts +60 -0
  15. package/billing/overageCap.ts +174 -0
  16. package/browser/getEnrollments.ts +52 -0
  17. package/browser/getPolicies.ts +47 -0
  18. package/browser/getProviders.ts +28 -0
  19. package/browser/index.ts +15 -0
  20. package/config/vars.ts +3 -3
  21. package/fleet/fleet.ts +292 -0
  22. package/fleet/getEndpointStats.ts +36 -0
  23. package/fleet/getEndpoints.ts +52 -0
  24. package/fleet/getFleet.ts +48 -0
  25. package/fleet/getFleets.ts +57 -0
  26. package/fleet/index.ts +45 -0
  27. package/governance/getApprovals.ts +57 -0
  28. package/governance/getCostReport.ts +51 -0
  29. package/governance/getDay7Report.ts +46 -0
  30. package/governance/getEvidenceBundle.ts +47 -0
  31. package/governance/getEvidenceChain.ts +53 -0
  32. package/governance/getEvidenceVerify.ts +50 -0
  33. package/governance/getPacks.ts +28 -0
  34. package/governance/getReportsOverview.ts +46 -0
  35. package/governance/getRuntimeStatus.ts +46 -0
  36. package/governance/{tenantSettings.ts → governanceSettings.ts} +18 -244
  37. package/governance/index.ts +76 -7
  38. package/governance/packAssignment.ts +56 -0
  39. package/governance/packAssignmentBulk.ts +56 -0
  40. package/governance/pamSettings.ts +187 -0
  41. package/governance/siemSettings.ts +159 -0
  42. package/governance/webhookSettings.ts +145 -0
  43. package/index.ts +4 -0
  44. package/mdm/getProviders.ts +28 -0
  45. package/mdm/index.ts +5 -0
  46. package/package.json +1 -1
  47. package/provider.ts +9 -12
  48. package/tsconfig.json +37 -2
@@ -0,0 +1,174 @@
1
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
2
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
3
+
4
+ import * as pulumi from "@pulumi/pulumi";
5
+ import * as utilities from "../utilities";
6
+
7
+ export class OverageCap extends pulumi.CustomResource {
8
+ /**
9
+ * Get an existing OverageCap resource's state with the given name, ID, and optional extra
10
+ * properties used to qualify the lookup.
11
+ *
12
+ * @param name The _unique_ name of the resulting resource.
13
+ * @param id The _unique_ provider ID of the resource to lookup.
14
+ * @param state Any extra arguments used during the lookup.
15
+ * @param opts Optional settings to control the behavior of the CustomResource.
16
+ */
17
+ public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: OverageCapState, opts?: pulumi.CustomResourceOptions): OverageCap {
18
+ return new OverageCap(name, <any>state, { ...opts, id: id });
19
+ }
20
+
21
+ /** @internal */
22
+ public static readonly __pulumiType = 'thoth:billing/overageCap:OverageCap';
23
+
24
+ /**
25
+ * Returns true if the given object is an instance of OverageCap. This is designed to work even
26
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
27
+ */
28
+ public static isInstance(obj: any): obj is OverageCap {
29
+ if (obj === undefined || obj === null) {
30
+ return false;
31
+ }
32
+ return obj['__pulumiType'] === OverageCap.__pulumiType;
33
+ }
34
+
35
+ /**
36
+ * Effective active pricing tier.
37
+ */
38
+ declare public /*out*/ readonly activeTier: pulumi.Output<string>;
39
+ /**
40
+ * Base monthly platform fee in USD for the active tier.
41
+ */
42
+ declare public /*out*/ readonly baseMonthlyPlatformFeeUsd: pulumi.Output<number>;
43
+ /**
44
+ * Per-governed-identity overage rate.
45
+ */
46
+ declare public /*out*/ readonly governedIdentityUsdPerMonth: pulumi.Output<number>;
47
+ /**
48
+ * Included governed identities before overage.
49
+ */
50
+ declare public /*out*/ readonly includedGovernedIdentities: pulumi.Output<number>;
51
+ /**
52
+ * Included policy checks before overage.
53
+ */
54
+ declare public /*out*/ readonly includedPolicyChecks: pulumi.Output<number>;
55
+ /**
56
+ * Monthly variable overage cap in USD.
57
+ */
58
+ declare public readonly overageCapUsd: pulumi.Output<number>;
59
+ /**
60
+ * Per-million policy checks overage rate.
61
+ */
62
+ declare public /*out*/ readonly policyChecksUsdPerMillion: pulumi.Output<number>;
63
+ /**
64
+ * Full billing pricing profile response payload as JSON.
65
+ */
66
+ declare public /*out*/ readonly responseJson: pulumi.Output<string>;
67
+ /**
68
+ * Tenant ID resolved from provider configuration.
69
+ */
70
+ declare public /*out*/ readonly tenantId: pulumi.Output<string>;
71
+ /**
72
+ * Timestamp when the overage cap was last applied via provider.
73
+ */
74
+ declare public /*out*/ readonly updatedAt: pulumi.Output<string>;
75
+
76
+ /**
77
+ * Create a OverageCap resource with the given unique name, arguments, and options.
78
+ *
79
+ * @param name The _unique_ name of the resource.
80
+ * @param args The arguments to use to populate this resource's properties.
81
+ * @param opts A bag of options that control this resource's behavior.
82
+ */
83
+ constructor(name: string, args: OverageCapArgs, opts?: pulumi.CustomResourceOptions)
84
+ constructor(name: string, argsOrState?: OverageCapArgs | OverageCapState, opts?: pulumi.CustomResourceOptions) {
85
+ let resourceInputs: pulumi.Inputs = {};
86
+ opts = opts || {};
87
+ if (opts.id) {
88
+ const state = argsOrState as OverageCapState | undefined;
89
+ resourceInputs["activeTier"] = state?.activeTier;
90
+ resourceInputs["baseMonthlyPlatformFeeUsd"] = state?.baseMonthlyPlatformFeeUsd;
91
+ resourceInputs["governedIdentityUsdPerMonth"] = state?.governedIdentityUsdPerMonth;
92
+ resourceInputs["includedGovernedIdentities"] = state?.includedGovernedIdentities;
93
+ resourceInputs["includedPolicyChecks"] = state?.includedPolicyChecks;
94
+ resourceInputs["overageCapUsd"] = state?.overageCapUsd;
95
+ resourceInputs["policyChecksUsdPerMillion"] = state?.policyChecksUsdPerMillion;
96
+ resourceInputs["responseJson"] = state?.responseJson;
97
+ resourceInputs["tenantId"] = state?.tenantId;
98
+ resourceInputs["updatedAt"] = state?.updatedAt;
99
+ } else {
100
+ const args = argsOrState as OverageCapArgs | undefined;
101
+ if (args?.overageCapUsd === undefined && !opts.urn) {
102
+ throw new Error("Missing required property 'overageCapUsd'");
103
+ }
104
+ resourceInputs["overageCapUsd"] = args?.overageCapUsd;
105
+ resourceInputs["activeTier"] = undefined /*out*/;
106
+ resourceInputs["baseMonthlyPlatformFeeUsd"] = undefined /*out*/;
107
+ resourceInputs["governedIdentityUsdPerMonth"] = undefined /*out*/;
108
+ resourceInputs["includedGovernedIdentities"] = undefined /*out*/;
109
+ resourceInputs["includedPolicyChecks"] = undefined /*out*/;
110
+ resourceInputs["policyChecksUsdPerMillion"] = undefined /*out*/;
111
+ resourceInputs["responseJson"] = undefined /*out*/;
112
+ resourceInputs["tenantId"] = undefined /*out*/;
113
+ resourceInputs["updatedAt"] = undefined /*out*/;
114
+ }
115
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
116
+ super(OverageCap.__pulumiType, name, resourceInputs, opts);
117
+ }
118
+ }
119
+
120
+ /**
121
+ * Input properties used for looking up and filtering OverageCap resources.
122
+ */
123
+ export interface OverageCapState {
124
+ /**
125
+ * Effective active pricing tier.
126
+ */
127
+ activeTier?: pulumi.Input<string | undefined>;
128
+ /**
129
+ * Base monthly platform fee in USD for the active tier.
130
+ */
131
+ baseMonthlyPlatformFeeUsd?: pulumi.Input<number | undefined>;
132
+ /**
133
+ * Per-governed-identity overage rate.
134
+ */
135
+ governedIdentityUsdPerMonth?: pulumi.Input<number | undefined>;
136
+ /**
137
+ * Included governed identities before overage.
138
+ */
139
+ includedGovernedIdentities?: pulumi.Input<number | undefined>;
140
+ /**
141
+ * Included policy checks before overage.
142
+ */
143
+ includedPolicyChecks?: pulumi.Input<number | undefined>;
144
+ /**
145
+ * Monthly variable overage cap in USD.
146
+ */
147
+ overageCapUsd?: pulumi.Input<number | undefined>;
148
+ /**
149
+ * Per-million policy checks overage rate.
150
+ */
151
+ policyChecksUsdPerMillion?: pulumi.Input<number | undefined>;
152
+ /**
153
+ * Full billing pricing profile response payload as JSON.
154
+ */
155
+ responseJson?: pulumi.Input<string | undefined>;
156
+ /**
157
+ * Tenant ID resolved from provider configuration.
158
+ */
159
+ tenantId?: pulumi.Input<string | undefined>;
160
+ /**
161
+ * Timestamp when the overage cap was last applied via provider.
162
+ */
163
+ updatedAt?: pulumi.Input<string | undefined>;
164
+ }
165
+
166
+ /**
167
+ * The set of arguments for constructing a OverageCap resource.
168
+ */
169
+ export interface OverageCapArgs {
170
+ /**
171
+ * Monthly variable overage cap in USD.
172
+ */
173
+ overageCapUsd: pulumi.Input<number>;
174
+ }
@@ -0,0 +1,52 @@
1
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
2
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
3
+
4
+ import * as pulumi from "@pulumi/pulumi";
5
+ import * as utilities from "../utilities";
6
+
7
+ export function getEnrollments(args?: GetEnrollmentsArgs, opts?: pulumi.InvokeOptions): Promise<GetEnrollmentsResult> {
8
+ args = args || {};
9
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
10
+ return pulumi.runtime.invoke("thoth:browser/getEnrollments:getEnrollments", {
11
+ "provider": args.provider,
12
+ "status": args.status,
13
+ }, opts);
14
+ }
15
+
16
+ /**
17
+ * A collection of arguments for invoking getEnrollments.
18
+ */
19
+ export interface GetEnrollmentsArgs {
20
+ provider?: string;
21
+ status?: string;
22
+ }
23
+
24
+ /**
25
+ * A collection of values returned by getEnrollments.
26
+ */
27
+ export interface GetEnrollmentsResult {
28
+ readonly dataJson: string;
29
+ /**
30
+ * The provider-assigned unique ID for this managed resource.
31
+ */
32
+ readonly id: string;
33
+ readonly provider?: string;
34
+ readonly status?: string;
35
+ readonly total: number;
36
+ }
37
+ export function getEnrollmentsOutput(args?: GetEnrollmentsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetEnrollmentsResult> {
38
+ args = args || {};
39
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
40
+ return pulumi.runtime.invokeOutput("thoth:browser/getEnrollments:getEnrollments", {
41
+ "provider": args.provider,
42
+ "status": args.status,
43
+ }, opts);
44
+ }
45
+
46
+ /**
47
+ * A collection of arguments for invoking getEnrollments.
48
+ */
49
+ export interface GetEnrollmentsOutputArgs {
50
+ provider?: pulumi.Input<string | undefined>;
51
+ status?: pulumi.Input<string | undefined>;
52
+ }
@@ -0,0 +1,47 @@
1
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
2
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
3
+
4
+ import * as pulumi from "@pulumi/pulumi";
5
+ import * as utilities from "../utilities";
6
+
7
+ export function getPolicies(args?: GetPoliciesArgs, opts?: pulumi.InvokeOptions): Promise<GetPoliciesResult> {
8
+ args = args || {};
9
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
10
+ return pulumi.runtime.invoke("thoth:browser/getPolicies:getPolicies", {
11
+ "provider": args.provider,
12
+ }, opts);
13
+ }
14
+
15
+ /**
16
+ * A collection of arguments for invoking getPolicies.
17
+ */
18
+ export interface GetPoliciesArgs {
19
+ provider?: string;
20
+ }
21
+
22
+ /**
23
+ * A collection of values returned by getPolicies.
24
+ */
25
+ export interface GetPoliciesResult {
26
+ readonly dataJson: string;
27
+ /**
28
+ * The provider-assigned unique ID for this managed resource.
29
+ */
30
+ readonly id: string;
31
+ readonly provider?: string;
32
+ readonly total: number;
33
+ }
34
+ export function getPoliciesOutput(args?: GetPoliciesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetPoliciesResult> {
35
+ args = args || {};
36
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
37
+ return pulumi.runtime.invokeOutput("thoth:browser/getPolicies:getPolicies", {
38
+ "provider": args.provider,
39
+ }, opts);
40
+ }
41
+
42
+ /**
43
+ * A collection of arguments for invoking getPolicies.
44
+ */
45
+ export interface GetPoliciesOutputArgs {
46
+ provider?: pulumi.Input<string | undefined>;
47
+ }
@@ -0,0 +1,28 @@
1
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
2
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
3
+
4
+ import * as pulumi from "@pulumi/pulumi";
5
+ import * as utilities from "../utilities";
6
+
7
+ export function getProviders(opts?: pulumi.InvokeOptions): Promise<GetProvidersResult> {
8
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
9
+ return pulumi.runtime.invoke("thoth:browser/getProviders:getProviders", {
10
+ }, opts);
11
+ }
12
+
13
+ /**
14
+ * A collection of values returned by getProviders.
15
+ */
16
+ export interface GetProvidersResult {
17
+ readonly dataJson: string;
18
+ /**
19
+ * The provider-assigned unique ID for this managed resource.
20
+ */
21
+ readonly id: string;
22
+ readonly total: number;
23
+ }
24
+ export function getProvidersOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetProvidersResult> {
25
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
26
+ return pulumi.runtime.invokeOutput("thoth:browser/getProviders:getProviders", {
27
+ }, opts);
28
+ }
package/browser/index.ts CHANGED
@@ -10,6 +10,21 @@ export type Enrollment = import("./enrollment").Enrollment;
10
10
  export const Enrollment: typeof import("./enrollment").Enrollment = null as any;
11
11
  utilities.lazyLoad(exports, ["Enrollment"], () => require("./enrollment"));
12
12
 
13
+ export { GetEnrollmentsArgs, GetEnrollmentsResult, GetEnrollmentsOutputArgs } from "./getEnrollments";
14
+ export const getEnrollments: typeof import("./getEnrollments").getEnrollments = null as any;
15
+ export const getEnrollmentsOutput: typeof import("./getEnrollments").getEnrollmentsOutput = null as any;
16
+ utilities.lazyLoad(exports, ["getEnrollments","getEnrollmentsOutput"], () => require("./getEnrollments"));
17
+
18
+ export { GetPoliciesArgs, GetPoliciesResult, GetPoliciesOutputArgs } from "./getPolicies";
19
+ export const getPolicies: typeof import("./getPolicies").getPolicies = null as any;
20
+ export const getPoliciesOutput: typeof import("./getPolicies").getPoliciesOutput = null as any;
21
+ utilities.lazyLoad(exports, ["getPolicies","getPoliciesOutput"], () => require("./getPolicies"));
22
+
23
+ export { GetProvidersResult } from "./getProviders";
24
+ export const getProviders: typeof import("./getProviders").getProviders = null as any;
25
+ export const getProvidersOutput: typeof import("./getProviders").getProvidersOutput = null as any;
26
+ utilities.lazyLoad(exports, ["getProviders","getProvidersOutput"], () => require("./getProviders"));
27
+
13
28
  export { PolicyArgs, PolicyState } from "./policy";
14
29
  export type Policy = import("./policy").Policy;
15
30
  export const Policy: typeof import("./policy").Policy = null as any;
package/config/vars.ts CHANGED
@@ -63,7 +63,7 @@ Object.defineProperty(exports, "insecureSkipTlsVerify", {
63
63
  });
64
64
 
65
65
  /**
66
- * Organization API key used for non-interactive CI/CD control-plane operations.
66
+ * Organization-scoped API key used for non-interactive CI/CD control-plane operations.
67
67
  */
68
68
  export declare const orgApiKey: string | undefined;
69
69
  Object.defineProperty(exports, "orgApiKey", {
@@ -74,7 +74,7 @@ Object.defineProperty(exports, "orgApiKey", {
74
74
  });
75
75
 
76
76
  /**
77
- * Path to a file containing the organization API key.
77
+ * Path to a file containing the organization-scoped API key.
78
78
  */
79
79
  export declare const orgApiKeyFile: string | undefined;
80
80
  Object.defineProperty(exports, "orgApiKeyFile", {
@@ -129,7 +129,7 @@ Object.defineProperty(exports, "retryMaxDelayMs", {
129
129
  });
130
130
 
131
131
  /**
132
- * Tenant slug used in GovAPI route scoping.
132
+ * Tenant slug used in GovAPI route scoping. If omitted, provider reads THOTH_TENANT_ID.
133
133
  */
134
134
  export declare const tenantId: string | undefined;
135
135
  Object.defineProperty(exports, "tenantId", {
package/fleet/fleet.ts ADDED
@@ -0,0 +1,292 @@
1
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
2
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
3
+
4
+ import * as pulumi from "@pulumi/pulumi";
5
+ import * as utilities from "../utilities";
6
+
7
+ export class Fleet extends pulumi.CustomResource {
8
+ /**
9
+ * Get an existing Fleet resource's state with the given name, ID, and optional extra
10
+ * properties used to qualify the lookup.
11
+ *
12
+ * @param name The _unique_ name of the resulting resource.
13
+ * @param id The _unique_ provider ID of the resource to lookup.
14
+ * @param state Any extra arguments used during the lookup.
15
+ * @param opts Optional settings to control the behavior of the CustomResource.
16
+ */
17
+ public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: FleetState, opts?: pulumi.CustomResourceOptions): Fleet {
18
+ return new Fleet(name, <any>state, { ...opts, id: id });
19
+ }
20
+
21
+ /** @internal */
22
+ public static readonly __pulumiType = 'thoth:fleet/fleet:Fleet';
23
+
24
+ /**
25
+ * Returns true if the given object is an instance of Fleet. This is designed to work even
26
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
27
+ */
28
+ public static isInstance(obj: any): obj is Fleet {
29
+ if (obj === undefined || obj === null) {
30
+ return false;
31
+ }
32
+ return obj['__pulumiType'] === Fleet.__pulumiType;
33
+ }
34
+
35
+ /**
36
+ * Compliance percentage.
37
+ */
38
+ declare public /*out*/ readonly compliancePct: pulumi.Output<number>;
39
+ /**
40
+ * Creation timestamp.
41
+ */
42
+ declare public /*out*/ readonly createdAt: pulumi.Output<string>;
43
+ /**
44
+ * Percent drift detected.
45
+ */
46
+ declare public /*out*/ readonly driftPct: pulumi.Output<number>;
47
+ /**
48
+ * Drifted endpoint count.
49
+ */
50
+ declare public /*out*/ readonly driftedEndpointCount: pulumi.Output<number>;
51
+ /**
52
+ * Endpoint count in this fleet.
53
+ */
54
+ declare public /*out*/ readonly endpointCount: pulumi.Output<number>;
55
+ /**
56
+ * Fleet code.
57
+ */
58
+ declare public /*out*/ readonly fleetCode: pulumi.Output<string>;
59
+ /**
60
+ * Fleet identifier.
61
+ */
62
+ declare public /*out*/ readonly fleetId: pulumi.Output<string>;
63
+ /**
64
+ * Last deployment timestamp.
65
+ */
66
+ declare public /*out*/ readonly lastDeployedAt: pulumi.Output<string>;
67
+ /**
68
+ * Last deployed version.
69
+ */
70
+ declare public /*out*/ readonly lastDeployedVersion: pulumi.Output<string>;
71
+ /**
72
+ * Fleet display name.
73
+ */
74
+ declare public readonly name: pulumi.Output<string>;
75
+ /**
76
+ * Attached policy ID.
77
+ */
78
+ declare public readonly policyId: pulumi.Output<string | undefined>;
79
+ /**
80
+ * Attached policy name.
81
+ */
82
+ declare public readonly policyName: pulumi.Output<string | undefined>;
83
+ /**
84
+ * Provider hint (jamf, intune, workspace_one, custom, none).
85
+ */
86
+ declare public readonly provider: pulumi.Output<string | undefined>;
87
+ /**
88
+ * Fleet region.
89
+ */
90
+ declare public readonly region: pulumi.Output<string | undefined>;
91
+ /**
92
+ * Current rollout percentage.
93
+ */
94
+ declare public readonly rolloutPct: pulumi.Output<number | undefined>;
95
+ /**
96
+ * Rollout strategy (canary or staged).
97
+ */
98
+ declare public readonly rolloutStrategy: pulumi.Output<string | undefined>;
99
+ /**
100
+ * Fleet status (active, paused, deploying, error).
101
+ */
102
+ declare public readonly status: pulumi.Output<string | undefined>;
103
+ /**
104
+ * Tenant ID from provider configuration.
105
+ */
106
+ declare public /*out*/ readonly tenantId: pulumi.Output<string>;
107
+ /**
108
+ * Last update timestamp.
109
+ */
110
+ declare public /*out*/ readonly updatedAt: pulumi.Output<string>;
111
+
112
+ /**
113
+ * Create a Fleet resource with the given unique name, arguments, and options.
114
+ *
115
+ * @param name The _unique_ name of the resource.
116
+ * @param args The arguments to use to populate this resource's properties.
117
+ * @param opts A bag of options that control this resource's behavior.
118
+ */
119
+ constructor(name: string, args: FleetArgs, opts?: pulumi.CustomResourceOptions)
120
+ constructor(name: string, argsOrState?: FleetArgs | FleetState, opts?: pulumi.CustomResourceOptions) {
121
+ let resourceInputs: pulumi.Inputs = {};
122
+ opts = opts || {};
123
+ if (opts.id) {
124
+ const state = argsOrState as FleetState | undefined;
125
+ resourceInputs["compliancePct"] = state?.compliancePct;
126
+ resourceInputs["createdAt"] = state?.createdAt;
127
+ resourceInputs["driftPct"] = state?.driftPct;
128
+ resourceInputs["driftedEndpointCount"] = state?.driftedEndpointCount;
129
+ resourceInputs["endpointCount"] = state?.endpointCount;
130
+ resourceInputs["fleetCode"] = state?.fleetCode;
131
+ resourceInputs["fleetId"] = state?.fleetId;
132
+ resourceInputs["lastDeployedAt"] = state?.lastDeployedAt;
133
+ resourceInputs["lastDeployedVersion"] = state?.lastDeployedVersion;
134
+ resourceInputs["name"] = state?.name;
135
+ resourceInputs["policyId"] = state?.policyId;
136
+ resourceInputs["policyName"] = state?.policyName;
137
+ resourceInputs["provider"] = state?.provider;
138
+ resourceInputs["region"] = state?.region;
139
+ resourceInputs["rolloutPct"] = state?.rolloutPct;
140
+ resourceInputs["rolloutStrategy"] = state?.rolloutStrategy;
141
+ resourceInputs["status"] = state?.status;
142
+ resourceInputs["tenantId"] = state?.tenantId;
143
+ resourceInputs["updatedAt"] = state?.updatedAt;
144
+ } else {
145
+ const args = argsOrState as FleetArgs | undefined;
146
+ if (args?.name === undefined && !opts.urn) {
147
+ throw new Error("Missing required property 'name'");
148
+ }
149
+ resourceInputs["name"] = args?.name;
150
+ resourceInputs["policyId"] = args?.policyId;
151
+ resourceInputs["policyName"] = args?.policyName;
152
+ resourceInputs["provider"] = args?.provider;
153
+ resourceInputs["region"] = args?.region;
154
+ resourceInputs["rolloutPct"] = args?.rolloutPct;
155
+ resourceInputs["rolloutStrategy"] = args?.rolloutStrategy;
156
+ resourceInputs["status"] = args?.status;
157
+ resourceInputs["compliancePct"] = undefined /*out*/;
158
+ resourceInputs["createdAt"] = undefined /*out*/;
159
+ resourceInputs["driftPct"] = undefined /*out*/;
160
+ resourceInputs["driftedEndpointCount"] = undefined /*out*/;
161
+ resourceInputs["endpointCount"] = undefined /*out*/;
162
+ resourceInputs["fleetCode"] = undefined /*out*/;
163
+ resourceInputs["fleetId"] = undefined /*out*/;
164
+ resourceInputs["lastDeployedAt"] = undefined /*out*/;
165
+ resourceInputs["lastDeployedVersion"] = undefined /*out*/;
166
+ resourceInputs["tenantId"] = undefined /*out*/;
167
+ resourceInputs["updatedAt"] = undefined /*out*/;
168
+ }
169
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
170
+ super(Fleet.__pulumiType, name, resourceInputs, opts);
171
+ }
172
+ }
173
+
174
+ /**
175
+ * Input properties used for looking up and filtering Fleet resources.
176
+ */
177
+ export interface FleetState {
178
+ /**
179
+ * Compliance percentage.
180
+ */
181
+ compliancePct?: pulumi.Input<number | undefined>;
182
+ /**
183
+ * Creation timestamp.
184
+ */
185
+ createdAt?: pulumi.Input<string | undefined>;
186
+ /**
187
+ * Percent drift detected.
188
+ */
189
+ driftPct?: pulumi.Input<number | undefined>;
190
+ /**
191
+ * Drifted endpoint count.
192
+ */
193
+ driftedEndpointCount?: pulumi.Input<number | undefined>;
194
+ /**
195
+ * Endpoint count in this fleet.
196
+ */
197
+ endpointCount?: pulumi.Input<number | undefined>;
198
+ /**
199
+ * Fleet code.
200
+ */
201
+ fleetCode?: pulumi.Input<string | undefined>;
202
+ /**
203
+ * Fleet identifier.
204
+ */
205
+ fleetId?: pulumi.Input<string | undefined>;
206
+ /**
207
+ * Last deployment timestamp.
208
+ */
209
+ lastDeployedAt?: pulumi.Input<string | undefined>;
210
+ /**
211
+ * Last deployed version.
212
+ */
213
+ lastDeployedVersion?: pulumi.Input<string | undefined>;
214
+ /**
215
+ * Fleet display name.
216
+ */
217
+ name?: pulumi.Input<string | undefined>;
218
+ /**
219
+ * Attached policy ID.
220
+ */
221
+ policyId?: pulumi.Input<string | undefined>;
222
+ /**
223
+ * Attached policy name.
224
+ */
225
+ policyName?: pulumi.Input<string | undefined>;
226
+ /**
227
+ * Provider hint (jamf, intune, workspace_one, custom, none).
228
+ */
229
+ provider?: pulumi.Input<string | undefined>;
230
+ /**
231
+ * Fleet region.
232
+ */
233
+ region?: pulumi.Input<string | undefined>;
234
+ /**
235
+ * Current rollout percentage.
236
+ */
237
+ rolloutPct?: pulumi.Input<number | undefined>;
238
+ /**
239
+ * Rollout strategy (canary or staged).
240
+ */
241
+ rolloutStrategy?: pulumi.Input<string | undefined>;
242
+ /**
243
+ * Fleet status (active, paused, deploying, error).
244
+ */
245
+ status?: pulumi.Input<string | undefined>;
246
+ /**
247
+ * Tenant ID from provider configuration.
248
+ */
249
+ tenantId?: pulumi.Input<string | undefined>;
250
+ /**
251
+ * Last update timestamp.
252
+ */
253
+ updatedAt?: pulumi.Input<string | undefined>;
254
+ }
255
+
256
+ /**
257
+ * The set of arguments for constructing a Fleet resource.
258
+ */
259
+ export interface FleetArgs {
260
+ /**
261
+ * Fleet display name.
262
+ */
263
+ name: pulumi.Input<string>;
264
+ /**
265
+ * Attached policy ID.
266
+ */
267
+ policyId?: pulumi.Input<string | undefined>;
268
+ /**
269
+ * Attached policy name.
270
+ */
271
+ policyName?: pulumi.Input<string | undefined>;
272
+ /**
273
+ * Provider hint (jamf, intune, workspace_one, custom, none).
274
+ */
275
+ provider?: pulumi.Input<string | undefined>;
276
+ /**
277
+ * Fleet region.
278
+ */
279
+ region?: pulumi.Input<string | undefined>;
280
+ /**
281
+ * Current rollout percentage.
282
+ */
283
+ rolloutPct?: pulumi.Input<number | undefined>;
284
+ /**
285
+ * Rollout strategy (canary or staged).
286
+ */
287
+ rolloutStrategy?: pulumi.Input<string | undefined>;
288
+ /**
289
+ * Fleet status (active, paused, deploying, error).
290
+ */
291
+ status?: pulumi.Input<string | undefined>;
292
+ }
@@ -0,0 +1,36 @@
1
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
2
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
3
+
4
+ import * as pulumi from "@pulumi/pulumi";
5
+ import * as utilities from "../utilities";
6
+
7
+ export function getEndpointStats(opts?: pulumi.InvokeOptions): Promise<GetEndpointStatsResult> {
8
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
9
+ return pulumi.runtime.invoke("thoth:fleet/getEndpointStats:getEndpointStats", {
10
+ }, opts);
11
+ }
12
+
13
+ /**
14
+ * A collection of values returned by getEndpointStats.
15
+ */
16
+ export interface GetEndpointStatsResult {
17
+ readonly atRisk: number;
18
+ /**
19
+ * The provider-assigned unique ID for this managed resource.
20
+ */
21
+ readonly id: string;
22
+ readonly latestVersion: string;
23
+ readonly managed: number;
24
+ readonly online: number;
25
+ readonly proxyOutdated: number;
26
+ readonly quarantined: number;
27
+ readonly stale: number;
28
+ readonly statsJson: string;
29
+ readonly total: number;
30
+ readonly unmanaged: number;
31
+ }
32
+ export function getEndpointStatsOutput(opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetEndpointStatsResult> {
33
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
34
+ return pulumi.runtime.invokeOutput("thoth:fleet/getEndpointStats:getEndpointStats", {
35
+ }, opts);
36
+ }