@ryan-pip/pulumi-fivetran 0.1.0

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 (199) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +56 -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 +3 -0
  7. package/config/vars.js +28 -0
  8. package/config/vars.js.map +1 -0
  9. package/connector.d.ts +192 -0
  10. package/connector.js +88 -0
  11. package/connector.js.map +1 -0
  12. package/connectorCertificates.d.ts +53 -0
  13. package/connectorCertificates.js +54 -0
  14. package/connectorCertificates.js.map +1 -0
  15. package/connectorFingerprints.d.ts +103 -0
  16. package/connectorFingerprints.js +104 -0
  17. package/connectorFingerprints.js.map +1 -0
  18. package/connectorSchedule.d.ts +169 -0
  19. package/connectorSchedule.js +123 -0
  20. package/connectorSchedule.js.map +1 -0
  21. package/connectorSchemaConfig.d.ts +130 -0
  22. package/connectorSchemaConfig.js +72 -0
  23. package/connectorSchemaConfig.js.map +1 -0
  24. package/dbtProject.d.ts +205 -0
  25. package/dbtProject.js +117 -0
  26. package/dbtProject.js.map +1 -0
  27. package/dbtTransformation.d.ts +162 -0
  28. package/dbtTransformation.js +105 -0
  29. package/dbtTransformation.js.map +1 -0
  30. package/destination.d.ts +216 -0
  31. package/destination.js +114 -0
  32. package/destination.js.map +1 -0
  33. package/destinationCertificates.d.ts +53 -0
  34. package/destinationCertificates.js +54 -0
  35. package/destinationCertificates.js.map +1 -0
  36. package/destinationFingerprints.d.ts +103 -0
  37. package/destinationFingerprints.js +104 -0
  38. package/destinationFingerprints.js.map +1 -0
  39. package/externalLogging.d.ts +118 -0
  40. package/externalLogging.js +92 -0
  41. package/externalLogging.js.map +1 -0
  42. package/getConnector.d.ts +76 -0
  43. package/getConnector.js +50 -0
  44. package/getConnector.js.map +1 -0
  45. package/getConnectorCertificates.d.ts +39 -0
  46. package/getConnectorCertificates.js +20 -0
  47. package/getConnectorCertificates.js.map +1 -0
  48. package/getConnectorFingerprints.d.ts +67 -0
  49. package/getConnectorFingerprints.js +48 -0
  50. package/getConnectorFingerprints.js.map +1 -0
  51. package/getConnectorsMetadata.d.ts +51 -0
  52. package/getConnectorsMetadata.js +44 -0
  53. package/getConnectorsMetadata.js.map +1 -0
  54. package/getDbtModels.d.ts +67 -0
  55. package/getDbtModels.js +48 -0
  56. package/getDbtModels.js.map +1 -0
  57. package/getDbtProject.d.ts +112 -0
  58. package/getDbtProject.js +48 -0
  59. package/getDbtProject.js.map +1 -0
  60. package/getDbtProjects.d.ts +38 -0
  61. package/getDbtProjects.js +41 -0
  62. package/getDbtProjects.js.map +1 -0
  63. package/getDbtTransformation.d.ts +99 -0
  64. package/getDbtTransformation.js +48 -0
  65. package/getDbtTransformation.js.map +1 -0
  66. package/getDestination.d.ts +62 -0
  67. package/getDestination.js +48 -0
  68. package/getDestination.js.map +1 -0
  69. package/getDestinationCertificates.d.ts +39 -0
  70. package/getDestinationCertificates.js +20 -0
  71. package/getDestinationCertificates.js.map +1 -0
  72. package/getDestinationFingerprints.d.ts +67 -0
  73. package/getDestinationFingerprints.js +48 -0
  74. package/getDestinationFingerprints.js.map +1 -0
  75. package/getExternalLogging.d.ts +87 -0
  76. package/getExternalLogging.js +49 -0
  77. package/getExternalLogging.js.map +1 -0
  78. package/getGroup.d.ts +70 -0
  79. package/getGroup.js +47 -0
  80. package/getGroup.js.map +1 -0
  81. package/getGroupConnectors.d.ts +77 -0
  82. package/getGroupConnectors.js +51 -0
  83. package/getGroupConnectors.js.map +1 -0
  84. package/getGroupServiceAccount.d.ts +62 -0
  85. package/getGroupServiceAccount.js +47 -0
  86. package/getGroupServiceAccount.js.map +1 -0
  87. package/getGroupSshKey.d.ts +62 -0
  88. package/getGroupSshKey.js +47 -0
  89. package/getGroupSshKey.js.map +1 -0
  90. package/getGroupUsers.d.ts +63 -0
  91. package/getGroupUsers.js +48 -0
  92. package/getGroupUsers.js.map +1 -0
  93. package/getGroups.d.ts +51 -0
  94. package/getGroups.js +44 -0
  95. package/getGroups.js.map +1 -0
  96. package/getLocalProcessingAgent.d.ts +72 -0
  97. package/getLocalProcessingAgent.js +47 -0
  98. package/getLocalProcessingAgent.js.map +1 -0
  99. package/getLocalProcessingAgents.d.ts +38 -0
  100. package/getLocalProcessingAgents.js +41 -0
  101. package/getLocalProcessingAgents.js.map +1 -0
  102. package/getProxyAgent.d.ts +82 -0
  103. package/getProxyAgent.js +47 -0
  104. package/getProxyAgent.js.map +1 -0
  105. package/getProxyAgents.d.ts +51 -0
  106. package/getProxyAgents.js +44 -0
  107. package/getProxyAgents.js.map +1 -0
  108. package/getRoles.d.ts +51 -0
  109. package/getRoles.js +44 -0
  110. package/getRoles.js.map +1 -0
  111. package/getTeam.d.ts +70 -0
  112. package/getTeam.js +47 -0
  113. package/getTeam.js.map +1 -0
  114. package/getTeamConnectorMemberships.d.ts +45 -0
  115. package/getTeamConnectorMemberships.js +26 -0
  116. package/getTeamConnectorMemberships.js.map +1 -0
  117. package/getTeamGroupMemberships.d.ts +67 -0
  118. package/getTeamGroupMemberships.js +48 -0
  119. package/getTeamGroupMemberships.js.map +1 -0
  120. package/getTeamUserMemberships.d.ts +67 -0
  121. package/getTeamUserMemberships.js +48 -0
  122. package/getTeamUserMemberships.js.map +1 -0
  123. package/getTeams.d.ts +59 -0
  124. package/getTeams.js +45 -0
  125. package/getTeams.js.map +1 -0
  126. package/getUser.d.ts +98 -0
  127. package/getUser.js +47 -0
  128. package/getUser.js.map +1 -0
  129. package/getUserConnectorMemberships.d.ts +67 -0
  130. package/getUserConnectorMemberships.js +48 -0
  131. package/getUserConnectorMemberships.js.map +1 -0
  132. package/getUserGroupMemberships.d.ts +67 -0
  133. package/getUserGroupMemberships.js +48 -0
  134. package/getUserGroupMemberships.js.map +1 -0
  135. package/getUsers.d.ts +59 -0
  136. package/getUsers.js +45 -0
  137. package/getUsers.js.map +1 -0
  138. package/getWebhook.d.ts +94 -0
  139. package/getWebhook.js +47 -0
  140. package/getWebhook.js.map +1 -0
  141. package/getWebhooks.d.ts +38 -0
  142. package/getWebhooks.js +41 -0
  143. package/getWebhooks.js.map +1 -0
  144. package/group.d.ts +102 -0
  145. package/group.js +91 -0
  146. package/group.js.map +1 -0
  147. package/groupUsers.d.ts +79 -0
  148. package/groupUsers.js +80 -0
  149. package/groupUsers.js.map +1 -0
  150. package/index.d.ts +177 -0
  151. package/index.js +251 -0
  152. package/index.js.map +1 -0
  153. package/localProcessingAgent.d.ts +125 -0
  154. package/localProcessingAgent.js +86 -0
  155. package/localProcessingAgent.js.map +1 -0
  156. package/package.json +29 -0
  157. package/package.json.bak +29 -0
  158. package/provider.d.ts +33 -0
  159. package/provider.js +50 -0
  160. package/provider.js.map +1 -0
  161. package/proxyAgent.d.ts +117 -0
  162. package/proxyAgent.js +84 -0
  163. package/proxyAgent.js.map +1 -0
  164. package/team.d.ts +115 -0
  165. package/team.js +99 -0
  166. package/team.js.map +1 -0
  167. package/teamConnectorMembership.d.ts +107 -0
  168. package/teamConnectorMembership.js +108 -0
  169. package/teamConnectorMembership.js.map +1 -0
  170. package/teamGroupMembership.d.ts +82 -0
  171. package/teamGroupMembership.js +83 -0
  172. package/teamGroupMembership.js.map +1 -0
  173. package/teamUserMembership.d.ts +105 -0
  174. package/teamUserMembership.js +106 -0
  175. package/teamUserMembership.js.map +1 -0
  176. package/types/index.d.ts +3 -0
  177. package/types/index.js +11 -0
  178. package/types/index.js.map +1 -0
  179. package/types/input.d.ts +18230 -0
  180. package/types/input.js +5 -0
  181. package/types/input.js.map +1 -0
  182. package/types/output.d.ts +12255 -0
  183. package/types/output.js +5 -0
  184. package/types/output.js.map +1 -0
  185. package/user.d.ts +191 -0
  186. package/user.js +119 -0
  187. package/user.js.map +1 -0
  188. package/userConnectorMembership.d.ts +107 -0
  189. package/userConnectorMembership.js +108 -0
  190. package/userConnectorMembership.js.map +1 -0
  191. package/userGroupMembership.d.ts +82 -0
  192. package/userGroupMembership.js +83 -0
  193. package/userGroupMembership.js.map +1 -0
  194. package/utilities.d.ts +8 -0
  195. package/utilities.js +101 -0
  196. package/utilities.js.map +1 -0
  197. package/webhook.d.ts +165 -0
  198. package/webhook.js +111 -0
  199. package/webhook.js.map +1 -0
