@formalco/pulumi 1.0.0-alpha.1754615478

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 (141) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +59 -0
  3. package/config/index.d.ts +1 -0
  4. package/config/index.js +21 -0
  5. package/config/index.js.map +1 -0
  6. package/config/vars.d.ts +2 -0
  7. package/config/vars.js +19 -0
  8. package/config/vars.js.map +1 -0
  9. package/connector.d.ts +83 -0
  10. package/connector.js +60 -0
  11. package/connector.js.map +1 -0
  12. package/connectorConfiguration.d.ts +75 -0
  13. package/connectorConfiguration.js +59 -0
  14. package/connectorConfiguration.js.map +1 -0
  15. package/connectorHostname.d.ts +121 -0
  16. package/connectorHostname.js +70 -0
  17. package/connectorHostname.js.map +1 -0
  18. package/connectorListener.d.ts +75 -0
  19. package/connectorListener.js +59 -0
  20. package/connectorListener.js.map +1 -0
  21. package/connectorListenerLink.d.ts +75 -0
  22. package/connectorListenerLink.js +62 -0
  23. package/connectorListenerLink.js.map +1 -0
  24. package/connectorListenerRule.d.ts +87 -0
  25. package/connectorListenerRule.js +67 -0
  26. package/connectorListenerRule.js.map +1 -0
  27. package/dataDiscovery.d.ts +107 -0
  28. package/dataDiscovery.js +74 -0
  29. package/dataDiscovery.js.map +1 -0
  30. package/dataDomain.d.ts +117 -0
  31. package/dataDomain.js +73 -0
  32. package/dataDomain.js.map +1 -0
  33. package/dataLabel.d.ts +75 -0
  34. package/dataLabel.js +62 -0
  35. package/dataLabel.js.map +1 -0
  36. package/encryptionKey.d.ts +103 -0
  37. package/encryptionKey.js +74 -0
  38. package/encryptionKey.js.map +1 -0
  39. package/getGroup.d.ts +48 -0
  40. package/getGroup.js +28 -0
  41. package/getGroup.js.map +1 -0
  42. package/getResource.d.ts +68 -0
  43. package/getResource.js +28 -0
  44. package/getResource.js.map +1 -0
  45. package/group.d.ts +75 -0
  46. package/group.js +59 -0
  47. package/group.js.map +1 -0
  48. package/groupUserLink.d.ts +75 -0
  49. package/groupUserLink.js +62 -0
  50. package/groupUserLink.js.map +1 -0
  51. package/index.d.ts +118 -0
  52. package/index.js +233 -0
  53. package/index.js.map +1 -0
  54. package/integrationBi.d.ts +77 -0
  55. package/integrationBi.js +59 -0
  56. package/integrationBi.js.map +1 -0
  57. package/integrationCloud.d.ts +183 -0
  58. package/integrationCloud.js +83 -0
  59. package/integrationCloud.js.map +1 -0
  60. package/integrationDataCatalog.d.ts +89 -0
  61. package/integrationDataCatalog.js +64 -0
  62. package/integrationDataCatalog.js.map +1 -0
  63. package/integrationLog.d.ts +89 -0
  64. package/integrationLog.js +58 -0
  65. package/integrationLog.js.map +1 -0
  66. package/integrationMdm.d.ts +65 -0
  67. package/integrationMdm.js +54 -0
  68. package/integrationMdm.js.map +1 -0
  69. package/integrationMfa.d.ts +77 -0
  70. package/integrationMfa.js +56 -0
  71. package/integrationMfa.js.map +1 -0
  72. package/inventoryObjectDataLabelLink.d.ts +87 -0
  73. package/inventoryObjectDataLabelLink.js +70 -0
  74. package/inventoryObjectDataLabelLink.js.map +1 -0
  75. package/logConfiguration.d.ts +129 -0
  76. package/logConfiguration.js +78 -0
  77. package/logConfiguration.js.map +1 -0
  78. package/nativeUser.d.ts +99 -0
  79. package/nativeUser.js +71 -0
  80. package/nativeUser.js.map +1 -0
  81. package/nativeUserLink.d.ts +95 -0
  82. package/nativeUserLink.js +69 -0
  83. package/nativeUserLink.js.map +1 -0
  84. package/package.json +29 -0
  85. package/permission.d.ts +99 -0
  86. package/permission.js +69 -0
  87. package/permission.js.map +1 -0
  88. package/policy.d.ts +139 -0
  89. package/policy.js +83 -0
  90. package/policy.js.map +1 -0
  91. package/policyDataLoader.d.ts +151 -0
  92. package/policyDataLoader.js +88 -0
  93. package/policyDataLoader.js.map +1 -0
  94. package/provider.d.ts +44 -0
  95. package/provider.js +54 -0
  96. package/provider.js.map +1 -0
  97. package/resource.d.ts +149 -0
  98. package/resource.js +77 -0
  99. package/resource.js.map +1 -0
  100. package/resourceClassifierConfiguration.d.ts +79 -0
  101. package/resourceClassifierConfiguration.js +64 -0
  102. package/resourceClassifierConfiguration.js.map +1 -0
  103. package/resourceHealthCheck.d.ts +75 -0
  104. package/resourceHealthCheck.js +62 -0
  105. package/resourceHealthCheck.js.map +1 -0
  106. package/resourceHostname.d.ts +87 -0
  107. package/resourceHostname.js +64 -0
  108. package/resourceHostname.js.map +1 -0
  109. package/resourceTlsConfiguration.d.ts +87 -0
  110. package/resourceTlsConfiguration.js +64 -0
  111. package/resourceTlsConfiguration.js.map +1 -0
  112. package/satellite.d.ts +91 -0
  113. package/satellite.js +62 -0
  114. package/satellite.js.map +1 -0
  115. package/sidecar.d.ts +123 -0
  116. package/sidecar.js +74 -0
  117. package/sidecar.js.map +1 -0
  118. package/sidecarResourceLink.d.ts +87 -0
  119. package/sidecarResourceLink.js +67 -0
  120. package/sidecarResourceLink.js.map +1 -0
  121. package/space.d.ts +83 -0
  122. package/space.js +58 -0
  123. package/space.js.map +1 -0
  124. package/tracker.d.ts +103 -0
  125. package/tracker.js +68 -0
  126. package/tracker.js.map +1 -0
  127. package/types/index.d.ts +3 -0
  128. package/types/index.js +11 -0
  129. package/types/index.js.map +1 -0
  130. package/types/input.d.ts +196 -0
  131. package/types/input.js +5 -0
  132. package/types/input.js.map +1 -0
  133. package/types/output.d.ts +195 -0
  134. package/types/output.js +5 -0
  135. package/types/output.js.map +1 -0
  136. package/user.d.ts +151 -0
  137. package/user.js +75 -0
  138. package/user.js.map +1 -0
  139. package/utilities.d.ts +4 -0
  140. package/utilities.js +102 -0
  141. package/utilities.js.map +1 -0
