@pulumi/snowflake 0.2.1-alpha.1632763694

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 (255) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +83 -0
  3. package/accountGrant.d.ts +97 -0
  4. package/accountGrant.js +80 -0
  5. package/accountGrant.js.map +1 -0
  6. package/apiIntegration.d.ts +181 -0
  7. package/apiIntegration.js +102 -0
  8. package/apiIntegration.js.map +1 -0
  9. package/config/index.d.ts +1 -0
  10. package/config/index.js +17 -0
  11. package/config/index.js.map +1 -0
  12. package/config/vars.d.ts +19 -0
  13. package/config/vars.js +97 -0
  14. package/config/vars.js.map +1 -0
  15. package/database.d.ts +97 -0
  16. package/database.js +81 -0
  17. package/database.js.map +1 -0
  18. package/databaseGrant.d.ts +126 -0
  19. package/databaseGrant.js +92 -0
  20. package/databaseGrant.js.map +1 -0
  21. package/externalFunction.d.ts +260 -0
  22. package/externalFunction.js +134 -0
  23. package/externalFunction.js.map +1 -0
  24. package/externalTable.d.ts +233 -0
  25. package/externalTable.js +124 -0
  26. package/externalTable.js.map +1 -0
  27. package/externalTableGrant.d.ts +165 -0
  28. package/externalTableGrant.js +104 -0
  29. package/externalTableGrant.js.map +1 -0
  30. package/fileFormat.d.ts +490 -0
  31. package/fileFormat.js +152 -0
  32. package/fileFormat.js.map +1 -0
  33. package/fileFormatGrant.d.ts +149 -0
  34. package/fileFormatGrant.js +98 -0
  35. package/fileFormatGrant.js.map +1 -0
  36. package/function.d.ts +157 -0
  37. package/function.js +81 -0
  38. package/function.js.map +1 -0
  39. package/functionGrant.d.ts +201 -0
  40. package/functionGrant.js +119 -0
  41. package/functionGrant.js.map +1 -0
  42. package/getCurrentAccount.d.ts +38 -0
  43. package/getCurrentAccount.js +33 -0
  44. package/getCurrentAccount.js.map +1 -0
  45. package/getExternalFunctions.d.ts +50 -0
  46. package/getExternalFunctions.js +34 -0
  47. package/getExternalFunctions.js.map +1 -0
  48. package/getExternalTables.d.ts +50 -0
  49. package/getExternalTables.js +34 -0
  50. package/getExternalTables.js.map +1 -0
  51. package/getFileFormats.d.ts +50 -0
  52. package/getFileFormats.js +34 -0
  53. package/getFileFormats.js.map +1 -0
  54. package/getFunctions.d.ts +50 -0
  55. package/getFunctions.js +34 -0
  56. package/getFunctions.js.map +1 -0
  57. package/getMaskingPolicies.d.ts +50 -0
  58. package/getMaskingPolicies.js +34 -0
  59. package/getMaskingPolicies.js.map +1 -0
  60. package/getMaterializedViews.d.ts +50 -0
  61. package/getMaterializedViews.js +34 -0
  62. package/getMaterializedViews.js.map +1 -0
  63. package/getPipes.d.ts +50 -0
  64. package/getPipes.js +34 -0
  65. package/getPipes.js.map +1 -0
  66. package/getProcedures.d.ts +50 -0
  67. package/getProcedures.js +34 -0
  68. package/getProcedures.js.map +1 -0
  69. package/getResourceMonitors.d.ts +26 -0
  70. package/getResourceMonitors.js +28 -0
  71. package/getResourceMonitors.js.map +1 -0
  72. package/getRowAccessPolicies.d.ts +50 -0
  73. package/getRowAccessPolicies.js +34 -0
  74. package/getRowAccessPolicies.js.map +1 -0
  75. package/getSchemas.d.ts +41 -0
  76. package/getSchemas.js +32 -0
  77. package/getSchemas.js.map +1 -0
  78. package/getSequences.d.ts +50 -0
  79. package/getSequences.js +34 -0
  80. package/getSequences.js.map +1 -0
  81. package/getStages.d.ts +50 -0
  82. package/getStages.js +34 -0
  83. package/getStages.js.map +1 -0
  84. package/getStorageIntegrations.d.ts +26 -0
  85. package/getStorageIntegrations.js +28 -0
  86. package/getStorageIntegrations.js.map +1 -0
  87. package/getStreams.d.ts +50 -0
  88. package/getStreams.js +34 -0
  89. package/getStreams.js.map +1 -0
  90. package/getSystemGenerateScimAccessToken.d.ts +40 -0
  91. package/getSystemGenerateScimAccessToken.js +32 -0
  92. package/getSystemGenerateScimAccessToken.js.map +1 -0
  93. package/getSystemGetAwsSnsIamPolicy.d.ts +28 -0
  94. package/getSystemGetAwsSnsIamPolicy.js +20 -0
  95. package/getSystemGetAwsSnsIamPolicy.js.map +1 -0
  96. package/getSystemGetPrivateLinkConfig.d.ts +31 -0
  97. package/getSystemGetPrivateLinkConfig.js +18 -0
  98. package/getSystemGetPrivateLinkConfig.js.map +1 -0
  99. package/getSystemGetSnowflakePlatformInfo.d.ts +19 -0
  100. package/getSystemGetSnowflakePlatformInfo.js +18 -0
  101. package/getSystemGetSnowflakePlatformInfo.js.map +1 -0
  102. package/getTables.d.ts +50 -0
  103. package/getTables.js +34 -0
  104. package/getTables.js.map +1 -0
  105. package/getTasks.d.ts +50 -0
  106. package/getTasks.js +34 -0
  107. package/getTasks.js.map +1 -0
  108. package/getViews.d.ts +50 -0
  109. package/getViews.js +34 -0
  110. package/getViews.js.map +1 -0
  111. package/getWarehouses.d.ts +26 -0
  112. package/getWarehouses.js +28 -0
  113. package/getWarehouses.js.map +1 -0
  114. package/index.d.ts +79 -0
  115. package/index.js +324 -0
  116. package/index.js.map +1 -0
  117. package/integrationGrant.d.ts +110 -0
  118. package/integrationGrant.js +86 -0
  119. package/integrationGrant.js.map +1 -0
  120. package/managedAccount.d.ts +160 -0
  121. package/managedAccount.js +99 -0
  122. package/managedAccount.js.map +1 -0
  123. package/maskingPolicy.d.ts +144 -0
  124. package/maskingPolicy.js +102 -0
  125. package/maskingPolicy.js.map +1 -0
  126. package/maskingPolicyGrant.d.ts +108 -0
  127. package/maskingPolicyGrant.js +70 -0
  128. package/maskingPolicyGrant.js.map +1 -0
  129. package/materializedView.d.ts +158 -0
  130. package/materializedView.js +103 -0
  131. package/materializedView.js.map +1 -0
  132. package/materializedViewGrant.d.ts +165 -0
  133. package/materializedViewGrant.js +101 -0
  134. package/materializedViewGrant.js.map +1 -0
  135. package/networkPolicy.d.ts +104 -0
  136. package/networkPolicy.js +80 -0
  137. package/networkPolicy.js.map +1 -0
  138. package/networkPolicyAttachment.d.ts +110 -0
  139. package/networkPolicyAttachment.js +81 -0
  140. package/networkPolicyAttachment.js.map +1 -0
  141. package/notificationIntegration.d.ts +191 -0
  142. package/notificationIntegration.js +103 -0
  143. package/notificationIntegration.js.map +1 -0
  144. package/package.json +27 -0
  145. package/package.json.bak +26 -0
  146. package/package.json.dev +26 -0
  147. package/pipe.d.ts +187 -0
  148. package/pipe.js +107 -0
  149. package/pipe.js.map +1 -0
  150. package/pipeGrant.d.ts +149 -0
  151. package/pipeGrant.js +98 -0
  152. package/pipeGrant.js.map +1 -0
  153. package/procedure.d.ts +201 -0
  154. package/procedure.js +125 -0
  155. package/procedure.js.map +1 -0
  156. package/procedureGrant.d.ts +201 -0
  157. package/procedureGrant.js +119 -0
  158. package/procedureGrant.js.map +1 -0
  159. package/provider.d.ts +64 -0
  160. package/provider.js +70 -0
  161. package/provider.js.map +1 -0
  162. package/resourceMonitor.d.ts +156 -0
  163. package/resourceMonitor.js +89 -0
  164. package/resourceMonitor.js.map +1 -0
  165. package/resourceMonitorGrant.d.ts +105 -0
  166. package/resourceMonitorGrant.js +81 -0
  167. package/resourceMonitorGrant.js.map +1 -0
  168. package/role.d.ts +60 -0
  169. package/role.js +71 -0
  170. package/role.js.map +1 -0
  171. package/roleGrants.d.ts +105 -0
  172. package/roleGrants.js +91 -0
  173. package/roleGrants.js.map +1 -0
  174. package/rowAccessPolicy.d.ts +140 -0
  175. package/rowAccessPolicy.js +99 -0
  176. package/rowAccessPolicy.js.map +1 -0
  177. package/rowAccessPolicyGrant.d.ts +136 -0
  178. package/rowAccessPolicyGrant.js +98 -0
  179. package/rowAccessPolicyGrant.js.map +1 -0
  180. package/schema.d.ts +132 -0
  181. package/schema.js +88 -0
  182. package/schema.js.map +1 -0
  183. package/schemaGrant.d.ts +155 -0
  184. package/schemaGrant.js +98 -0
  185. package/schemaGrant.js.map +1 -0
  186. package/scimIntegration.d.ts +112 -0
  187. package/scimIntegration.js +85 -0
  188. package/scimIntegration.js.map +1 -0
  189. package/scripts/install-pulumi-plugin.js +21 -0
  190. package/sequence.d.ts +127 -0
  191. package/sequence.js +84 -0
  192. package/sequence.js.map +1 -0
  193. package/sequenceGrant.d.ts +149 -0
  194. package/sequenceGrant.js +98 -0
  195. package/sequenceGrant.js.map +1 -0
  196. package/share.d.ts +90 -0
  197. package/share.js +73 -0
  198. package/share.js.map +1 -0
  199. package/stage.d.ts +192 -0
  200. package/stage.js +109 -0
  201. package/stage.js.map +1 -0
  202. package/stageGrant.d.ts +165 -0
  203. package/stageGrant.js +104 -0
  204. package/stageGrant.js.map +1 -0
  205. package/storageIntegration.d.ts +153 -0
  206. package/storageIntegration.js +109 -0
  207. package/storageIntegration.js.map +1 -0
  208. package/stream.d.ts +166 -0
  209. package/stream.js +99 -0
  210. package/stream.js.map +1 -0
  211. package/streamGrant.d.ts +149 -0
  212. package/streamGrant.js +98 -0
  213. package/streamGrant.js.map +1 -0
  214. package/table.d.ts +214 -0
  215. package/table.js +139 -0
  216. package/table.js.map +1 -0
  217. package/tableGrant.d.ts +159 -0
  218. package/tableGrant.js +95 -0
  219. package/tableGrant.js.map +1 -0
  220. package/task.d.ts +218 -0
  221. package/task.js +117 -0
  222. package/task.js.map +1 -0
  223. package/taskGrant.d.ts +149 -0
  224. package/taskGrant.js +98 -0
  225. package/taskGrant.js.map +1 -0
  226. package/types/index.d.ts +3 -0
  227. package/types/index.js +11 -0
  228. package/types/index.js.map +1 -0
  229. package/types/input.d.ts +113 -0
  230. package/types/input.js +5 -0
  231. package/types/input.js.map +1 -0
  232. package/types/output.d.ts +331 -0
  233. package/types/output.js +5 -0
  234. package/types/output.js.map +1 -0
  235. package/user.d.ts +236 -0
  236. package/user.js +111 -0
  237. package/user.js.map +1 -0
  238. package/userPublicKeys.d.ts +72 -0
  239. package/userPublicKeys.js +55 -0
  240. package/userPublicKeys.js.map +1 -0
  241. package/utilities.d.ts +4 -0
  242. package/utilities.js +52 -0
  243. package/utilities.js.map +1 -0
  244. package/view.d.ts +145 -0
  245. package/view.js +97 -0
  246. package/view.js.map +1 -0
  247. package/viewGrant.d.ts +165 -0
  248. package/viewGrant.js +101 -0
  249. package/viewGrant.js.map +1 -0
  250. package/warehouse.d.ts +214 -0
  251. package/warehouse.js +96 -0
  252. package/warehouse.js.map +1 -0
  253. package/warehouseGrant.d.ts +107 -0
  254. package/warehouseGrant.js +83 -0
  255. package/warehouseGrant.js.map +1 -0