@@ -0,0 +1,53 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ export declare class ConnectorCertificates extends pulumi.CustomResource {
5
+ /**
6
+ * Get an existing ConnectorCertificates resource's state with the given name, ID, and optional extra
7
+ * properties used to qualify the lookup.
8
+ *
9
+ * @param name The _unique_ name of the resulting resource.
10
+ * @param id The _unique_ provider ID of the resource to lookup.
11
+ * @param state Any extra arguments used during the lookup.
12
+ * @param opts Optional settings to control the behavior of the CustomResource.
13
+ */
14
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ConnectorCertificatesState, opts?: pulumi.CustomResourceOptions): ConnectorCertificates;
15
+ /**
16
+ * Returns true if the given object is an instance of ConnectorCertificates. This is designed to work even
17
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
18
+ */
19
+ static isInstance(obj: any): obj is ConnectorCertificates;
20
+ readonly certificates: pulumi.Output<outputs.ConnectorCertificatesCertificate[] | undefined>;
21
+ /**
22
+ * The unique identifier for the target connection within the Fivetran system.
23
+ */
24
+ readonly connectorId: pulumi.Output<string>;
25
+ /**
26
+ * Create a ConnectorCertificates resource with the given unique name, arguments, and options.
27
+ *
28
+ * @param name The _unique_ name of the resource.
29
+ * @param args The arguments to use to populate this resource's properties.
30
+ * @param opts A bag of options that control this resource's behavior.
31
+ */
32
+ constructor(name: string, args: ConnectorCertificatesArgs, opts?: pulumi.CustomResourceOptions);
33
+ }
34
+ /**
35
+ * Input properties used for looking up and filtering ConnectorCertificates resources.
36
+ */
37
+ export interface ConnectorCertificatesState {
38
+ certificates?: pulumi.Input<pulumi.Input<inputs.ConnectorCertificatesCertificate>[]>;
39
+ /**
40
+ * The unique identifier for the target connection within the Fivetran system.
41
+ */
42
+ connectorId?: pulumi.Input<string>;
43
+ }
44
+ /**
45
+ * The set of arguments for constructing a ConnectorCertificates resource.
46
+ */
47
+ export interface ConnectorCertificatesArgs {
48
+ certificates?: pulumi.Input<pulumi.Input<inputs.ConnectorCertificatesCertificate>[]>;
49
+ /**
50
+ * The unique identifier for the target connection within the Fivetran system.
51
+ */
52
+ connectorId: pulumi.Input<string>;
53
+ }
@@ -0,0 +1,54 @@
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.ConnectorCertificates = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ class ConnectorCertificates extends pulumi.CustomResource {
9
+ /**
10
+ * Get an existing ConnectorCertificates resource's state with the given name, ID, and optional extra
11
+ * properties used to qualify the lookup.
12
+ *
13
+ * @param name The _unique_ name of the resulting resource.
14
+ * @param id The _unique_ provider ID of the resource to lookup.
15
+ * @param state Any extra arguments used during the lookup.
16
+ * @param opts Optional settings to control the behavior of the CustomResource.
17
+ */
18
+ static get(name, id, state, opts) {
19
+ return new ConnectorCertificates(name, state, Object.assign(Object.assign({}, opts), { id: id }));
20
+ }
21
+ /**
22
+ * Returns true if the given object is an instance of ConnectorCertificates. This is designed to work even
23
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
24
+ */
25
+ static isInstance(obj) {
26
+ if (obj === undefined || obj === null) {
27
+ return false;
28
+ }
29
+ return obj['__pulumiType'] === ConnectorCertificates.__pulumiType;
30
+ }
31
+ constructor(name, argsOrState, opts) {
32
+ let resourceInputs = {};
33
+ opts = opts || {};
34
+ if (opts.id) {
35
+ const state = argsOrState;
36
+ resourceInputs["certificates"] = state ? state.certificates : undefined;
37
+ resourceInputs["connectorId"] = state ? state.connectorId : undefined;
38
+ }
39
+ else {
40
+ const args = argsOrState;
41
+ if ((!args || args.connectorId === undefined) && !opts.urn) {
42
+ throw new Error("Missing required property 'connectorId'");
43
+ }
44
+ resourceInputs["certificates"] = args ? args.certificates : undefined;
45
+ resourceInputs["connectorId"] = args ? args.connectorId : undefined;
46
+ }
47
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
48
+ super(ConnectorCertificates.__pulumiType, name, resourceInputs, opts);
49
+ }
50
+ }
51
+ exports.ConnectorCertificates = ConnectorCertificates;
52
+ /** @internal */
53
+ ConnectorCertificates.__pulumiType = 'fivetran:index/connectorCertificates:ConnectorCertificates';
54
+ //# sourceMappingURL=connectorCertificates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectorCertificates.js","sourceRoot":"","sources":["../connectorCertificates.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC,MAAa,qBAAsB,SAAQ,MAAM,CAAC,cAAc;IAC5D;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAkC,EAAE,IAAmC;QAChI,OAAO,IAAI,qBAAqB,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC5E,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,qBAAqB,CAAC,YAAY,CAAC;IACtE,CAAC;IAgBD,YAAY,IAAY,EAAE,WAAoE,EAAE,IAAmC;QAC/H,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAqD,CAAC;YACpE,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;SACzE;aAAM;YACH,MAAM,IAAI,GAAG,WAAoD,CAAC;YAClE,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC9D;YACD,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;SACvE;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;;AA3DL,sDA4DC;AA9CG,gBAAgB;AACO,kCAAY,GAAG,4DAA4D,CAAC"}
@@ -0,0 +1,103 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ /**
5
+ * This resource allows you to manage list of approved SSH fingerprints for a particular connector.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * ```typescript
10
+ * import * as pulumi from "@pulumi/pulumi";
11
+ * import * as fivetran from "@ryan-pip/pulumi-fivetran";
12
+ *
13
+ * const myConnectorApprovedFingerprints = new fivetran.ConnectorFingerprints("myConnectorApprovedFingerprints", {
14
+ * connectorId: fivetran_connector.my_connector.id,
15
+ * fingerprints: [
16
+ * {
17
+ * hash: "jhgfJfgrI6yy...",
18
+ * publicKey: "ssh-rsa CCCCB3NzaC1yc2ECCASFWFWDFRWT5WAS ... fivetran user key",
19
+ * },
20
+ * {
21
+ * hash: "eUtPirI6yytWe...",
22
+ * publicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6 ... fivetran user key",
23
+ * },
24
+ * ],
25
+ * });
26
+ * ```
27
+ *
28
+ * ## Import
29
+ *
30
+ * 1. To import an existing `fivetran_connector_fingerprints` resource into your Terraform state, you need to get **Fivetran Connector ID** on the **Setup** tab of the connector page in your Fivetran dashboard.
31
+ *
32
+ * 2. Retrieve all connectors in a particular group using the [fivetran_group_connectors data source](/docs/data-sources/group_connectors). To retrieve existing groups, use the [fivetran_groups data source](/docs/data-sources/groups).
33
+ *
34
+ * 3. Define an empty resource in your `.tf` configuration:
35
+ *
36
+ * hcl
37
+ *
38
+ * resource "fivetran_connector_fingerprints" "my_imported_connector_fingerprints" {
39
+ *
40
+ * }
41
+ *
42
+ * 4. Run the `pulumi import` command:
43
+ *
44
+ * ```sh
45
+ * $ pulumi import fivetran:index/connectorFingerprints:ConnectorFingerprints my_imported_connector_fingerprints {your Fivetran Connector ID}
46
+ * ```
47
+ *
48
+ * 5. Use the `terraform state show` command to get the values from the state:
49
+ *
50
+ * terraform state show 'fivetran_connector_fingerprints.my_imported_connector_fingerprints'
51
+ *
52
+ * 6. Copy the values and paste them to your `.tf` configuration.
53
+ */
54
+ export declare class ConnectorFingerprints extends pulumi.CustomResource {
55
+ /**
56
+ * Get an existing ConnectorFingerprints resource's state with the given name, ID, and optional extra
57
+ * properties used to qualify the lookup.
58
+ *
59
+ * @param name The _unique_ name of the resulting resource.
60
+ * @param id The _unique_ provider ID of the resource to lookup.
61
+ * @param state Any extra arguments used during the lookup.
62
+ * @param opts Optional settings to control the behavior of the CustomResource.
63
+ */
64
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ConnectorFingerprintsState, opts?: pulumi.CustomResourceOptions): ConnectorFingerprints;
65
+ /**
66
+ * Returns true if the given object is an instance of ConnectorFingerprints. This is designed to work even
67
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
68
+ */
69
+ static isInstance(obj: any): obj is ConnectorFingerprints;
70
+ /**
71
+ * The unique identifier for the target connection within the Fivetran system.
72
+ */
73
+ readonly connectorId: pulumi.Output<string>;
74
+ readonly fingerprints: pulumi.Output<outputs.ConnectorFingerprintsFingerprint[] | undefined>;
75
+ /**
76
+ * Create a ConnectorFingerprints 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: ConnectorFingerprintsArgs, opts?: pulumi.CustomResourceOptions);
83
+ }
84
+ /**
85
+ * Input properties used for looking up and filtering ConnectorFingerprints resources.
86
+ */
87
+ export interface ConnectorFingerprintsState {
88
+ /**
89
+ * The unique identifier for the target connection within the Fivetran system.
90
+ */
91
+ connectorId?: pulumi.Input<string>;
92
+ fingerprints?: pulumi.Input<pulumi.Input<inputs.ConnectorFingerprintsFingerprint>[]>;
93
+ }
94
+ /**
95
+ * The set of arguments for constructing a ConnectorFingerprints resource.
96
+ */
97
+ export interface ConnectorFingerprintsArgs {
98
+ /**
99
+ * The unique identifier for the target connection within the Fivetran system.
100
+ */
101
+ connectorId: pulumi.Input<string>;
102
+ fingerprints?: pulumi.Input<pulumi.Input<inputs.ConnectorFingerprintsFingerprint>[]>;
103
+ }
@@ -0,0 +1,104 @@
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.ConnectorFingerprints = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * This resource allows you to manage list of approved SSH fingerprints for a particular connector.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as fivetran from "@ryan-pip/pulumi-fivetran";
16
+ *
17
+ * const myConnectorApprovedFingerprints = new fivetran.ConnectorFingerprints("myConnectorApprovedFingerprints", {
18
+ * connectorId: fivetran_connector.my_connector.id,
19
+ * fingerprints: [
20
+ * {
21
+ * hash: "jhgfJfgrI6yy...",
22
+ * publicKey: "ssh-rsa CCCCB3NzaC1yc2ECCASFWFWDFRWT5WAS ... fivetran user key",
23
+ * },
24
+ * {
25
+ * hash: "eUtPirI6yytWe...",
26
+ * publicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6 ... fivetran user key",
27
+ * },
28
+ * ],
29
+ * });
30
+ * ```
31
+ *
32
+ * ## Import
33
+ *
34
+ * 1. To import an existing `fivetran_connector_fingerprints` resource into your Terraform state, you need to get **Fivetran Connector ID** on the **Setup** tab of the connector page in your Fivetran dashboard.
35
+ *
36
+ * 2. Retrieve all connectors in a particular group using the [fivetran_group_connectors data source](/docs/data-sources/group_connectors). To retrieve existing groups, use the [fivetran_groups data source](/docs/data-sources/groups).
37
+ *
38
+ * 3. Define an empty resource in your `.tf` configuration:
39
+ *
40
+ * hcl
41
+ *
42
+ * resource "fivetran_connector_fingerprints" "my_imported_connector_fingerprints" {
43
+ *
44
+ * }
45
+ *
46
+ * 4. Run the `pulumi import` command:
47
+ *
48
+ * ```sh
49
+ * $ pulumi import fivetran:index/connectorFingerprints:ConnectorFingerprints my_imported_connector_fingerprints {your Fivetran Connector ID}
50
+ * ```
51
+ *
52
+ * 5. Use the `terraform state show` command to get the values from the state:
53
+ *
54
+ * terraform state show 'fivetran_connector_fingerprints.my_imported_connector_fingerprints'
55
+ *
56
+ * 6. Copy the values and paste them to your `.tf` configuration.
57
+ */
58
+ class ConnectorFingerprints extends pulumi.CustomResource {
59
+ /**
60
+ * Get an existing ConnectorFingerprints resource's state with the given name, ID, and optional extra
61
+ * properties used to qualify the lookup.
62
+ *
63
+ * @param name The _unique_ name of the resulting resource.
64
+ * @param id The _unique_ provider ID of the resource to lookup.
65
+ * @param state Any extra arguments used during the lookup.
66
+ * @param opts Optional settings to control the behavior of the CustomResource.
67
+ */
68
+ static get(name, id, state, opts) {
69
+ return new ConnectorFingerprints(name, state, Object.assign(Object.assign({}, opts), { id: id }));
70
+ }
71
+ /**
72
+ * Returns true if the given object is an instance of ConnectorFingerprints. This is designed to work even
73
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
74
+ */
75
+ static isInstance(obj) {
76
+ if (obj === undefined || obj === null) {
77
+ return false;
78
+ }
79
+ return obj['__pulumiType'] === ConnectorFingerprints.__pulumiType;
80
+ }
81
+ constructor(name, argsOrState, opts) {
82
+ let resourceInputs = {};
83
+ opts = opts || {};
84
+ if (opts.id) {
85
+ const state = argsOrState;
86
+ resourceInputs["connectorId"] = state ? state.connectorId : undefined;
87
+ resourceInputs["fingerprints"] = state ? state.fingerprints : undefined;
88
+ }
89
+ else {
90
+ const args = argsOrState;
91
+ if ((!args || args.connectorId === undefined) && !opts.urn) {
92
+ throw new Error("Missing required property 'connectorId'");
93
+ }
94
+ resourceInputs["connectorId"] = args ? args.connectorId : undefined;
95
+ resourceInputs["fingerprints"] = args ? args.fingerprints : undefined;
96
+ }
97
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
98
+ super(ConnectorFingerprints.__pulumiType, name, resourceInputs, opts);
99
+ }
100
+ }
101
+ exports.ConnectorFingerprints = ConnectorFingerprints;
102
+ /** @internal */
103
+ ConnectorFingerprints.__pulumiType = 'fivetran:index/connectorFingerprints:ConnectorFingerprints';
104
+ //# sourceMappingURL=connectorFingerprints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectorFingerprints.js","sourceRoot":"","sources":["../connectorFingerprints.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAa,qBAAsB,SAAQ,MAAM,CAAC,cAAc;IAC5D;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAkC,EAAE,IAAmC;QAChI,OAAO,IAAI,qBAAqB,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC5E,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,qBAAqB,CAAC,YAAY,CAAC;IACtE,CAAC;IAgBD,YAAY,IAAY,EAAE,WAAoE,EAAE,IAAmC;QAC/H,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAqD,CAAC;YACpE,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3E;aAAM;YACH,MAAM,IAAI,GAAG,WAAoD,CAAC;YAClE,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC9D;YACD,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;SACzE;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;;AA3DL,sDA4DC;AA9CG,gBAAgB;AACO,kCAAY,GAAG,4DAA4D,CAAC"}
@@ -0,0 +1,169 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * -This resource allows you to manage connectors schedule: pause/unpause connector, set dailySyncTime and sync_frequency.
4
+ *
5
+ * ## Example Usage
6
+ *
7
+ * ```typescript
8
+ * import * as pulumi from "@pulumi/pulumi";
9
+ * import * as fivetran from "@ryan-pip/pulumi-fivetran";
10
+ *
11
+ * const myConnectorSchedule = new fivetran.ConnectorSchedule("myConnectorSchedule", {
12
+ * connectorId: fivetran_connector.my_connector.id,
13
+ * syncFrequency: "1440",
14
+ * dailySyncTime: "03:00",
15
+ * paused: "false",
16
+ * pauseAfterTrial: "true",
17
+ * scheduleType: "auto",
18
+ * });
19
+ * ```
20
+ *
21
+ * ## Import
22
+ *
23
+ * You don't need to import this resource as it is synthetic.
24
+ *
25
+ * To fetch schedule values from existing connector use `fivetran_connector` data source:
26
+ *
27
+ * hcl
28
+ *
29
+ * data "fivetran_connector" "my_connector" {
30
+ *
31
+ * id = "my_connector_id"
32
+ *
33
+ * }
34
+ *
35
+ * now you can use schedule values from this data_source:
36
+ *
37
+ * sync_frequency = data.fivetran_connector.my_connector.sync_frequency
38
+ *
39
+ * paused = data.fivetran_connector.my_connector.paused
40
+ *
41
+ * This resource manages settings for already existing connector instance and doesn't create a new one.
42
+ *
43
+ * If you already have an existing connector with id = `my_connector_id` just define `fivetran_connector_schedule` resource:
44
+ *
45
+ * hcl
46
+ *
47
+ * resource "fivetran_connector_schedule" "my_connector_schedule" {
48
+ *
49
+ * connector_id = "my_connector_id"
50
+ *
51
+ * sync_frequency = "360"
52
+ *
53
+ * paused = false
54
+ *
55
+ * pause_after_trial = true
56
+ *
57
+ * schedule_type = "auto"
58
+ *
59
+ * }
60
+ *
61
+ * -> NOTE: You can't have several resources managing the same `connector_id`. They will be in conflict ater each `apply`.
62
+ */
63
+ export declare class ConnectorSchedule extends pulumi.CustomResource {
64
+ /**
65
+ * Get an existing ConnectorSchedule resource's state with the given name, ID, and optional extra
66
+ * properties used to qualify the lookup.
67
+ *
68
+ * @param name The _unique_ name of the resulting resource.
69
+ * @param id The _unique_ provider ID of the resource to lookup.
70
+ * @param state Any extra arguments used during the lookup.
71
+ * @param opts Optional settings to control the behavior of the CustomResource.
72
+ */
73
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ConnectorScheduleState, opts?: pulumi.CustomResourceOptions): ConnectorSchedule;
74
+ /**
75
+ * Returns true if the given object is an instance of ConnectorSchedule. This is designed to work even
76
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
77
+ */
78
+ static isInstance(obj: any): obj is ConnectorSchedule;
79
+ /**
80
+ * The unique identifier for the connector within the Fivetran system.
81
+ */
82
+ readonly connectorId: pulumi.Output<string>;
83
+ /**
84
+ * The optional parameter that defines the sync start time when the sync frequency is already set or being set by the current request to 1440. It can be specified in one hour increments starting from 00:00 to 23:00. If not specified, we will use [the baseline sync start time](https://fivetran.com/docs/getting-started/syncoverview#syncfrequencyandscheduling). This parameter has no effect on the [0 to 60 minutes offset](https://fivetran.com/docs/getting-started/syncoverview#syncstarttimesandoffsets) used to determine the actual sync start time.
85
+ */
86
+ readonly dailySyncTime: pulumi.Output<string>;
87
+ /**
88
+ * Specifies whether the connector should be paused after the free trial period has ended.
89
+ */
90
+ readonly pauseAfterTrial: pulumi.Output<string>;
91
+ /**
92
+ * Specifies whether the connector is paused.
93
+ */
94
+ readonly paused: pulumi.Output<string>;
95
+ /**
96
+ * The connector schedule configuration type. Supported values: auto, manual.
97
+ */
98
+ readonly scheduleType: pulumi.Output<string>;
99
+ /**
100
+ * The connector sync frequency in minutes. Supported values: 1, 5, 15, 30, 60, 120, 180, 360, 480, 720, 1440.
101
+ */
102
+ readonly syncFrequency: pulumi.Output<string>;
103
+ /**
104
+ * Create a ConnectorSchedule resource with the given unique name, arguments, and options.
105
+ *
106
+ * @param name The _unique_ name of the resource.
107
+ * @param args The arguments to use to populate this resource's properties.
108
+ * @param opts A bag of options that control this resource's behavior.
109
+ */
110
+ constructor(name: string, args: ConnectorScheduleArgs, opts?: pulumi.CustomResourceOptions);
111
+ }
112
+ /**
113
+ * Input properties used for looking up and filtering ConnectorSchedule resources.
114
+ */
115
+ export interface ConnectorScheduleState {
116
+ /**
117
+ * The unique identifier for the connector within the Fivetran system.
118
+ */
119
+ connectorId?: pulumi.Input<string>;
120
+ /**
121
+ * The optional parameter that defines the sync start time when the sync frequency is already set or being set by the current request to 1440. It can be specified in one hour increments starting from 00:00 to 23:00. If not specified, we will use [the baseline sync start time](https://fivetran.com/docs/getting-started/syncoverview#syncfrequencyandscheduling). This parameter has no effect on the [0 to 60 minutes offset](https://fivetran.com/docs/getting-started/syncoverview#syncstarttimesandoffsets) used to determine the actual sync start time.
122
+ */
123
+ dailySyncTime?: pulumi.Input<string>;
124
+ /**
125
+ * Specifies whether the connector should be paused after the free trial period has ended.
126
+ */
127
+ pauseAfterTrial?: pulumi.Input<string>;
128
+ /**
129
+ * Specifies whether the connector is paused.
130
+ */
131
+ paused?: pulumi.Input<string>;
132
+ /**
133
+ * The connector schedule configuration type. Supported values: auto, manual.
134
+ */
135
+ scheduleType?: pulumi.Input<string>;
136
+ /**
137
+ * The connector sync frequency in minutes. Supported values: 1, 5, 15, 30, 60, 120, 180, 360, 480, 720, 1440.
138
+ */
139
+ syncFrequency?: pulumi.Input<string>;
140
+ }
141
+ /**
142
+ * The set of arguments for constructing a ConnectorSchedule resource.
143
+ */
144
+ export interface ConnectorScheduleArgs {
145
+ /**
146
+ * The unique identifier for the connector within the Fivetran system.
147
+ */
148
+ connectorId: pulumi.Input<string>;
149
+ /**
150
+ * The optional parameter that defines the sync start time when the sync frequency is already set or being set by the current request to 1440. It can be specified in one hour increments starting from 00:00 to 23:00. If not specified, we will use [the baseline sync start time](https://fivetran.com/docs/getting-started/syncoverview#syncfrequencyandscheduling). This parameter has no effect on the [0 to 60 minutes offset](https://fivetran.com/docs/getting-started/syncoverview#syncstarttimesandoffsets) used to determine the actual sync start time.
151
+ */
152
+ dailySyncTime?: pulumi.Input<string>;
153
+ /**
154
+ * Specifies whether the connector should be paused after the free trial period has ended.
155
+ */
156
+ pauseAfterTrial?: pulumi.Input<string>;
157
+ /**
158
+ * Specifies whether the connector is paused.
159
+ */
160
+ paused?: pulumi.Input<string>;
161
+ /**
162
+ * The connector schedule configuration type. Supported values: auto, manual.
163
+ */
164
+ scheduleType?: pulumi.Input<string>;
165
+ /**
166
+ * The connector sync frequency in minutes. Supported values: 1, 5, 15, 30, 60, 120, 180, 360, 480, 720, 1440.
167
+ */
168
+ syncFrequency?: pulumi.Input<string>;
169
+ }
@@ -0,0 +1,123 @@
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.ConnectorSchedule = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * -This resource allows you to manage connectors schedule: pause/unpause connector, set dailySyncTime and sync_frequency.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as fivetran from "@ryan-pip/pulumi-fivetran";
16
+ *
17
+ * const myConnectorSchedule = new fivetran.ConnectorSchedule("myConnectorSchedule", {
18
+ * connectorId: fivetran_connector.my_connector.id,
19
+ * syncFrequency: "1440",
20
+ * dailySyncTime: "03:00",
21
+ * paused: "false",
22
+ * pauseAfterTrial: "true",
23
+ * scheduleType: "auto",
24
+ * });
25
+ * ```
26
+ *
27
+ * ## Import
28
+ *
29
+ * You don't need to import this resource as it is synthetic.
30
+ *
31
+ * To fetch schedule values from existing connector use `fivetran_connector` data source:
32
+ *
33
+ * hcl
34
+ *
35
+ * data "fivetran_connector" "my_connector" {
36
+ *
37
+ * id = "my_connector_id"
38
+ *
39
+ * }
40
+ *
41
+ * now you can use schedule values from this data_source:
42
+ *
43
+ * sync_frequency = data.fivetran_connector.my_connector.sync_frequency
44
+ *
45
+ * paused = data.fivetran_connector.my_connector.paused
46
+ *
47
+ * This resource manages settings for already existing connector instance and doesn't create a new one.
48
+ *
49
+ * If you already have an existing connector with id = `my_connector_id` just define `fivetran_connector_schedule` resource:
50
+ *
51
+ * hcl
52
+ *
53
+ * resource "fivetran_connector_schedule" "my_connector_schedule" {
54
+ *
55
+ * connector_id = "my_connector_id"
56
+ *
57
+ * sync_frequency = "360"
58
+ *
59
+ * paused = false
60
+ *
61
+ * pause_after_trial = true
62
+ *
63
+ * schedule_type = "auto"
64
+ *
65
+ * }
66
+ *
67
+ * -> NOTE: You can't have several resources managing the same `connector_id`. They will be in conflict ater each `apply`.
68
+ */
69
+ class ConnectorSchedule extends pulumi.CustomResource {
70
+ /**
71
+ * Get an existing ConnectorSchedule resource's state with the given name, ID, and optional extra
72
+ * properties used to qualify the lookup.
73
+ *
74
+ * @param name The _unique_ name of the resulting resource.
75
+ * @param id The _unique_ provider ID of the resource to lookup.
76
+ * @param state Any extra arguments used during the lookup.
77
+ * @param opts Optional settings to control the behavior of the CustomResource.
78
+ */
79
+ static get(name, id, state, opts) {
80
+ return new ConnectorSchedule(name, state, Object.assign(Object.assign({}, opts), { id: id }));
81
+ }
82
+ /**
83
+ * Returns true if the given object is an instance of ConnectorSchedule. This is designed to work even
84
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
85
+ */
86
+ static isInstance(obj) {
87
+ if (obj === undefined || obj === null) {
88
+ return false;
89
+ }
90
+ return obj['__pulumiType'] === ConnectorSchedule.__pulumiType;
91
+ }
92
+ constructor(name, argsOrState, opts) {
93
+ let resourceInputs = {};
94
+ opts = opts || {};
95
+ if (opts.id) {
96
+ const state = argsOrState;
97
+ resourceInputs["connectorId"] = state ? state.connectorId : undefined;
98
+ resourceInputs["dailySyncTime"] = state ? state.dailySyncTime : undefined;
99
+ resourceInputs["pauseAfterTrial"] = state ? state.pauseAfterTrial : undefined;
100
+ resourceInputs["paused"] = state ? state.paused : undefined;
101
+ resourceInputs["scheduleType"] = state ? state.scheduleType : undefined;
102
+ resourceInputs["syncFrequency"] = state ? state.syncFrequency : undefined;
103
+ }
104
+ else {
105
+ const args = argsOrState;
106
+ if ((!args || args.connectorId === undefined) && !opts.urn) {
107
+ throw new Error("Missing required property 'connectorId'");
108
+ }
109
+ resourceInputs["connectorId"] = args ? args.connectorId : undefined;
110
+ resourceInputs["dailySyncTime"] = args ? args.dailySyncTime : undefined;
111
+ resourceInputs["pauseAfterTrial"] = args ? args.pauseAfterTrial : undefined;
112
+ resourceInputs["paused"] = args ? args.paused : undefined;
113
+ resourceInputs["scheduleType"] = args ? args.scheduleType : undefined;
114
+ resourceInputs["syncFrequency"] = args ? args.syncFrequency : undefined;
115
+ }
116
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
117
+ super(ConnectorSchedule.__pulumiType, name, resourceInputs, opts);
118
+ }
119
+ }
120
+ exports.ConnectorSchedule = ConnectorSchedule;
121
+ /** @internal */
122
+ ConnectorSchedule.__pulumiType = 'fivetran:index/connectorSchedule:ConnectorSchedule';
123
+ //# sourceMappingURL=connectorSchedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectorSchedule.js","sourceRoot":"","sources":["../connectorSchedule.ts"],"names":[],"mappings":"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"}