@pulumi/databricks 0.0.1-alpha.1648473134

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 (261) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +303 -0
  3. package/awsS3Mount.d.ts +50 -0
  4. package/awsS3Mount.js +63 -0
  5. package/awsS3Mount.js.map +1 -0
  6. package/azureAdlsGen1Mount.d.ts +65 -0
  7. package/azureAdlsGen1Mount.js +85 -0
  8. package/azureAdlsGen1Mount.js.map +1 -0
  9. package/azureAdlsGen2Mount.d.ts +68 -0
  10. package/azureAdlsGen2Mount.js +93 -0
  11. package/azureAdlsGen2Mount.js.map +1 -0
  12. package/azureBlobMount.d.ts +62 -0
  13. package/azureBlobMount.js +83 -0
  14. package/azureBlobMount.js.map +1 -0
  15. package/catalog.d.ts +124 -0
  16. package/catalog.js +88 -0
  17. package/catalog.js.map +1 -0
  18. package/cluster.d.ts +332 -0
  19. package/cluster.js +121 -0
  20. package/cluster.js.map +1 -0
  21. package/clusterPolicy.d.ts +112 -0
  22. package/clusterPolicy.js +97 -0
  23. package/clusterPolicy.js.map +1 -0
  24. package/config/index.d.ts +1 -0
  25. package/config/index.js +21 -0
  26. package/config/index.js.map +1 -0
  27. package/config/vars.d.ts +20 -0
  28. package/config/vars.js +127 -0
  29. package/config/vars.js.map +1 -0
  30. package/dbfsFile.d.ts +91 -0
  31. package/dbfsFile.js +71 -0
  32. package/dbfsFile.js.map +1 -0
  33. package/directory.d.ts +72 -0
  34. package/directory.js +65 -0
  35. package/directory.js.map +1 -0
  36. package/externalLocation.d.ts +114 -0
  37. package/externalLocation.js +80 -0
  38. package/externalLocation.js.map +1 -0
  39. package/getAwsAssumeRolePolicy.d.ts +47 -0
  40. package/getAwsAssumeRolePolicy.js +24 -0
  41. package/getAwsAssumeRolePolicy.js.map +1 -0
  42. package/getAwsBucketPolicy.d.ts +59 -0
  43. package/getAwsBucketPolicy.js +36 -0
  44. package/getAwsBucketPolicy.js.map +1 -0
  45. package/getAwsCrossAccountPolicy.d.ts +59 -0
  46. package/getAwsCrossAccountPolicy.js +47 -0
  47. package/getAwsCrossAccountPolicy.js.map +1 -0
  48. package/getCatalogs.d.ts +54 -0
  49. package/getCatalogs.js +43 -0
  50. package/getCatalogs.js.map +1 -0
  51. package/getClusters.d.ts +69 -0
  52. package/getClusters.js +57 -0
  53. package/getClusters.js.map +1 -0
  54. package/getCurrentUser.d.ts +39 -0
  55. package/getCurrentUser.js +38 -0
  56. package/getCurrentUser.js.map +1 -0
  57. package/getDbfsFile.d.ts +69 -0
  58. package/getDbfsFile.js +44 -0
  59. package/getDbfsFile.js.map +1 -0
  60. package/getDbfsFilePaths.d.ts +68 -0
  61. package/getDbfsFilePaths.js +46 -0
  62. package/getDbfsFilePaths.js.map +1 -0
  63. package/getGroup.d.ts +166 -0
  64. package/getGroup.js +46 -0
  65. package/getGroup.js.map +1 -0
  66. package/getJobs.d.ts +47 -0
  67. package/getJobs.js +30 -0
  68. package/getJobs.js.map +1 -0
  69. package/getNodeType.d.ts +173 -0
  70. package/getNodeType.js +71 -0
  71. package/getNodeType.js.map +1 -0
  72. package/getNotebook.d.ts +93 -0
  73. package/getNotebook.js +39 -0
  74. package/getNotebook.js.map +1 -0
  75. package/getNotebookPaths.d.ts +58 -0
  76. package/getNotebookPaths.js +36 -0
  77. package/getNotebookPaths.js.map +1 -0
  78. package/getSchemas.d.ts +65 -0
  79. package/getSchemas.js +45 -0
  80. package/getSchemas.js.map +1 -0
  81. package/getSparkVersion.d.ts +150 -0
  82. package/getSparkVersion.js +70 -0
  83. package/getSparkVersion.js.map +1 -0
  84. package/getTables.d.ts +75 -0
  85. package/getTables.js +47 -0
  86. package/getTables.js.map +1 -0
  87. package/getUser.d.ts +78 -0
  88. package/getUser.js +39 -0
  89. package/getUser.js.map +1 -0
  90. package/getZones.d.ts +29 -0
  91. package/getZones.js +26 -0
  92. package/getZones.js.map +1 -0
  93. package/gitCredential.d.ts +48 -0
  94. package/gitCredential.js +64 -0
  95. package/gitCredential.js.map +1 -0
  96. package/globalInitScript.d.ts +99 -0
  97. package/globalInitScript.js +68 -0
  98. package/globalInitScript.js.map +1 -0
  99. package/grants.d.ts +58 -0
  100. package/grants.js +64 -0
  101. package/grants.js.map +1 -0
  102. package/group.d.ts +131 -0
  103. package/group.js +83 -0
  104. package/group.js.map +1 -0
  105. package/groupInstanceProfile.d.ts +96 -0
  106. package/groupInstanceProfile.js +93 -0
  107. package/groupInstanceProfile.js.map +1 -0
  108. package/index.d.ts +81 -0
  109. package/index.js +362 -0
  110. package/index.js.map +1 -0
  111. package/instancePool.d.ts +166 -0
  112. package/instancePool.js +93 -0
  113. package/instancePool.js.map +1 -0
  114. package/instanceProfile.d.ts +180 -0
  115. package/instanceProfile.js +161 -0
  116. package/instanceProfile.js.map +1 -0
  117. package/ipAccessList.d.ts +128 -0
  118. package/ipAccessList.js +108 -0
  119. package/ipAccessList.js.map +1 -0
  120. package/job.d.ts +228 -0
  121. package/job.js +102 -0
  122. package/job.js.map +1 -0
  123. package/library.d.ts +183 -0
  124. package/library.js +189 -0
  125. package/library.js.map +1 -0
  126. package/metastore.d.ts +102 -0
  127. package/metastore.js +75 -0
  128. package/metastore.js.map +1 -0
  129. package/metastoreAssignment.d.ts +94 -0
  130. package/metastoreAssignment.js +81 -0
  131. package/metastoreAssignment.js.map +1 -0
  132. package/metastoreDataAccess.d.ts +85 -0
  133. package/metastoreDataAccess.js +73 -0
  134. package/metastoreDataAccess.js.map +1 -0
  135. package/mlflowExperiment.d.ts +122 -0
  136. package/mlflowExperiment.js +99 -0
  137. package/mlflowExperiment.js.map +1 -0
  138. package/mlflowModel.d.ts +131 -0
  139. package/mlflowModel.js +107 -0
  140. package/mlflowModel.js.map +1 -0
  141. package/mlflowWebhook.d.ts +129 -0
  142. package/mlflowWebhook.js +100 -0
  143. package/mlflowWebhook.js.map +1 -0
  144. package/mount.d.ts +89 -0
  145. package/mount.js +76 -0
  146. package/mount.js.map +1 -0
  147. package/mwsCredentials.d.ts +137 -0
  148. package/mwsCredentials.js +115 -0
  149. package/mwsCredentials.js.map +1 -0
  150. package/mwsCustomerManagedKeys.d.ts +257 -0
  151. package/mwsCustomerManagedKeys.js +226 -0
  152. package/mwsCustomerManagedKeys.js.map +1 -0
  153. package/mwsLogDelivery.d.ts +219 -0
  154. package/mwsLogDelivery.js +144 -0
  155. package/mwsLogDelivery.js.map +1 -0
  156. package/mwsNetworks.d.ts +129 -0
  157. package/mwsNetworks.js +89 -0
  158. package/mwsNetworks.js.map +1 -0
  159. package/mwsPrivateAccessSettings.d.ts +137 -0
  160. package/mwsPrivateAccessSettings.js +74 -0
  161. package/mwsPrivateAccessSettings.js.map +1 -0
  162. package/mwsStorageConfigurations.d.ts +122 -0
  163. package/mwsStorageConfigurations.js +106 -0
  164. package/mwsStorageConfigurations.js.map +1 -0
  165. package/mwsVpcEndpoint.d.ts +122 -0
  166. package/mwsVpcEndpoint.js +79 -0
  167. package/mwsVpcEndpoint.js.map +1 -0
  168. package/mwsWorkspaces.d.ts +222 -0
  169. package/mwsWorkspaces.js +106 -0
  170. package/mwsWorkspaces.js.map +1 -0
  171. package/notebook.d.ts +128 -0
  172. package/notebook.js +77 -0
  173. package/notebook.js.map +1 -0
  174. package/oboToken.d.ts +98 -0
  175. package/oboToken.js +82 -0
  176. package/oboToken.js.map +1 -0
  177. package/package.json +28 -0
  178. package/package.json.bak +28 -0
  179. package/package.json.dev +28 -0
  180. package/permissions.d.ts +211 -0
  181. package/permissions.js +97 -0
  182. package/permissions.js.map +1 -0
  183. package/pipeline.d.ts +200 -0
  184. package/pipeline.js +134 -0
  185. package/pipeline.js.map +1 -0
  186. package/provider.d.ts +61 -0
  187. package/provider.js +64 -0
  188. package/provider.js.map +1 -0
  189. package/repo.d.ts +117 -0
  190. package/repo.js +71 -0
  191. package/repo.js.map +1 -0
  192. package/schema.d.ts +149 -0
  193. package/schema.js +106 -0
  194. package/schema.js.map +1 -0
  195. package/scripts/install-pulumi-plugin.js +21 -0
  196. package/secret.d.ts +115 -0
  197. package/secret.js +99 -0
  198. package/secret.js.map +1 -0
  199. package/secretAcl.d.ts +115 -0
  200. package/secretAcl.js +105 -0
  201. package/secretAcl.js.map +1 -0
  202. package/secretScope.d.ts +85 -0
  203. package/secretScope.js +64 -0
  204. package/secretScope.js.map +1 -0
  205. package/servicePrincipal.d.ts +142 -0
  206. package/servicePrincipal.js +83 -0
  207. package/servicePrincipal.js.map +1 -0
  208. package/sqlDashboard.d.ts +90 -0
  209. package/sqlDashboard.js +99 -0
  210. package/sqlDashboard.js.map +1 -0
  211. package/sqlEndpoint.d.ts +249 -0
  212. package/sqlEndpoint.js +128 -0
  213. package/sqlEndpoint.js.map +1 -0
  214. package/sqlGlobalConfig.d.ts +157 -0
  215. package/sqlGlobalConfig.js +115 -0
  216. package/sqlGlobalConfig.js.map +1 -0
  217. package/sqlPermissions.d.ts +191 -0
  218. package/sqlPermissions.js +139 -0
  219. package/sqlPermissions.js.map +1 -0
  220. package/sqlQuery.d.ts +131 -0
  221. package/sqlQuery.js +139 -0
  222. package/sqlQuery.js.map +1 -0
  223. package/sqlVisualization.d.ts +105 -0
  224. package/sqlVisualization.js +119 -0
  225. package/sqlVisualization.js.map +1 -0
  226. package/sqlWidget.d.ts +109 -0
  227. package/sqlWidget.js +114 -0
  228. package/sqlWidget.js.map +1 -0
  229. package/storageCredential.d.ts +122 -0
  230. package/storageCredential.js +118 -0
  231. package/storageCredential.js.map +1 -0
  232. package/table.d.ts +249 -0
  233. package/table.js +157 -0
  234. package/table.js.map +1 -0
  235. package/token.d.ts +102 -0
  236. package/token.js +84 -0
  237. package/token.js.map +1 -0
  238. package/types/index.d.ts +3 -0
  239. package/types/index.js +11 -0
  240. package/types/index.js.map +1 -0
  241. package/types/input.d.ts +1209 -0
  242. package/types/input.js +5 -0
  243. package/types/input.js.map +1 -0
  244. package/types/output.d.ts +1222 -0
  245. package/types/output.js +5 -0
  246. package/types/output.js.map +1 -0
  247. package/user.d.ts +149 -0
  248. package/user.js +91 -0
  249. package/user.js.map +1 -0
  250. package/userInstanceProfile.d.ts +93 -0
  251. package/userInstanceProfile.js +90 -0
  252. package/userInstanceProfile.js.map +1 -0
  253. package/userRole.d.ts +106 -0
  254. package/userRole.js +103 -0
  255. package/userRole.js.map +1 -0
  256. package/utilities.d.ts +4 -0
  257. package/utilities.js +57 -0
  258. package/utilities.js.map +1 -0
  259. package/workspaceConf.d.ts +76 -0
  260. package/workspaceConf.js +71 -0
  261. package/workspaceConf.js.map +1 -0
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
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.MwsCredentials = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * ## Example Usage
10
+ *
11
+ * > **Note** This resource has an evolving API, which may change in future versions of the provider.
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as aws from "@pulumi/aws";
16
+ * import * as databricks from "@pulumi/databricks";
17
+ *
18
+ * const config = new pulumi.Config();
19
+ * const databricksAccountId = config.requireObject("databricksAccountId");
20
+ * const thisAwsAssumeRolePolicy = databricks.getAwsAssumeRolePolicy({
21
+ * externalId: databricksAccountId,
22
+ * });
23
+ * const crossAccountRole = new aws.iam.Role("crossAccountRole", {
24
+ * assumeRolePolicy: thisAwsAssumeRolePolicy.then(thisAwsAssumeRolePolicy => thisAwsAssumeRolePolicy.json),
25
+ * tags: _var.tags,
26
+ * });
27
+ * const thisAwsCrossAccountPolicy = databricks.getAwsCrossAccountPolicy({});
28
+ * const thisRolePolicy = new aws.iam.RolePolicy("thisRolePolicy", {
29
+ * role: crossAccountRole.id,
30
+ * policy: thisAwsCrossAccountPolicy.then(thisAwsCrossAccountPolicy => thisAwsCrossAccountPolicy.json),
31
+ * });
32
+ * const thisMwsCredentials = new databricks.MwsCredentials("thisMwsCredentials", {
33
+ * accountId: databricksAccountId,
34
+ * credentialsName: `${local.prefix}-creds`,
35
+ * roleArn: crossAccountRole.arn,
36
+ * }, {
37
+ * provider: databricks.mws,
38
+ * });
39
+ * ```
40
+ * ## Related Resources
41
+ *
42
+ * The following resources are used in the same context:
43
+ *
44
+ * * Provisioning Databricks on AWS guide.
45
+ * * databricks.MwsCustomerManagedKeys to configure KMS keys for new workspaces within AWS.
46
+ * * databricks.MwsLogDelivery to configure delivery of [billable usage logs](https://docs.databricks.com/administration-guide/account-settings/billable-usage-delivery.html) and [audit logs](https://docs.databricks.com/administration-guide/account-settings/audit-logs.html).
47
+ * * databricks.MwsNetworks to [configure VPC](https://docs.databricks.com/administration-guide/cloud-configurations/aws/customer-managed-vpc.html) & subnets for new workspaces within AWS.
48
+ * * databricks.MwsStorageConfigurations to configure root bucket new workspaces within AWS.
49
+ * * databricks.MwsWorkspaces to set up [workspaces in E2 architecture on AWS](https://docs.databricks.com/getting-started/overview.html#e2-architecture-1).
50
+ *
51
+ * ## Import
52
+ *
53
+ * -> **Note** Importing this resource is not currently supported.
54
+ */
55
+ class MwsCredentials extends pulumi.CustomResource {
56
+ constructor(name, argsOrState, opts) {
57
+ let resourceInputs = {};
58
+ opts = opts || {};
59
+ if (opts.id) {
60
+ const state = argsOrState;
61
+ resourceInputs["accountId"] = state ? state.accountId : undefined;
62
+ resourceInputs["creationTime"] = state ? state.creationTime : undefined;
63
+ resourceInputs["credentialsId"] = state ? state.credentialsId : undefined;
64
+ resourceInputs["credentialsName"] = state ? state.credentialsName : undefined;
65
+ resourceInputs["externalId"] = state ? state.externalId : undefined;
66
+ resourceInputs["roleArn"] = state ? state.roleArn : undefined;
67
+ }
68
+ else {
69
+ const args = argsOrState;
70
+ if ((!args || args.accountId === undefined) && !opts.urn) {
71
+ throw new Error("Missing required property 'accountId'");
72
+ }
73
+ if ((!args || args.credentialsName === undefined) && !opts.urn) {
74
+ throw new Error("Missing required property 'credentialsName'");
75
+ }
76
+ if ((!args || args.roleArn === undefined) && !opts.urn) {
77
+ throw new Error("Missing required property 'roleArn'");
78
+ }
79
+ resourceInputs["accountId"] = args ? args.accountId : undefined;
80
+ resourceInputs["credentialsName"] = args ? args.credentialsName : undefined;
81
+ resourceInputs["roleArn"] = args ? args.roleArn : undefined;
82
+ resourceInputs["creationTime"] = undefined /*out*/;
83
+ resourceInputs["credentialsId"] = undefined /*out*/;
84
+ resourceInputs["externalId"] = undefined /*out*/;
85
+ }
86
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
87
+ super(MwsCredentials.__pulumiType, name, resourceInputs, opts);
88
+ }
89
+ /**
90
+ * Get an existing MwsCredentials resource's state with the given name, ID, and optional extra
91
+ * properties used to qualify the lookup.
92
+ *
93
+ * @param name The _unique_ name of the resulting resource.
94
+ * @param id The _unique_ provider ID of the resource to lookup.
95
+ * @param state Any extra arguments used during the lookup.
96
+ * @param opts Optional settings to control the behavior of the CustomResource.
97
+ */
98
+ static get(name, id, state, opts) {
99
+ return new MwsCredentials(name, state, Object.assign(Object.assign({}, opts), { id: id }));
100
+ }
101
+ /**
102
+ * Returns true if the given object is an instance of MwsCredentials. This is designed to work even
103
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
104
+ */
105
+ static isInstance(obj) {
106
+ if (obj === undefined || obj === null) {
107
+ return false;
108
+ }
109
+ return obj['__pulumiType'] === MwsCredentials.__pulumiType;
110
+ }
111
+ }
112
+ exports.MwsCredentials = MwsCredentials;
113
+ /** @internal */
114
+ MwsCredentials.__pulumiType = 'databricks:index/mwsCredentials:MwsCredentials';
115
+ //# sourceMappingURL=mwsCredentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mwsCredentials.js","sourceRoot":"","sources":["../mwsCredentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,257 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import { input as inputs, output as outputs } from "./types";
3
+ /**
4
+ * ## Example Usage
5
+ *
6
+ * > **Note** If you've used the resource before, please add `useCases = ["MANAGED_SERVICES"]` to keep the previous behaviour.
7
+ * ### Customer-managed key for managed services
8
+ *
9
+ * You must configure this during workspace creation
10
+ *
11
+ * ```typescript
12
+ * import * as pulumi from "@pulumi/pulumi";
13
+ * import * as aws from "@pulumi/aws";
14
+ * import * as databricks from "@pulumi/databricks";
15
+ *
16
+ * const config = new pulumi.Config();
17
+ * const databricksAccountId = config.requireObject("databricksAccountId");
18
+ * const databricksManagedServicesCmk = aws.iam.getPolicyDocument({
19
+ * version: "2012-10-17",
20
+ * statements: [
21
+ * {
22
+ * sid: "Enable IAM User Permissions",
23
+ * effect: "Allow",
24
+ * principals: [{
25
+ * type: "AWS",
26
+ * identifiers: ["*"],
27
+ * }],
28
+ * actions: ["kms:*"],
29
+ * resources: ["*"],
30
+ * },
31
+ * {
32
+ * sid: "Allow Databricks to use KMS key for control plane managed services",
33
+ * effect: "Allow",
34
+ * principals: [{
35
+ * type: "AWS",
36
+ * identifiers: ["arn:aws:iam::414351767826:root"],
37
+ * }],
38
+ * actions: [
39
+ * "kms:Encrypt",
40
+ * "kms:Decrypt",
41
+ * ],
42
+ * resources: ["*"],
43
+ * },
44
+ * ],
45
+ * });
46
+ * const managedServicesCustomerManagedKey = new aws.kms.Key("managedServicesCustomerManagedKey", {policy: databricksManagedServicesCmk.then(databricksManagedServicesCmk => databricksManagedServicesCmk.json)});
47
+ * const managedServicesCustomerManagedKeyAlias = new aws.kms.Alias("managedServicesCustomerManagedKeyAlias", {targetKeyId: managedServicesCustomerManagedKey.keyId});
48
+ * const managedServices = new databricks.MwsCustomerManagedKeys("managedServices", {
49
+ * accountId: databricksAccountId,
50
+ * awsKeyInfo: {
51
+ * keyArn: managedServicesCustomerManagedKey.arn,
52
+ * keyAlias: managedServicesCustomerManagedKeyAlias.name,
53
+ * },
54
+ * useCases: ["MANAGED_SERVICES"],
55
+ * });
56
+ * ```
57
+ * ### Customer-managed key for workspace storage
58
+ *
59
+ * ```typescript
60
+ * import * as pulumi from "@pulumi/pulumi";
61
+ * import * as aws from "@pulumi/aws";
62
+ * import * as databricks from "@pulumi/databricks";
63
+ *
64
+ * const config = new pulumi.Config();
65
+ * const databricksAccountId = config.requireObject("databricksAccountId");
66
+ * const databricksCrossAccountRole = config.requireObject("databricksCrossAccountRole");
67
+ * const databricksStorageCmk = aws.iam.getPolicyDocument({
68
+ * version: "2012-10-17",
69
+ * statements: [
70
+ * {
71
+ * sid: "Enable IAM User Permissions",
72
+ * effect: "Allow",
73
+ * principals: [{
74
+ * type: "AWS",
75
+ * identifiers: ["*"],
76
+ * }],
77
+ * actions: ["kms:*"],
78
+ * resources: ["*"],
79
+ * },
80
+ * {
81
+ * sid: "Allow Databricks to use KMS key for DBFS",
82
+ * effect: "Allow",
83
+ * principals: [{
84
+ * type: "AWS",
85
+ * identifiers: ["arn:aws:iam::414351767826:root"],
86
+ * }],
87
+ * actions: [
88
+ * "kms:Encrypt",
89
+ * "kms:Decrypt",
90
+ * "kms:ReEncrypt*",
91
+ * "kms:GenerateDataKey*",
92
+ * "kms:DescribeKey",
93
+ * ],
94
+ * resources: ["*"],
95
+ * },
96
+ * {
97
+ * sid: "Allow Databricks to use KMS key for DBFS (Grants)",
98
+ * effect: "Allow",
99
+ * principals: [{
100
+ * type: "AWS",
101
+ * identifiers: ["arn:aws:iam::414351767826:root"],
102
+ * }],
103
+ * actions: [
104
+ * "kms:CreateGrant",
105
+ * "kms:ListGrants",
106
+ * "kms:RevokeGrant",
107
+ * ],
108
+ * resources: ["*"],
109
+ * conditions: [{
110
+ * test: "Bool",
111
+ * variable: "kms:GrantIsForAWSResource",
112
+ * values: ["true"],
113
+ * }],
114
+ * },
115
+ * {
116
+ * sid: "Allow Databricks to use KMS key for EBS",
117
+ * effect: "Allow",
118
+ * principals: [{
119
+ * type: "AWS",
120
+ * identifiers: [databricksCrossAccountRole],
121
+ * }],
122
+ * actions: [
123
+ * "kms:Decrypt",
124
+ * "kms:GenerateDataKey*",
125
+ * "kms:CreateGrant",
126
+ * "kms:DescribeKey",
127
+ * ],
128
+ * resources: ["*"],
129
+ * conditions: [{
130
+ * test: "ForAnyValue:StringLike",
131
+ * variable: "kms:ViaService",
132
+ * values: ["ec2.*.amazonaws.com"],
133
+ * }],
134
+ * },
135
+ * ],
136
+ * });
137
+ * const storageCustomerManagedKey = new aws.kms.Key("storageCustomerManagedKey", {policy: databricksStorageCmk.then(databricksStorageCmk => databricksStorageCmk.json)});
138
+ * const storageCustomerManagedKeyAlias = new aws.kms.Alias("storageCustomerManagedKeyAlias", {targetKeyId: storageCustomerManagedKey.keyId});
139
+ * const storage = new databricks.MwsCustomerManagedKeys("storage", {
140
+ * accountId: databricksAccountId,
141
+ * awsKeyInfo: {
142
+ * keyArn: storageCustomerManagedKey.arn,
143
+ * keyAlias: storageCustomerManagedKeyAlias.name,
144
+ * },
145
+ * useCases: ["STORAGE"],
146
+ * });
147
+ * ```
148
+ * ## Related Resources
149
+ *
150
+ * The following resources are used in the same context:
151
+ *
152
+ * * Provisioning Databricks on AWS guide.
153
+ * * databricks.MwsCredentials to configure the cross-account role for creation of new workspaces within AWS.
154
+ * * databricks.MwsLogDelivery to configure delivery of [billable usage logs](https://docs.databricks.com/administration-guide/account-settings/billable-usage-delivery.html) and [audit logs](https://docs.databricks.com/administration-guide/account-settings/audit-logs.html).
155
+ * * databricks.MwsNetworks to [configure VPC](https://docs.databricks.com/administration-guide/cloud-configurations/aws/customer-managed-vpc.html) & subnets for new workspaces within AWS.
156
+ * * databricks.MwsStorageConfigurations to configure root bucket new workspaces within AWS.
157
+ * * databricks.MwsWorkspaces to set up [workspaces in E2 architecture on AWS](https://docs.databricks.com/getting-started/overview.html#e2-architecture-1).
158
+ *
159
+ * ## Import
160
+ *
161
+ * -> **Note** Importing this resource is not currently supported.
162
+ */
163
+ export declare class MwsCustomerManagedKeys extends pulumi.CustomResource {
164
+ /**
165
+ * Get an existing MwsCustomerManagedKeys resource's state with the given name, ID, and optional extra
166
+ * properties used to qualify the lookup.
167
+ *
168
+ * @param name The _unique_ name of the resulting resource.
169
+ * @param id The _unique_ provider ID of the resource to lookup.
170
+ * @param state Any extra arguments used during the lookup.
171
+ * @param opts Optional settings to control the behavior of the CustomResource.
172
+ */
173
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: MwsCustomerManagedKeysState, opts?: pulumi.CustomResourceOptions): MwsCustomerManagedKeys;
174
+ /**
175
+ * Returns true if the given object is an instance of MwsCustomerManagedKeys. This is designed to work even
176
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
177
+ */
178
+ static isInstance(obj: any): obj is MwsCustomerManagedKeys;
179
+ /**
180
+ * Account Id that could be found in the bottom left corner of [Accounts Console](https://accounts.cloud.databricks.com/)
181
+ */
182
+ readonly accountId: pulumi.Output<string>;
183
+ /**
184
+ * This field is a block and is documented below.
185
+ */
186
+ readonly awsKeyInfo: pulumi.Output<outputs.MwsCustomerManagedKeysAwsKeyInfo>;
187
+ /**
188
+ * (Integer) Time in epoch milliseconds when the customer key was created.
189
+ */
190
+ readonly creationTime: pulumi.Output<number>;
191
+ /**
192
+ * (String) ID of the encryption key configuration object.
193
+ */
194
+ readonly customerManagedKeyId: pulumi.Output<string>;
195
+ /**
196
+ * *(since v0.3.4)* List of use cases for which this key will be used. *If you've used the resource before, please add `useCases = ["MANAGED_SERVICES"]` to keep the previous behaviour.* Possible values are:
197
+ */
198
+ readonly useCases: pulumi.Output<string[]>;
199
+ /**
200
+ * Create a MwsCustomerManagedKeys resource with the given unique name, arguments, and options.
201
+ *
202
+ * @param name The _unique_ name of the resource.
203
+ * @param args The arguments to use to populate this resource's properties.
204
+ * @param opts A bag of options that control this resource's behavior.
205
+ */
206
+ constructor(name: string, args: MwsCustomerManagedKeysArgs, opts?: pulumi.CustomResourceOptions);
207
+ }
208
+ /**
209
+ * Input properties used for looking up and filtering MwsCustomerManagedKeys resources.
210
+ */
211
+ export interface MwsCustomerManagedKeysState {
212
+ /**
213
+ * Account Id that could be found in the bottom left corner of [Accounts Console](https://accounts.cloud.databricks.com/)
214
+ */
215
+ accountId?: pulumi.Input<string>;
216
+ /**
217
+ * This field is a block and is documented below.
218
+ */
219
+ awsKeyInfo?: pulumi.Input<inputs.MwsCustomerManagedKeysAwsKeyInfo>;
220
+ /**
221
+ * (Integer) Time in epoch milliseconds when the customer key was created.
222
+ */
223
+ creationTime?: pulumi.Input<number>;
224
+ /**
225
+ * (String) ID of the encryption key configuration object.
226
+ */
227
+ customerManagedKeyId?: pulumi.Input<string>;
228
+ /**
229
+ * *(since v0.3.4)* List of use cases for which this key will be used. *If you've used the resource before, please add `useCases = ["MANAGED_SERVICES"]` to keep the previous behaviour.* Possible values are:
230
+ */
231
+ useCases?: pulumi.Input<pulumi.Input<string>[]>;
232
+ }
233
+ /**
234
+ * The set of arguments for constructing a MwsCustomerManagedKeys resource.
235
+ */
236
+ export interface MwsCustomerManagedKeysArgs {
237
+ /**
238
+ * Account Id that could be found in the bottom left corner of [Accounts Console](https://accounts.cloud.databricks.com/)
239
+ */
240
+ accountId: pulumi.Input<string>;
241
+ /**
242
+ * This field is a block and is documented below.
243
+ */
244
+ awsKeyInfo: pulumi.Input<inputs.MwsCustomerManagedKeysAwsKeyInfo>;
245
+ /**
246
+ * (Integer) Time in epoch milliseconds when the customer key was created.
247
+ */
248
+ creationTime?: pulumi.Input<number>;
249
+ /**
250
+ * (String) ID of the encryption key configuration object.
251
+ */
252
+ customerManagedKeyId?: pulumi.Input<string>;
253
+ /**
254
+ * *(since v0.3.4)* List of use cases for which this key will be used. *If you've used the resource before, please add `useCases = ["MANAGED_SERVICES"]` to keep the previous behaviour.* Possible values are:
255
+ */
256
+ useCases: pulumi.Input<pulumi.Input<string>[]>;
257
+ }
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
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.MwsCustomerManagedKeys = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * ## Example Usage
10
+ *
11
+ * > **Note** If you've used the resource before, please add `useCases = ["MANAGED_SERVICES"]` to keep the previous behaviour.
12
+ * ### Customer-managed key for managed services
13
+ *
14
+ * You must configure this during workspace creation
15
+ *
16
+ * ```typescript
17
+ * import * as pulumi from "@pulumi/pulumi";
18
+ * import * as aws from "@pulumi/aws";
19
+ * import * as databricks from "@pulumi/databricks";
20
+ *
21
+ * const config = new pulumi.Config();
22
+ * const databricksAccountId = config.requireObject("databricksAccountId");
23
+ * const databricksManagedServicesCmk = aws.iam.getPolicyDocument({
24
+ * version: "2012-10-17",
25
+ * statements: [
26
+ * {
27
+ * sid: "Enable IAM User Permissions",
28
+ * effect: "Allow",
29
+ * principals: [{
30
+ * type: "AWS",
31
+ * identifiers: ["*"],
32
+ * }],
33
+ * actions: ["kms:*"],
34
+ * resources: ["*"],
35
+ * },
36
+ * {
37
+ * sid: "Allow Databricks to use KMS key for control plane managed services",
38
+ * effect: "Allow",
39
+ * principals: [{
40
+ * type: "AWS",
41
+ * identifiers: ["arn:aws:iam::414351767826:root"],
42
+ * }],
43
+ * actions: [
44
+ * "kms:Encrypt",
45
+ * "kms:Decrypt",
46
+ * ],
47
+ * resources: ["*"],
48
+ * },
49
+ * ],
50
+ * });
51
+ * const managedServicesCustomerManagedKey = new aws.kms.Key("managedServicesCustomerManagedKey", {policy: databricksManagedServicesCmk.then(databricksManagedServicesCmk => databricksManagedServicesCmk.json)});
52
+ * const managedServicesCustomerManagedKeyAlias = new aws.kms.Alias("managedServicesCustomerManagedKeyAlias", {targetKeyId: managedServicesCustomerManagedKey.keyId});
53
+ * const managedServices = new databricks.MwsCustomerManagedKeys("managedServices", {
54
+ * accountId: databricksAccountId,
55
+ * awsKeyInfo: {
56
+ * keyArn: managedServicesCustomerManagedKey.arn,
57
+ * keyAlias: managedServicesCustomerManagedKeyAlias.name,
58
+ * },
59
+ * useCases: ["MANAGED_SERVICES"],
60
+ * });
61
+ * ```
62
+ * ### Customer-managed key for workspace storage
63
+ *
64
+ * ```typescript
65
+ * import * as pulumi from "@pulumi/pulumi";
66
+ * import * as aws from "@pulumi/aws";
67
+ * import * as databricks from "@pulumi/databricks";
68
+ *
69
+ * const config = new pulumi.Config();
70
+ * const databricksAccountId = config.requireObject("databricksAccountId");
71
+ * const databricksCrossAccountRole = config.requireObject("databricksCrossAccountRole");
72
+ * const databricksStorageCmk = aws.iam.getPolicyDocument({
73
+ * version: "2012-10-17",
74
+ * statements: [
75
+ * {
76
+ * sid: "Enable IAM User Permissions",
77
+ * effect: "Allow",
78
+ * principals: [{
79
+ * type: "AWS",
80
+ * identifiers: ["*"],
81
+ * }],
82
+ * actions: ["kms:*"],
83
+ * resources: ["*"],
84
+ * },
85
+ * {
86
+ * sid: "Allow Databricks to use KMS key for DBFS",
87
+ * effect: "Allow",
88
+ * principals: [{
89
+ * type: "AWS",
90
+ * identifiers: ["arn:aws:iam::414351767826:root"],
91
+ * }],
92
+ * actions: [
93
+ * "kms:Encrypt",
94
+ * "kms:Decrypt",
95
+ * "kms:ReEncrypt*",
96
+ * "kms:GenerateDataKey*",
97
+ * "kms:DescribeKey",
98
+ * ],
99
+ * resources: ["*"],
100
+ * },
101
+ * {
102
+ * sid: "Allow Databricks to use KMS key for DBFS (Grants)",
103
+ * effect: "Allow",
104
+ * principals: [{
105
+ * type: "AWS",
106
+ * identifiers: ["arn:aws:iam::414351767826:root"],
107
+ * }],
108
+ * actions: [
109
+ * "kms:CreateGrant",
110
+ * "kms:ListGrants",
111
+ * "kms:RevokeGrant",
112
+ * ],
113
+ * resources: ["*"],
114
+ * conditions: [{
115
+ * test: "Bool",
116
+ * variable: "kms:GrantIsForAWSResource",
117
+ * values: ["true"],
118
+ * }],
119
+ * },
120
+ * {
121
+ * sid: "Allow Databricks to use KMS key for EBS",
122
+ * effect: "Allow",
123
+ * principals: [{
124
+ * type: "AWS",
125
+ * identifiers: [databricksCrossAccountRole],
126
+ * }],
127
+ * actions: [
128
+ * "kms:Decrypt",
129
+ * "kms:GenerateDataKey*",
130
+ * "kms:CreateGrant",
131
+ * "kms:DescribeKey",
132
+ * ],
133
+ * resources: ["*"],
134
+ * conditions: [{
135
+ * test: "ForAnyValue:StringLike",
136
+ * variable: "kms:ViaService",
137
+ * values: ["ec2.*.amazonaws.com"],
138
+ * }],
139
+ * },
140
+ * ],
141
+ * });
142
+ * const storageCustomerManagedKey = new aws.kms.Key("storageCustomerManagedKey", {policy: databricksStorageCmk.then(databricksStorageCmk => databricksStorageCmk.json)});
143
+ * const storageCustomerManagedKeyAlias = new aws.kms.Alias("storageCustomerManagedKeyAlias", {targetKeyId: storageCustomerManagedKey.keyId});
144
+ * const storage = new databricks.MwsCustomerManagedKeys("storage", {
145
+ * accountId: databricksAccountId,
146
+ * awsKeyInfo: {
147
+ * keyArn: storageCustomerManagedKey.arn,
148
+ * keyAlias: storageCustomerManagedKeyAlias.name,
149
+ * },
150
+ * useCases: ["STORAGE"],
151
+ * });
152
+ * ```
153
+ * ## Related Resources
154
+ *
155
+ * The following resources are used in the same context:
156
+ *
157
+ * * Provisioning Databricks on AWS guide.
158
+ * * databricks.MwsCredentials to configure the cross-account role for creation of new workspaces within AWS.
159
+ * * databricks.MwsLogDelivery to configure delivery of [billable usage logs](https://docs.databricks.com/administration-guide/account-settings/billable-usage-delivery.html) and [audit logs](https://docs.databricks.com/administration-guide/account-settings/audit-logs.html).
160
+ * * databricks.MwsNetworks to [configure VPC](https://docs.databricks.com/administration-guide/cloud-configurations/aws/customer-managed-vpc.html) & subnets for new workspaces within AWS.
161
+ * * databricks.MwsStorageConfigurations to configure root bucket new workspaces within AWS.
162
+ * * databricks.MwsWorkspaces to set up [workspaces in E2 architecture on AWS](https://docs.databricks.com/getting-started/overview.html#e2-architecture-1).
163
+ *
164
+ * ## Import
165
+ *
166
+ * -> **Note** Importing this resource is not currently supported.
167
+ */
168
+ class MwsCustomerManagedKeys extends pulumi.CustomResource {
169
+ constructor(name, argsOrState, opts) {
170
+ let resourceInputs = {};
171
+ opts = opts || {};
172
+ if (opts.id) {
173
+ const state = argsOrState;
174
+ resourceInputs["accountId"] = state ? state.accountId : undefined;
175
+ resourceInputs["awsKeyInfo"] = state ? state.awsKeyInfo : undefined;
176
+ resourceInputs["creationTime"] = state ? state.creationTime : undefined;
177
+ resourceInputs["customerManagedKeyId"] = state ? state.customerManagedKeyId : undefined;
178
+ resourceInputs["useCases"] = state ? state.useCases : undefined;
179
+ }
180
+ else {
181
+ const args = argsOrState;
182
+ if ((!args || args.accountId === undefined) && !opts.urn) {
183
+ throw new Error("Missing required property 'accountId'");
184
+ }
185
+ if ((!args || args.awsKeyInfo === undefined) && !opts.urn) {
186
+ throw new Error("Missing required property 'awsKeyInfo'");
187
+ }
188
+ if ((!args || args.useCases === undefined) && !opts.urn) {
189
+ throw new Error("Missing required property 'useCases'");
190
+ }
191
+ resourceInputs["accountId"] = args ? args.accountId : undefined;
192
+ resourceInputs["awsKeyInfo"] = args ? args.awsKeyInfo : undefined;
193
+ resourceInputs["creationTime"] = args ? args.creationTime : undefined;
194
+ resourceInputs["customerManagedKeyId"] = args ? args.customerManagedKeyId : undefined;
195
+ resourceInputs["useCases"] = args ? args.useCases : undefined;
196
+ }
197
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
198
+ super(MwsCustomerManagedKeys.__pulumiType, name, resourceInputs, opts);
199
+ }
200
+ /**
201
+ * Get an existing MwsCustomerManagedKeys resource's state with the given name, ID, and optional extra
202
+ * properties used to qualify the lookup.
203
+ *
204
+ * @param name The _unique_ name of the resulting resource.
205
+ * @param id The _unique_ provider ID of the resource to lookup.
206
+ * @param state Any extra arguments used during the lookup.
207
+ * @param opts Optional settings to control the behavior of the CustomResource.
208
+ */
209
+ static get(name, id, state, opts) {
210
+ return new MwsCustomerManagedKeys(name, state, Object.assign(Object.assign({}, opts), { id: id }));
211
+ }
212
+ /**
213
+ * Returns true if the given object is an instance of MwsCustomerManagedKeys. This is designed to work even
214
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
215
+ */
216
+ static isInstance(obj) {
217
+ if (obj === undefined || obj === null) {
218
+ return false;
219
+ }
220
+ return obj['__pulumiType'] === MwsCustomerManagedKeys.__pulumiType;
221
+ }
222
+ }
223
+ exports.MwsCustomerManagedKeys = MwsCustomerManagedKeys;
224
+ /** @internal */
225
+ MwsCustomerManagedKeys.__pulumiType = 'databricks:index/mwsCustomerManagedKeys:MwsCustomerManagedKeys';
226
+ //# sourceMappingURL=mwsCustomerManagedKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mwsCustomerManagedKeys.js","sourceRoot":"","sources":["../mwsCustomerManagedKeys.ts"],"names":[],"mappings":"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"}