@@ -0,0 +1,196 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "../types/input";
3
+ export interface DataDomainOwner {
4
+ objectId: pulumi.Input<string>;
5
+ objectType: pulumi.Input<string>;
6
+ }
7
+ export interface IntegrationBiMetabase {
8
+ /**
9
+ * Hostname of the Metabase instance.
10
+ */
11
+ hostname: pulumi.Input<string>;
12
+ /**
13
+ * Password for the Metabase instance.
14
+ */
15
+ password: pulumi.Input<string>;
16
+ /**
17
+ * Username for the Metabase instance.
18
+ */
19
+ username: pulumi.Input<string>;
20
+ }
21
+ export interface IntegrationCloudAws {
22
+ /**
23
+ * Allows the Cloud Integration to access S3 buckets for Log Integrations.
24
+ */
25
+ allowS3Access?: pulumi.Input<boolean>;
26
+ /**
27
+ * The ARN of the IAM role that Formal assumes in your AWS account to access your resources.
28
+ */
29
+ awsCustomerRoleArn?: pulumi.Input<string>;
30
+ /**
31
+ * Enables resource autodiscovery for EC2 instances.
32
+ */
33
+ enableEc2Autodiscovery?: pulumi.Input<boolean>;
34
+ /**
35
+ * Enables resource autodiscovery for ECS clusters.
36
+ */
37
+ enableEcsAutodiscovery?: pulumi.Input<boolean>;
38
+ /**
39
+ * Enables resource autodiscovery for EKS clusters.
40
+ */
41
+ enableEksAutodiscovery?: pulumi.Input<boolean>;
42
+ /**
43
+ * Enables resource autodiscovery for RDS instances (PostgreSQL, MySQL, MongoDB).
44
+ */
45
+ enableRdsAutodiscovery?: pulumi.Input<boolean>;
46
+ /**
47
+ * Enables resource autodiscovery for Redshift clusters.
48
+ */
49
+ enableRedshiftAutodiscovery?: pulumi.Input<boolean>;
50
+ /**
51
+ * The S3 bucket ARN this Cloud Integration is allowed to use for Log Integrations.
52
+ */
53
+ s3BucketArn?: pulumi.Input<string>;
54
+ /**
55
+ * The template version of the CloudFormation stack. Use `latest` to stay in sync.
56
+ */
57
+ templateVersion: pulumi.Input<string>;
58
+ }
59
+ export interface IntegrationDataCatalogDatahub {
60
+ /**
61
+ * Api Key for the Datahub instance.
62
+ */
63
+ apiKey: pulumi.Input<string>;
64
+ /**
65
+ * Generalized metadata service url for the Datahub instance.
66
+ */
67
+ generalizedMetadataServiceUrl: pulumi.Input<string>;
68
+ /**
69
+ * Webhook secret of the Datahub instance.
70
+ */
71
+ webhookSecret: pulumi.Input<string>;
72
+ }
73
+ export interface IntegrationLogAwsS3 {
74
+ /**
75
+ * Cloud Integration ID.
76
+ */
77
+ cloudIntegrationId: pulumi.Input<string>;
78
+ /**
79
+ * AWS Region.
80
+ */
81
+ region?: pulumi.Input<string>;
82
+ /**
83
+ * AWS S3 Bucket Name.
84
+ */
85
+ s3BucketName: pulumi.Input<string>;
86
+ }
87
+ export interface IntegrationLogDatadog {
88
+ /**
89
+ * Account ID of Datadog.
90
+ */
91
+ accountId: pulumi.Input<string>;
92
+ /**
93
+ * API Key of Datadog.
94
+ */
95
+ apiKey: pulumi.Input<string>;
96
+ /**
97
+ * URL of your Datadog app.
98
+ */
99
+ site: pulumi.Input<string>;
100
+ }
101
+ export interface IntegrationLogSplunk {
102
+ /**
103
+ * Access Token of Splunk.
104
+ */
105
+ accessToken: pulumi.Input<string>;
106
+ /**
107
+ * URL of your Splunk app.
108
+ */
109
+ host: pulumi.Input<string>;
110
+ /**
111
+ * Port of your Splunk app.
112
+ */
113
+ port: pulumi.Input<number>;
114
+ }
115
+ export interface IntegrationMdmKandji {
116
+ /**
117
+ * API Key of your Kandji organization.
118
+ */
119
+ apiKey: pulumi.Input<string>;
120
+ /**
121
+ * API URL of your Kandji organization.
122
+ */
123
+ apiUrl: pulumi.Input<string>;
124
+ }
125
+ export interface IntegrationMfaDuo {
126
+ /**
127
+ * Duo API Hostname.
128
+ */
129
+ apiHostname: pulumi.Input<string>;
130
+ /**
131
+ * Duo Integration Key.
132
+ */
133
+ integrationKey: pulumi.Input<string>;
134
+ /**
135
+ * Duo Secret Key.
136
+ */
137
+ secretKey: pulumi.Input<string>;
138
+ }
139
+ export interface LogConfigurationRequest {
140
+ /**
141
+ * Whether to encrypt request payloads.
142
+ */
143
+ encrypt: pulumi.Input<boolean>;
144
+ /**
145
+ * Maximum size of request payloads to log.
146
+ */
147
+ maxPayloadSize: pulumi.Input<number>;
148
+ /**
149
+ * SQL logging configuration for requests.
150
+ */
151
+ sql?: pulumi.Input<inputs.LogConfigurationRequestSql>;
152
+ }
153
+ export interface LogConfigurationRequestSql {
154
+ /**
155
+ * Whether to encrypt SQL queries in logs.
156
+ */
157
+ encrypt: pulumi.Input<boolean>;
158
+ /**
159
+ * Whether to obfuscate SQL queries in logs.
160
+ */
161
+ stripValues: pulumi.Input<boolean>;
162
+ }
163
+ export interface LogConfigurationResponse {
164
+ /**
165
+ * Whether to encrypt response payloads.
166
+ */
167
+ encrypt: pulumi.Input<boolean>;
168
+ /**
169
+ * Maximum size of response payloads to log.
170
+ */
171
+ maxPayloadSize: pulumi.Input<number>;
172
+ }
173
+ export interface LogConfigurationScope {
174
+ /**
175
+ * The ID of the connector (required when type is connector).
176
+ */
177
+ connectorId?: pulumi.Input<string>;
178
+ /**
179
+ * The ID of the resource (required when type is resource).
180
+ */
181
+ resourceId?: pulumi.Input<string>;
182
+ /**
183
+ * The ID of the space (required when type is space).
184
+ */
185
+ spaceId?: pulumi.Input<string>;
186
+ /**
187
+ * The type of scope (resource, connector, space, org).
188
+ */
189
+ type: pulumi.Input<string>;
190
+ }
191
+ export interface LogConfigurationStream {
192
+ /**
193
+ * Whether to encrypt stream data.
194
+ */
195
+ encrypt: pulumi.Input<boolean>;
196
+ }
package/types/input.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../types/input.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF"}
@@ -0,0 +1,195 @@
1
+ import * as outputs from "../types/output";
2
+ export interface DataDomainOwner {
3
+ objectId: string;
4
+ objectType: string;
5
+ }
6
+ export interface IntegrationBiMetabase {
7
+ /**
8
+ * Hostname of the Metabase instance.
9
+ */
10
+ hostname: string;
11
+ /**
12
+ * Password for the Metabase instance.
13
+ */
14
+ password: string;
15
+ /**
16
+ * Username for the Metabase instance.
17
+ */
18
+ username: string;
19
+ }
20
+ export interface IntegrationCloudAws {
21
+ /**
22
+ * Allows the Cloud Integration to access S3 buckets for Log Integrations.
23
+ */
24
+ allowS3Access?: boolean;
25
+ /**
26
+ * The ARN of the IAM role that Formal assumes in your AWS account to access your resources.
27
+ */
28
+ awsCustomerRoleArn?: string;
29
+ /**
30
+ * Enables resource autodiscovery for EC2 instances.
31
+ */
32
+ enableEc2Autodiscovery?: boolean;
33
+ /**
34
+ * Enables resource autodiscovery for ECS clusters.
35
+ */
36
+ enableEcsAutodiscovery?: boolean;
37
+ /**
38
+ * Enables resource autodiscovery for EKS clusters.
39
+ */
40
+ enableEksAutodiscovery?: boolean;
41
+ /**
42
+ * Enables resource autodiscovery for RDS instances (PostgreSQL, MySQL, MongoDB).
43
+ */
44
+ enableRdsAutodiscovery?: boolean;
45
+ /**
46
+ * Enables resource autodiscovery for Redshift clusters.
47
+ */
48
+ enableRedshiftAutodiscovery?: boolean;
49
+ /**
50
+ * The S3 bucket ARN this Cloud Integration is allowed to use for Log Integrations.
51
+ */
52
+ s3BucketArn?: string;
53
+ /**
54
+ * The template version of the CloudFormation stack. Use `latest` to stay in sync.
55
+ */
56
+ templateVersion: string;
57
+ }
58
+ export interface IntegrationDataCatalogDatahub {
59
+ /**
60
+ * Api Key for the Datahub instance.
61
+ */
62
+ apiKey: string;
63
+ /**
64
+ * Generalized metadata service url for the Datahub instance.
65
+ */
66
+ generalizedMetadataServiceUrl: string;
67
+ /**
68
+ * Webhook secret of the Datahub instance.
69
+ */
70
+ webhookSecret: string;
71
+ }
72
+ export interface IntegrationLogAwsS3 {
73
+ /**
74
+ * Cloud Integration ID.
75
+ */
76
+ cloudIntegrationId: string;
77
+ /**
78
+ * AWS Region.
79
+ */
80
+ region: string;
81
+ /**
82
+ * AWS S3 Bucket Name.
83
+ */
84
+ s3BucketName: string;
85
+ }
86
+ export interface IntegrationLogDatadog {
87
+ /**
88
+ * Account ID of Datadog.
89
+ */
90
+ accountId: string;
91
+ /**
92
+ * API Key of Datadog.
93
+ */
94
+ apiKey: string;
95
+ /**
96
+ * URL of your Datadog app.
97
+ */
98
+ site: string;
99
+ }
100
+ export interface IntegrationLogSplunk {
101
+ /**
102
+ * Access Token of Splunk.
103
+ */
104
+ accessToken: string;
105
+ /**
106
+ * URL of your Splunk app.
107
+ */
108
+ host: string;
109
+ /**
110
+ * Port of your Splunk app.
111
+ */
112
+ port: number;
113
+ }
114
+ export interface IntegrationMdmKandji {
115
+ /**
116
+ * API Key of your Kandji organization.
117
+ */
118
+ apiKey: string;
119
+ /**
120
+ * API URL of your Kandji organization.
121
+ */
122
+ apiUrl: string;
123
+ }
124
+ export interface IntegrationMfaDuo {
125
+ /**
126
+ * Duo API Hostname.
127
+ */
128
+ apiHostname: string;
129
+ /**
130
+ * Duo Integration Key.
131
+ */
132
+ integrationKey: string;
133
+ /**
134
+ * Duo Secret Key.
135
+ */
136
+ secretKey: string;
137
+ }
138
+ export interface LogConfigurationRequest {
139
+ /**
140
+ * Whether to encrypt request payloads.
141
+ */
142
+ encrypt: boolean;
143
+ /**
144
+ * Maximum size of request payloads to log.
145
+ */
146
+ maxPayloadSize: number;
147
+ /**
148
+ * SQL logging configuration for requests.
149
+ */
150
+ sql?: outputs.LogConfigurationRequestSql;
151
+ }
152
+ export interface LogConfigurationRequestSql {
153
+ /**
154
+ * Whether to encrypt SQL queries in logs.
155
+ */
156
+ encrypt: boolean;
157
+ /**
158
+ * Whether to obfuscate SQL queries in logs.
159
+ */
160
+ stripValues: boolean;
161
+ }
162
+ export interface LogConfigurationResponse {
163
+ /**
164
+ * Whether to encrypt response payloads.
165
+ */
166
+ encrypt: boolean;
167
+ /**
168
+ * Maximum size of response payloads to log.
169
+ */
170
+ maxPayloadSize: number;
171
+ }
172
+ export interface LogConfigurationScope {
173
+ /**
174
+ * The ID of the connector (required when type is connector).
175
+ */
176
+ connectorId?: string;
177
+ /**
178
+ * The ID of the resource (required when type is resource).
179
+ */
180
+ resourceId?: string;
181
+ /**
182
+ * The ID of the space (required when type is space).
183
+ */
184
+ spaceId?: string;
185
+ /**
186
+ * The type of scope (resource, connector, space, org).
187
+ */
188
+ type: string;
189
+ }
190
+ export interface LogConfigurationStream {
191
+ /**
192
+ * Whether to encrypt stream data.
193
+ */
194
+ encrypt: boolean;
195
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../types/output.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF"}
package/user.d.ts ADDED
@@ -0,0 +1,151 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * User in Formal.
4
+ */
5
+ export declare class User extends pulumi.CustomResource {
6
+ /**
7
+ * Get an existing User resource's state with the given name, ID, and optional extra
8
+ * properties used to qualify the lookup.
9
+ *
10
+ * @param name The _unique_ name of the resulting resource.
11
+ * @param id The _unique_ provider ID of the resource to lookup.
12
+ * @param state Any extra arguments used during the lookup.
13
+ * @param opts Optional settings to control the behavior of the CustomResource.
14
+ */
15
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: UserState, opts?: pulumi.CustomResourceOptions): User;
16
+ /**
17
+ * Returns true if the given object is an instance of User. This is designed to work even
18
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
19
+ */
20
+ static isInstance(obj: any): obj is User;
21
+ /**
22
+ * If the user is of type `machine`, this is an optional designation for the app that this user will be used for. Supported values are `metabase`, `tableau`, and `popsql`.
23
+ */
24
+ readonly appType: pulumi.Output<string | undefined>;
25
+ /**
26
+ * The username that the user will use to access the sidecar.
27
+ */
28
+ readonly dbUsername: pulumi.Output<string>;
29
+ /**
30
+ * For human users, their email.
31
+ */
32
+ readonly email: pulumi.Output<string | undefined>;
33
+ /**
34
+ * When the Role should be deleted and access revoked. Value should be provided in Unix epoch time, in seconds since midnight UTC of January 1, 1970.
35
+ */
36
+ readonly expireAt: pulumi.Output<number | undefined>;
37
+ /**
38
+ * For human users, their first name.
39
+ */
40
+ readonly firstName: pulumi.Output<string | undefined>;
41
+ /**
42
+ * For human users, their last name.
43
+ */
44
+ readonly lastName: pulumi.Output<string | undefined>;
45
+ /**
46
+ * If the user is of type `machine`, this is the access token (database password) of this user.
47
+ */
48
+ readonly machineUserAccessToken: pulumi.Output<string>;
49
+ /**
50
+ * For machine users, the name of the user.
51
+ */
52
+ readonly name: pulumi.Output<string>;
53
+ /**
54
+ * If set to true, this User cannot be deleted.
55
+ */
56
+ readonly terminationProtection: pulumi.Output<boolean | undefined>;
57
+ /**
58
+ * Either 'human' or 'machine'.
59
+ */
60
+ readonly type: pulumi.Output<string>;
61
+ /**
62
+ * Create a User resource with the given unique name, arguments, and options.
63
+ *
64
+ * @param name The _unique_ name of the resource.
65
+ * @param args The arguments to use to populate this resource's properties.
66
+ * @param opts A bag of options that control this resource's behavior.
67
+ */
68
+ constructor(name: string, args: UserArgs, opts?: pulumi.CustomResourceOptions);
69
+ }
70
+ /**
71
+ * Input properties used for looking up and filtering User resources.
72
+ */
73
+ export interface UserState {
74
+ /**
75
+ * If the user is of type `machine`, this is an optional designation for the app that this user will be used for. Supported values are `metabase`, `tableau`, and `popsql`.
76
+ */
77
+ appType?: pulumi.Input<string>;
78
+ /**
79
+ * The username that the user will use to access the sidecar.
80
+ */
81
+ dbUsername?: pulumi.Input<string>;
82
+ /**
83
+ * For human users, their email.
84
+ */
85
+ email?: pulumi.Input<string>;
86
+ /**
87
+ * When the Role should be deleted and access revoked. Value should be provided in Unix epoch time, in seconds since midnight UTC of January 1, 1970.
88
+ */
89
+ expireAt?: pulumi.Input<number>;
90
+ /**
91
+ * For human users, their first name.
92
+ */
93
+ firstName?: pulumi.Input<string>;
94
+ /**
95
+ * For human users, their last name.
96
+ */
97
+ lastName?: pulumi.Input<string>;
98
+ /**
99
+ * If the user is of type `machine`, this is the access token (database password) of this user.
100
+ */
101
+ machineUserAccessToken?: pulumi.Input<string>;
102
+ /**
103
+ * For machine users, the name of the user.
104
+ */
105
+ name?: pulumi.Input<string>;
106
+ /**
107
+ * If set to true, this User cannot be deleted.
108
+ */
109
+ terminationProtection?: pulumi.Input<boolean>;
110
+ /**
111
+ * Either 'human' or 'machine'.
112
+ */
113
+ type?: pulumi.Input<string>;
114
+ }
115
+ /**
116
+ * The set of arguments for constructing a User resource.
117
+ */
118
+ export interface UserArgs {
119
+ /**
120
+ * If the user is of type `machine`, this is an optional designation for the app that this user will be used for. Supported values are `metabase`, `tableau`, and `popsql`.
121
+ */
122
+ appType?: pulumi.Input<string>;
123
+ /**
124
+ * For human users, their email.
125
+ */
126
+ email?: pulumi.Input<string>;
127
+ /**
128
+ * When the Role should be deleted and access revoked. Value should be provided in Unix epoch time, in seconds since midnight UTC of January 1, 1970.
129
+ */
130
+ expireAt?: pulumi.Input<number>;
131
+ /**
132
+ * For human users, their first name.
133
+ */
134
+ firstName?: pulumi.Input<string>;
135
+ /**
136
+ * For human users, their last name.
137
+ */
138
+ lastName?: pulumi.Input<string>;
139
+ /**
140
+ * For machine users, the name of the user.
141
+ */
142
+ name?: pulumi.Input<string>;
143
+ /**
144
+ * If set to true, this User cannot be deleted.
145
+ */
146
+ terminationProtection?: pulumi.Input<boolean>;
147
+ /**
148
+ * Either 'human' or 'machine'.
149
+ */
150
+ type: pulumi.Input<string>;
151
+ }
package/user.js ADDED
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.User = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * User in Formal.
10
+ */
11
+ class User extends pulumi.CustomResource {
12
+ /**
13
+ * Get an existing User resource's state with the given name, ID, and optional extra
14
+ * properties used to qualify the lookup.
15
+ *
16
+ * @param name The _unique_ name of the resulting resource.
17
+ * @param id The _unique_ provider ID of the resource to lookup.
18
+ * @param state Any extra arguments used during the lookup.
19
+ * @param opts Optional settings to control the behavior of the CustomResource.
20
+ */
21
+ static get(name, id, state, opts) {
22
+ return new User(name, state, Object.assign(Object.assign({}, opts), { id: id }));
23
+ }
24
+ /**
25
+ * Returns true if the given object is an instance of User. This is designed to work even
26
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
27
+ */
28
+ static isInstance(obj) {
29
+ if (obj === undefined || obj === null) {
30
+ return false;
31
+ }
32
+ return obj['__pulumiType'] === User.__pulumiType;
33
+ }
34
+ constructor(name, argsOrState, opts) {
35
+ let resourceInputs = {};
36
+ opts = opts || {};
37
+ if (opts.id) {
38
+ const state = argsOrState;
39
+ resourceInputs["appType"] = state ? state.appType : undefined;
40
+ resourceInputs["dbUsername"] = state ? state.dbUsername : undefined;
41
+ resourceInputs["email"] = state ? state.email : undefined;
42
+ resourceInputs["expireAt"] = state ? state.expireAt : undefined;
43
+ resourceInputs["firstName"] = state ? state.firstName : undefined;
44
+ resourceInputs["lastName"] = state ? state.lastName : undefined;
45
+ resourceInputs["machineUserAccessToken"] = state ? state.machineUserAccessToken : undefined;
46
+ resourceInputs["name"] = state ? state.name : undefined;
47
+ resourceInputs["terminationProtection"] = state ? state.terminationProtection : undefined;
48
+ resourceInputs["type"] = state ? state.type : undefined;
49
+ }
50
+ else {
51
+ const args = argsOrState;
52
+ if ((!args || args.type === undefined) && !opts.urn) {
53
+ throw new Error("Missing required property 'type'");
54
+ }
55
+ resourceInputs["appType"] = args ? args.appType : undefined;
56
+ resourceInputs["email"] = args ? args.email : undefined;
57
+ resourceInputs["expireAt"] = args ? args.expireAt : undefined;
58
+ resourceInputs["firstName"] = args ? args.firstName : undefined;
59
+ resourceInputs["lastName"] = args ? args.lastName : undefined;
60
+ resourceInputs["name"] = args ? args.name : undefined;
61
+ resourceInputs["terminationProtection"] = args ? args.terminationProtection : undefined;
62
+ resourceInputs["type"] = args ? args.type : undefined;
63
+ resourceInputs["dbUsername"] = undefined /*out*/;
64
+ resourceInputs["machineUserAccessToken"] = undefined /*out*/;
65
+ }
66
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
67
+ const secretOpts = { additionalSecretOutputs: ["machineUserAccessToken"] };
68
+ opts = pulumi.mergeOptions(opts, secretOpts);
69
+ super(User.__pulumiType, name, resourceInputs, opts);
70
+ }
71
+ }
72
+ exports.User = User;
73
+ /** @internal */
74
+ User.__pulumiType = 'formal:index/user:User';
75
+ //# sourceMappingURL=user.js.map
package/user.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../user.ts"],"names":[],"mappings":"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"}
package/utilities.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare function getEnv(...vars: string[]): string | undefined;
2
+ export declare function getEnvBoolean(...vars: string[]): boolean | undefined;
3
+ export declare function getEnvNumber(...vars: string[]): number | undefined;
4
+ export declare function getVersion(): string;