@@ -0,0 +1,149 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * ## Example Usage
4
+ *
5
+ * ```typescript
6
+ * import * as pulumi from "@pulumi/pulumi";
7
+ * import * as snowflake from "@pulumi/snowflake";
8
+ *
9
+ * const grant = new snowflake.StreamGrant("grant", {
10
+ * databaseName: "db",
11
+ * onFuture: false,
12
+ * privilege: "select",
13
+ * roles: [
14
+ * "role1",
15
+ * "role2",
16
+ * ],
17
+ * schemaName: "schema",
18
+ * streamName: "view",
19
+ * withGrantOption: false,
20
+ * });
21
+ * ```
22
+ *
23
+ * ## Import
24
+ *
25
+ * # format is database name | schema name | stream name | privilege | true/false for with_grant_option
26
+ *
27
+ * ```sh
28
+ * $ pulumi import snowflake:index/streamGrant:StreamGrant example 'dbName|schemaName|streamName|SELECT|false'
29
+ * ```
30
+ */
31
+ export declare class StreamGrant extends pulumi.CustomResource {
32
+ /**
33
+ * Get an existing StreamGrant resource's state with the given name, ID, and optional extra
34
+ * properties used to qualify the lookup.
35
+ *
36
+ * @param name The _unique_ name of the resulting resource.
37
+ * @param id The _unique_ provider ID of the resource to lookup.
38
+ * @param state Any extra arguments used during the lookup.
39
+ * @param opts Optional settings to control the behavior of the CustomResource.
40
+ */
41
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: StreamGrantState, opts?: pulumi.CustomResourceOptions): StreamGrant;
42
+ /**
43
+ * Returns true if the given object is an instance of StreamGrant. This is designed to work even
44
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
45
+ */
46
+ static isInstance(obj: any): obj is StreamGrant;
47
+ /**
48
+ * The name of the database containing the current or future streams on which to grant privileges.
49
+ */
50
+ readonly databaseName: pulumi.Output<string>;
51
+ /**
52
+ * When this is set to true and a schema*name is provided, apply this grant on all future streams in the given schema. When this is true and no schema*name is provided apply this grant on all future streams in the given database. The stream*name field must be unset in order to use on*future.
53
+ */
54
+ readonly onFuture: pulumi.Output<boolean | undefined>;
55
+ /**
56
+ * The privilege to grant on the current or future stream.
57
+ */
58
+ readonly privilege: pulumi.Output<string | undefined>;
59
+ /**
60
+ * Grants privilege to these roles.
61
+ */
62
+ readonly roles: pulumi.Output<string[] | undefined>;
63
+ /**
64
+ * The name of the schema containing the current or future streams on which to grant privileges.
65
+ */
66
+ readonly schemaName: pulumi.Output<string>;
67
+ /**
68
+ * The name of the stream on which to grant privileges immediately (only valid if onFuture is false).
69
+ */
70
+ readonly streamName: pulumi.Output<string | undefined>;
71
+ /**
72
+ * When this is set to true, allows the recipient role to grant the privileges to other roles.
73
+ */
74
+ readonly withGrantOption: pulumi.Output<boolean | undefined>;
75
+ /**
76
+ * Create a StreamGrant resource with the given unique name, arguments, and options.
77
+ *
78
+ * @param name The _unique_ name of the resource.
79
+ * @param args The arguments to use to populate this resource's properties.
80
+ * @param opts A bag of options that control this resource's behavior.
81
+ */
82
+ constructor(name: string, args: StreamGrantArgs, opts?: pulumi.CustomResourceOptions);
83
+ }
84
+ /**
85
+ * Input properties used for looking up and filtering StreamGrant resources.
86
+ */
87
+ export interface StreamGrantState {
88
+ /**
89
+ * The name of the database containing the current or future streams on which to grant privileges.
90
+ */
91
+ databaseName?: pulumi.Input<string>;
92
+ /**
93
+ * When this is set to true and a schema*name is provided, apply this grant on all future streams in the given schema. When this is true and no schema*name is provided apply this grant on all future streams in the given database. The stream*name field must be unset in order to use on*future.
94
+ */
95
+ onFuture?: pulumi.Input<boolean>;
96
+ /**
97
+ * The privilege to grant on the current or future stream.
98
+ */
99
+ privilege?: pulumi.Input<string>;
100
+ /**
101
+ * Grants privilege to these roles.
102
+ */
103
+ roles?: pulumi.Input<pulumi.Input<string>[]>;
104
+ /**
105
+ * The name of the schema containing the current or future streams on which to grant privileges.
106
+ */
107
+ schemaName?: pulumi.Input<string>;
108
+ /**
109
+ * The name of the stream on which to grant privileges immediately (only valid if onFuture is false).
110
+ */
111
+ streamName?: pulumi.Input<string>;
112
+ /**
113
+ * When this is set to true, allows the recipient role to grant the privileges to other roles.
114
+ */
115
+ withGrantOption?: pulumi.Input<boolean>;
116
+ }
117
+ /**
118
+ * The set of arguments for constructing a StreamGrant resource.
119
+ */
120
+ export interface StreamGrantArgs {
121
+ /**
122
+ * The name of the database containing the current or future streams on which to grant privileges.
123
+ */
124
+ databaseName: pulumi.Input<string>;
125
+ /**
126
+ * When this is set to true and a schema*name is provided, apply this grant on all future streams in the given schema. When this is true and no schema*name is provided apply this grant on all future streams in the given database. The stream*name field must be unset in order to use on*future.
127
+ */
128
+ onFuture?: pulumi.Input<boolean>;
129
+ /**
130
+ * The privilege to grant on the current or future stream.
131
+ */
132
+ privilege?: pulumi.Input<string>;
133
+ /**
134
+ * Grants privilege to these roles.
135
+ */
136
+ roles?: pulumi.Input<pulumi.Input<string>[]>;
137
+ /**
138
+ * The name of the schema containing the current or future streams on which to grant privileges.
139
+ */
140
+ schemaName: pulumi.Input<string>;
141
+ /**
142
+ * The name of the stream on which to grant privileges immediately (only valid if onFuture is false).
143
+ */
144
+ streamName?: pulumi.Input<string>;
145
+ /**
146
+ * When this is set to true, allows the recipient role to grant the privileges to other roles.
147
+ */
148
+ withGrantOption?: pulumi.Input<boolean>;
149
+ }
package/streamGrant.js ADDED
@@ -0,0 +1,98 @@
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.StreamGrant = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * ## Example Usage
10
+ *
11
+ * ```typescript
12
+ * import * as pulumi from "@pulumi/pulumi";
13
+ * import * as snowflake from "@pulumi/snowflake";
14
+ *
15
+ * const grant = new snowflake.StreamGrant("grant", {
16
+ * databaseName: "db",
17
+ * onFuture: false,
18
+ * privilege: "select",
19
+ * roles: [
20
+ * "role1",
21
+ * "role2",
22
+ * ],
23
+ * schemaName: "schema",
24
+ * streamName: "view",
25
+ * withGrantOption: false,
26
+ * });
27
+ * ```
28
+ *
29
+ * ## Import
30
+ *
31
+ * # format is database name | schema name | stream name | privilege | true/false for with_grant_option
32
+ *
33
+ * ```sh
34
+ * $ pulumi import snowflake:index/streamGrant:StreamGrant example 'dbName|schemaName|streamName|SELECT|false'
35
+ * ```
36
+ */
37
+ class StreamGrant extends pulumi.CustomResource {
38
+ constructor(name, argsOrState, opts) {
39
+ let inputs = {};
40
+ opts = opts || {};
41
+ if (opts.id) {
42
+ const state = argsOrState;
43
+ inputs["databaseName"] = state ? state.databaseName : undefined;
44
+ inputs["onFuture"] = state ? state.onFuture : undefined;
45
+ inputs["privilege"] = state ? state.privilege : undefined;
46
+ inputs["roles"] = state ? state.roles : undefined;
47
+ inputs["schemaName"] = state ? state.schemaName : undefined;
48
+ inputs["streamName"] = state ? state.streamName : undefined;
49
+ inputs["withGrantOption"] = state ? state.withGrantOption : undefined;
50
+ }
51
+ else {
52
+ const args = argsOrState;
53
+ if ((!args || args.databaseName === undefined) && !opts.urn) {
54
+ throw new Error("Missing required property 'databaseName'");
55
+ }
56
+ if ((!args || args.schemaName === undefined) && !opts.urn) {
57
+ throw new Error("Missing required property 'schemaName'");
58
+ }
59
+ inputs["databaseName"] = args ? args.databaseName : undefined;
60
+ inputs["onFuture"] = args ? args.onFuture : undefined;
61
+ inputs["privilege"] = args ? args.privilege : undefined;
62
+ inputs["roles"] = args ? args.roles : undefined;
63
+ inputs["schemaName"] = args ? args.schemaName : undefined;
64
+ inputs["streamName"] = args ? args.streamName : undefined;
65
+ inputs["withGrantOption"] = args ? args.withGrantOption : undefined;
66
+ }
67
+ if (!opts.version) {
68
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
69
+ }
70
+ super(StreamGrant.__pulumiType, name, inputs, opts);
71
+ }
72
+ /**
73
+ * Get an existing StreamGrant resource's state with the given name, ID, and optional extra
74
+ * properties used to qualify the lookup.
75
+ *
76
+ * @param name The _unique_ name of the resulting resource.
77
+ * @param id The _unique_ provider ID of the resource to lookup.
78
+ * @param state Any extra arguments used during the lookup.
79
+ * @param opts Optional settings to control the behavior of the CustomResource.
80
+ */
81
+ static get(name, id, state, opts) {
82
+ return new StreamGrant(name, state, Object.assign(Object.assign({}, opts), { id: id }));
83
+ }
84
+ /**
85
+ * Returns true if the given object is an instance of StreamGrant. This is designed to work even
86
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
87
+ */
88
+ static isInstance(obj) {
89
+ if (obj === undefined || obj === null) {
90
+ return false;
91
+ }
92
+ return obj['__pulumiType'] === StreamGrant.__pulumiType;
93
+ }
94
+ }
95
+ exports.StreamGrant = StreamGrant;
96
+ /** @internal */
97
+ StreamGrant.__pulumiType = 'snowflake:index/streamGrant:StreamGrant';
98
+ //# sourceMappingURL=streamGrant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamGrant.js","sourceRoot":"","sources":["../streamGrant.ts"],"names":[],"mappings":"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"}
package/table.d.ts ADDED
@@ -0,0 +1,214 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import { input as inputs, output as outputs } from "./types";
3
+ /**
4
+ * ## Example Usage
5
+ *
6
+ * ```typescript
7
+ * import * as pulumi from "@pulumi/pulumi";
8
+ * import * as snowflake from "@pulumi/snowflake";
9
+ *
10
+ * const schema = new snowflake.Schema("schema", {
11
+ * database: "database",
12
+ * dataRetentionDays: 1,
13
+ * });
14
+ * const sequence = new snowflake.Sequence("sequence", {
15
+ * database: schema.database,
16
+ * schema: schema.name,
17
+ * });
18
+ * const table = new snowflake.Table("table", {
19
+ * database: schema.database,
20
+ * schema: schema.name,
21
+ * comment: "A table.",
22
+ * clusterBies: ["to_date(DATE)"],
23
+ * dataRetentionDays: schema.dataRetentionDays,
24
+ * changeTracking: false,
25
+ * columns: [
26
+ * {
27
+ * name: "id",
28
+ * type: "int",
29
+ * nullable: true,
30
+ * "default": {
31
+ * sequence: sequence.fullyQualifiedName,
32
+ * },
33
+ * },
34
+ * {
35
+ * name: "data",
36
+ * type: "text",
37
+ * nullable: false,
38
+ * },
39
+ * {
40
+ * name: "DATE",
41
+ * type: "TIMESTAMP_NTZ(9)",
42
+ * },
43
+ * {
44
+ * name: "extra",
45
+ * type: "VARIANT",
46
+ * comment: "extra data",
47
+ * },
48
+ * ],
49
+ * primaryKey: {
50
+ * name: "my_key",
51
+ * keys: ["data"],
52
+ * },
53
+ * });
54
+ * ```
55
+ *
56
+ * ## Import
57
+ *
58
+ * # format is database name | schema name | table name
59
+ *
60
+ * ```sh
61
+ * $ pulumi import snowflake:index/table:Table example 'databaseName|schemaName|tableName'
62
+ * ```
63
+ */
64
+ export declare class Table extends pulumi.CustomResource {
65
+ /**
66
+ * Get an existing Table resource's state with the given name, ID, and optional extra
67
+ * properties used to qualify the lookup.
68
+ *
69
+ * @param name The _unique_ name of the resulting resource.
70
+ * @param id The _unique_ provider ID of the resource to lookup.
71
+ * @param state Any extra arguments used during the lookup.
72
+ * @param opts Optional settings to control the behavior of the CustomResource.
73
+ */
74
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: TableState, opts?: pulumi.CustomResourceOptions): Table;
75
+ /**
76
+ * Returns true if the given object is an instance of Table. This is designed to work even
77
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
78
+ */
79
+ static isInstance(obj: any): obj is Table;
80
+ /**
81
+ * Specifies whether to enable change tracking on the table. Default false.
82
+ */
83
+ readonly changeTracking: pulumi.Output<boolean | undefined>;
84
+ /**
85
+ * A list of one or more table columns/expressions to be used as clustering key(s) for the table
86
+ */
87
+ readonly clusterBies: pulumi.Output<string[] | undefined>;
88
+ /**
89
+ * Definitions of a column to create in the table. Minimum one required.
90
+ */
91
+ readonly columns: pulumi.Output<outputs.TableColumn[]>;
92
+ /**
93
+ * Specifies a comment for the table.
94
+ */
95
+ readonly comment: pulumi.Output<string | undefined>;
96
+ /**
97
+ * Specifies the retention period for the table so that Time Travel actions (SELECT, CLONE, UNDROP) can be performed on historical data in the table. Default value is 1, if you wish to inherit the parent schema setting then pass in the schema attribute to this argument.
98
+ */
99
+ readonly dataRetentionDays: pulumi.Output<number | undefined>;
100
+ /**
101
+ * The database in which to create the table.
102
+ */
103
+ readonly database: pulumi.Output<string>;
104
+ /**
105
+ * Specifies the identifier for the table; must be unique for the database and schema in which the table is created.
106
+ */
107
+ readonly name: pulumi.Output<string>;
108
+ /**
109
+ * Name of the role that owns the table.
110
+ */
111
+ readonly owner: pulumi.Output<string>;
112
+ /**
113
+ * Definitions of primary key constraint to create on table
114
+ */
115
+ readonly primaryKey: pulumi.Output<outputs.TablePrimaryKey | undefined>;
116
+ /**
117
+ * The schema in which to create the table.
118
+ */
119
+ readonly schema: pulumi.Output<string>;
120
+ /**
121
+ * Create a Table resource with the given unique name, arguments, and options.
122
+ *
123
+ * @param name The _unique_ name of the resource.
124
+ * @param args The arguments to use to populate this resource's properties.
125
+ * @param opts A bag of options that control this resource's behavior.
126
+ */
127
+ constructor(name: string, args: TableArgs, opts?: pulumi.CustomResourceOptions);
128
+ }
129
+ /**
130
+ * Input properties used for looking up and filtering Table resources.
131
+ */
132
+ export interface TableState {
133
+ /**
134
+ * Specifies whether to enable change tracking on the table. Default false.
135
+ */
136
+ changeTracking?: pulumi.Input<boolean>;
137
+ /**
138
+ * A list of one or more table columns/expressions to be used as clustering key(s) for the table
139
+ */
140
+ clusterBies?: pulumi.Input<pulumi.Input<string>[]>;
141
+ /**
142
+ * Definitions of a column to create in the table. Minimum one required.
143
+ */
144
+ columns?: pulumi.Input<pulumi.Input<inputs.TableColumn>[]>;
145
+ /**
146
+ * Specifies a comment for the table.
147
+ */
148
+ comment?: pulumi.Input<string>;
149
+ /**
150
+ * Specifies the retention period for the table so that Time Travel actions (SELECT, CLONE, UNDROP) can be performed on historical data in the table. Default value is 1, if you wish to inherit the parent schema setting then pass in the schema attribute to this argument.
151
+ */
152
+ dataRetentionDays?: pulumi.Input<number>;
153
+ /**
154
+ * The database in which to create the table.
155
+ */
156
+ database?: pulumi.Input<string>;
157
+ /**
158
+ * Specifies the identifier for the table; must be unique for the database and schema in which the table is created.
159
+ */
160
+ name?: pulumi.Input<string>;
161
+ /**
162
+ * Name of the role that owns the table.
163
+ */
164
+ owner?: pulumi.Input<string>;
165
+ /**
166
+ * Definitions of primary key constraint to create on table
167
+ */
168
+ primaryKey?: pulumi.Input<inputs.TablePrimaryKey>;
169
+ /**
170
+ * The schema in which to create the table.
171
+ */
172
+ schema?: pulumi.Input<string>;
173
+ }
174
+ /**
175
+ * The set of arguments for constructing a Table resource.
176
+ */
177
+ export interface TableArgs {
178
+ /**
179
+ * Specifies whether to enable change tracking on the table. Default false.
180
+ */
181
+ changeTracking?: pulumi.Input<boolean>;
182
+ /**
183
+ * A list of one or more table columns/expressions to be used as clustering key(s) for the table
184
+ */
185
+ clusterBies?: pulumi.Input<pulumi.Input<string>[]>;
186
+ /**
187
+ * Definitions of a column to create in the table. Minimum one required.
188
+ */
189
+ columns: pulumi.Input<pulumi.Input<inputs.TableColumn>[]>;
190
+ /**
191
+ * Specifies a comment for the table.
192
+ */
193
+ comment?: pulumi.Input<string>;
194
+ /**
195
+ * Specifies the retention period for the table so that Time Travel actions (SELECT, CLONE, UNDROP) can be performed on historical data in the table. Default value is 1, if you wish to inherit the parent schema setting then pass in the schema attribute to this argument.
196
+ */
197
+ dataRetentionDays?: pulumi.Input<number>;
198
+ /**
199
+ * The database in which to create the table.
200
+ */
201
+ database: pulumi.Input<string>;
202
+ /**
203
+ * Specifies the identifier for the table; must be unique for the database and schema in which the table is created.
204
+ */
205
+ name?: pulumi.Input<string>;
206
+ /**
207
+ * Definitions of primary key constraint to create on table
208
+ */
209
+ primaryKey?: pulumi.Input<inputs.TablePrimaryKey>;
210
+ /**
211
+ * The schema in which to create the table.
212
+ */
213
+ schema: pulumi.Input<string>;
214
+ }
package/table.js ADDED
@@ -0,0 +1,139 @@
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.Table = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * ## Example Usage
10
+ *
11
+ * ```typescript
12
+ * import * as pulumi from "@pulumi/pulumi";
13
+ * import * as snowflake from "@pulumi/snowflake";
14
+ *
15
+ * const schema = new snowflake.Schema("schema", {
16
+ * database: "database",
17
+ * dataRetentionDays: 1,
18
+ * });
19
+ * const sequence = new snowflake.Sequence("sequence", {
20
+ * database: schema.database,
21
+ * schema: schema.name,
22
+ * });
23
+ * const table = new snowflake.Table("table", {
24
+ * database: schema.database,
25
+ * schema: schema.name,
26
+ * comment: "A table.",
27
+ * clusterBies: ["to_date(DATE)"],
28
+ * dataRetentionDays: schema.dataRetentionDays,
29
+ * changeTracking: false,
30
+ * columns: [
31
+ * {
32
+ * name: "id",
33
+ * type: "int",
34
+ * nullable: true,
35
+ * "default": {
36
+ * sequence: sequence.fullyQualifiedName,
37
+ * },
38
+ * },
39
+ * {
40
+ * name: "data",
41
+ * type: "text",
42
+ * nullable: false,
43
+ * },
44
+ * {
45
+ * name: "DATE",
46
+ * type: "TIMESTAMP_NTZ(9)",
47
+ * },
48
+ * {
49
+ * name: "extra",
50
+ * type: "VARIANT",
51
+ * comment: "extra data",
52
+ * },
53
+ * ],
54
+ * primaryKey: {
55
+ * name: "my_key",
56
+ * keys: ["data"],
57
+ * },
58
+ * });
59
+ * ```
60
+ *
61
+ * ## Import
62
+ *
63
+ * # format is database name | schema name | table name
64
+ *
65
+ * ```sh
66
+ * $ pulumi import snowflake:index/table:Table example 'databaseName|schemaName|tableName'
67
+ * ```
68
+ */
69
+ class Table extends pulumi.CustomResource {
70
+ constructor(name, argsOrState, opts) {
71
+ let inputs = {};
72
+ opts = opts || {};
73
+ if (opts.id) {
74
+ const state = argsOrState;
75
+ inputs["changeTracking"] = state ? state.changeTracking : undefined;
76
+ inputs["clusterBies"] = state ? state.clusterBies : undefined;
77
+ inputs["columns"] = state ? state.columns : undefined;
78
+ inputs["comment"] = state ? state.comment : undefined;
79
+ inputs["dataRetentionDays"] = state ? state.dataRetentionDays : undefined;
80
+ inputs["database"] = state ? state.database : undefined;
81
+ inputs["name"] = state ? state.name : undefined;
82
+ inputs["owner"] = state ? state.owner : undefined;
83
+ inputs["primaryKey"] = state ? state.primaryKey : undefined;
84
+ inputs["schema"] = state ? state.schema : undefined;
85
+ }
86
+ else {
87
+ const args = argsOrState;
88
+ if ((!args || args.columns === undefined) && !opts.urn) {
89
+ throw new Error("Missing required property 'columns'");
90
+ }
91
+ if ((!args || args.database === undefined) && !opts.urn) {
92
+ throw new Error("Missing required property 'database'");
93
+ }
94
+ if ((!args || args.schema === undefined) && !opts.urn) {
95
+ throw new Error("Missing required property 'schema'");
96
+ }
97
+ inputs["changeTracking"] = args ? args.changeTracking : undefined;
98
+ inputs["clusterBies"] = args ? args.clusterBies : undefined;
99
+ inputs["columns"] = args ? args.columns : undefined;
100
+ inputs["comment"] = args ? args.comment : undefined;
101
+ inputs["dataRetentionDays"] = args ? args.dataRetentionDays : undefined;
102
+ inputs["database"] = args ? args.database : undefined;
103
+ inputs["name"] = args ? args.name : undefined;
104
+ inputs["primaryKey"] = args ? args.primaryKey : undefined;
105
+ inputs["schema"] = args ? args.schema : undefined;
106
+ inputs["owner"] = undefined /*out*/;
107
+ }
108
+ if (!opts.version) {
109
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
110
+ }
111
+ super(Table.__pulumiType, name, inputs, opts);
112
+ }
113
+ /**
114
+ * Get an existing Table resource's state with the given name, ID, and optional extra
115
+ * properties used to qualify the lookup.
116
+ *
117
+ * @param name The _unique_ name of the resulting resource.
118
+ * @param id The _unique_ provider ID of the resource to lookup.
119
+ * @param state Any extra arguments used during the lookup.
120
+ * @param opts Optional settings to control the behavior of the CustomResource.
121
+ */
122
+ static get(name, id, state, opts) {
123
+ return new Table(name, state, Object.assign(Object.assign({}, opts), { id: id }));
124
+ }
125
+ /**
126
+ * Returns true if the given object is an instance of Table. This is designed to work even
127
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
128
+ */
129
+ static isInstance(obj) {
130
+ if (obj === undefined || obj === null) {
131
+ return false;
132
+ }
133
+ return obj['__pulumiType'] === Table.__pulumiType;
134
+ }
135
+ }
136
+ exports.Table = Table;
137
+ /** @internal */
138
+ Table.__pulumiType = 'snowflake:index/table:Table';
139
+ //# sourceMappingURL=table.js.map
package/table.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../table.ts"],"names":[],"mappings":"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"}