@pulumi/f5bigip 3.4.1

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 (219) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +60 -0
  3. package/as3.d.ts +575 -0
  4. package/as3.js +524 -0
  5. package/as3.js.map +1 -0
  6. package/bigIqAs3.d.ts +153 -0
  7. package/bigIqAs3.js +97 -0
  8. package/bigIqAs3.js.map +1 -0
  9. package/cm/device.d.ts +102 -0
  10. package/cm/device.js +80 -0
  11. package/cm/device.js.map +1 -0
  12. package/cm/deviceGroup.d.ts +182 -0
  13. package/cm/deviceGroup.js +93 -0
  14. package/cm/deviceGroup.js.map +1 -0
  15. package/cm/index.d.ts +2 -0
  16. package/cm/index.js +31 -0
  17. package/cm/index.js.map +1 -0
  18. package/command.d.ts +80 -0
  19. package/command.js +74 -0
  20. package/command.js.map +1 -0
  21. package/commonLicenseManageBigIq.d.ts +291 -0
  22. package/commonLicenseManageBigIq.js +158 -0
  23. package/commonLicenseManageBigIq.js.map +1 -0
  24. package/config/index.d.ts +1 -0
  25. package/config/index.js +10 -0
  26. package/config/index.js.map +1 -0
  27. package/config/vars.d.ts +32 -0
  28. package/config/vars.js +39 -0
  29. package/config/vars.js.map +1 -0
  30. package/do.d.ts +95 -0
  31. package/do.js +74 -0
  32. package/do.js.map +1 -0
  33. package/eventServiceDiscovery.d.ts +61 -0
  34. package/eventServiceDiscovery.js +55 -0
  35. package/eventServiceDiscovery.js.map +1 -0
  36. package/fastApplication.d.ts +92 -0
  37. package/fastApplication.js +75 -0
  38. package/fastApplication.js.map +1 -0
  39. package/fastTemplate.d.ts +76 -0
  40. package/fastTemplate.js +64 -0
  41. package/fastTemplate.js.map +1 -0
  42. package/index.d.ts +21 -0
  43. package/index.js +107 -0
  44. package/index.js.map +1 -0
  45. package/ipsecPolicy.d.ts +214 -0
  46. package/ipsecPolicy.js +100 -0
  47. package/ipsecPolicy.js.map +1 -0
  48. package/ltm/dataGroup.d.ts +100 -0
  49. package/ltm/dataGroup.js +87 -0
  50. package/ltm/dataGroup.js.map +1 -0
  51. package/ltm/getDataGroup.d.ts +58 -0
  52. package/ltm/getDataGroup.js +37 -0
  53. package/ltm/getDataGroup.js.map +1 -0
  54. package/ltm/getIrule.d.ts +53 -0
  55. package/ltm/getIrule.js +37 -0
  56. package/ltm/getIrule.js.map +1 -0
  57. package/ltm/getMonitor.d.ts +81 -0
  58. package/ltm/getMonitor.js +35 -0
  59. package/ltm/getMonitor.js.map +1 -0
  60. package/ltm/getNode.d.ts +81 -0
  61. package/ltm/getNode.js +27 -0
  62. package/ltm/getNode.js.map +1 -0
  63. package/ltm/getPool.d.ts +45 -0
  64. package/ltm/getPool.js +35 -0
  65. package/ltm/getPool.js.map +1 -0
  66. package/ltm/index.d.ts +30 -0
  67. package/ltm/index.js +151 -0
  68. package/ltm/index.js.map +1 -0
  69. package/ltm/irule.d.ts +65 -0
  70. package/ltm/irule.js +63 -0
  71. package/ltm/irule.js.map +1 -0
  72. package/ltm/monitor.d.ts +341 -0
  73. package/ltm/monitor.js +139 -0
  74. package/ltm/monitor.js.map +1 -0
  75. package/ltm/node.d.ts +186 -0
  76. package/ltm/node.js +102 -0
  77. package/ltm/node.js.map +1 -0
  78. package/ltm/persistenceProfileCookie.d.ts +309 -0
  79. package/ltm/persistenceProfileCookie.js +153 -0
  80. package/ltm/persistenceProfileCookie.js.map +1 -0
  81. package/ltm/persistenceProfileDstAddr.d.ts +206 -0
  82. package/ltm/persistenceProfileDstAddr.js +117 -0
  83. package/ltm/persistenceProfileDstAddr.js.map +1 -0
  84. package/ltm/persistenceProfileSrcAddr.d.ts +225 -0
  85. package/ltm/persistenceProfileSrcAddr.js +126 -0
  86. package/ltm/persistenceProfileSrcAddr.js.map +1 -0
  87. package/ltm/persistenceProfileSsl.d.ts +177 -0
  88. package/ltm/persistenceProfileSsl.js +111 -0
  89. package/ltm/persistenceProfileSsl.js.map +1 -0
  90. package/ltm/policy.d.ts +143 -0
  91. package/ltm/policy.js +97 -0
  92. package/ltm/policy.js.map +1 -0
  93. package/ltm/pool.d.ts +179 -0
  94. package/ltm/pool.js +94 -0
  95. package/ltm/pool.js.map +1 -0
  96. package/ltm/poolAttachment.d.ts +197 -0
  97. package/ltm/poolAttachment.js +135 -0
  98. package/ltm/poolAttachment.js.map +1 -0
  99. package/ltm/profileClientSsl.d.ts +725 -0
  100. package/ltm/profileClientSsl.js +180 -0
  101. package/ltm/profileClientSsl.js.map +1 -0
  102. package/ltm/profileFastHttp.d.ts +194 -0
  103. package/ltm/profileFastHttp.js +99 -0
  104. package/ltm/profileFastHttp.js.map +1 -0
  105. package/ltm/profileFastL4.d.ts +188 -0
  106. package/ltm/profileFastL4.js +103 -0
  107. package/ltm/profileFastL4.js.map +1 -0
  108. package/ltm/profileFtp.d.ts +285 -0
  109. package/ltm/profileFtp.js +134 -0
  110. package/ltm/profileFtp.js.map +1 -0
  111. package/ltm/profileHttp.d.ts +397 -0
  112. package/ltm/profileHttp.js +136 -0
  113. package/ltm/profileHttp.js.map +1 -0
  114. package/ltm/profileHttp2.d.ts +223 -0
  115. package/ltm/profileHttp2.js +108 -0
  116. package/ltm/profileHttp2.js.map +1 -0
  117. package/ltm/profileHttpCompress.d.ts +132 -0
  118. package/ltm/profileHttpCompress.js +87 -0
  119. package/ltm/profileHttpCompress.js.map +1 -0
  120. package/ltm/profileOneConnect.d.ts +180 -0
  121. package/ltm/profileOneConnect.js +95 -0
  122. package/ltm/profileOneConnect.js.map +1 -0
  123. package/ltm/profileServerSsl.d.ts +676 -0
  124. package/ltm/profileServerSsl.js +170 -0
  125. package/ltm/profileServerSsl.js.map +1 -0
  126. package/ltm/profileTcp.d.ts +179 -0
  127. package/ltm/profileTcp.js +94 -0
  128. package/ltm/profileTcp.js.map +1 -0
  129. package/ltm/snat.d.ts +199 -0
  130. package/ltm/snat.js +106 -0
  131. package/ltm/snat.js.map +1 -0
  132. package/ltm/snatPool.d.ts +80 -0
  133. package/ltm/snatPool.js +78 -0
  134. package/ltm/snatPool.js.map +1 -0
  135. package/ltm/virtualAddress.d.ts +149 -0
  136. package/ltm/virtualAddress.js +84 -0
  137. package/ltm/virtualAddress.js.map +1 -0
  138. package/ltm/virtualServer.d.ts +355 -0
  139. package/ltm/virtualServer.js +153 -0
  140. package/ltm/virtualServer.js.map +1 -0
  141. package/net/index.d.ts +3 -0
  142. package/net/index.js +36 -0
  143. package/net/index.js.map +1 -0
  144. package/net/route.d.ts +114 -0
  145. package/net/route.js +82 -0
  146. package/net/route.js.map +1 -0
  147. package/net/selfIp.d.ts +105 -0
  148. package/net/selfIp.js +86 -0
  149. package/net/selfIp.js.map +1 -0
  150. package/net/vlan.d.ts +94 -0
  151. package/net/vlan.js +78 -0
  152. package/net/vlan.js.map +1 -0
  153. package/netIkePeer.d.ts +460 -0
  154. package/netIkePeer.js +138 -0
  155. package/netIkePeer.js.map +1 -0
  156. package/netTunnel.d.ts +256 -0
  157. package/netTunnel.js +107 -0
  158. package/netTunnel.js.map +1 -0
  159. package/package.json +26 -0
  160. package/package.json.bak +25 -0
  161. package/package.json.dev +25 -0
  162. package/provider.d.ts +83 -0
  163. package/provider.js +53 -0
  164. package/provider.js.map +1 -0
  165. package/scripts/install-pulumi-plugin.js +21 -0
  166. package/ssl/certificate.d.ts +102 -0
  167. package/ssl/certificate.js +80 -0
  168. package/ssl/certificate.js.map +1 -0
  169. package/ssl/getCertificate.d.ts +50 -0
  170. package/ssl/getCertificate.js +37 -0
  171. package/ssl/getCertificate.js.map +1 -0
  172. package/ssl/getVWanConfig.d.ts +80 -0
  173. package/ssl/getVWanConfig.js +50 -0
  174. package/ssl/getVWanConfig.js.map +1 -0
  175. package/ssl/index.d.ts +4 -0
  176. package/ssl/index.js +33 -0
  177. package/ssl/index.js.map +1 -0
  178. package/ssl/key.d.ts +102 -0
  179. package/ssl/key.js +80 -0
  180. package/ssl/key.js.map +1 -0
  181. package/sys/bigIpLicense.d.ts +60 -0
  182. package/sys/bigIpLicense.js +58 -0
  183. package/sys/bigIpLicense.js.map +1 -0
  184. package/sys/dns.d.ts +101 -0
  185. package/sys/dns.js +76 -0
  186. package/sys/dns.js.map +1 -0
  187. package/sys/iapp.d.ts +241 -0
  188. package/sys/iapp.js +118 -0
  189. package/sys/iapp.js.map +1 -0
  190. package/sys/index.d.ts +7 -0
  191. package/sys/index.js +56 -0
  192. package/sys/index.js.map +1 -0
  193. package/sys/ntp.d.ts +89 -0
  194. package/sys/ntp.js +74 -0
  195. package/sys/ntp.js.map +1 -0
  196. package/sys/provision.d.ts +126 -0
  197. package/sys/provision.js +81 -0
  198. package/sys/provision.js.map +1 -0
  199. package/sys/snmp.d.ts +87 -0
  200. package/sys/snmp.js +69 -0
  201. package/sys/snmp.js.map +1 -0
  202. package/sys/snmpTraps.d.ts +221 -0
  203. package/sys/snmpTraps.js +93 -0
  204. package/sys/snmpTraps.js.map +1 -0
  205. package/trafficSelector.d.ts +177 -0
  206. package/trafficSelector.js +95 -0
  207. package/trafficSelector.js.map +1 -0
  208. package/types/index.d.ts +3 -0
  209. package/types/index.js +10 -0
  210. package/types/index.js.map +1 -0
  211. package/types/input.d.ts +353 -0
  212. package/types/input.js +5 -0
  213. package/types/input.js.map +1 -0
  214. package/types/output.d.ts +352 -0
  215. package/types/output.js +5 -0
  216. package/types/output.js.map +1 -0
  217. package/utilities.d.ts +4 -0
  218. package/utilities.js +51 -0
  219. package/utilities.js.map +1 -0
@@ -0,0 +1,102 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * `f5bigip.ssl.Certificate` This resource will import SSL certificates on BIG-IP LTM.
4
+ * Certificates can be imported from certificate files on the local disk, in PEM format
5
+ *
6
+ * ## Example Usage
7
+ *
8
+ * ```typescript
9
+ * import * as pulumi from "@pulumi/pulumi";
10
+ * import * as f5bigip from "@pulumi/f5bigip";
11
+ * import * from "fs";
12
+ *
13
+ * const test_cert = new f5bigip.ssl.Certificate("test-cert", {
14
+ * name: "servercert.crt",
15
+ * content: fs.readFileSync("servercert.crt"),
16
+ * partition: "Common",
17
+ * });
18
+ * ```
19
+ */
20
+ export declare class Certificate extends pulumi.CustomResource {
21
+ /**
22
+ * Get an existing Certificate resource's state with the given name, ID, and optional extra
23
+ * properties used to qualify the lookup.
24
+ *
25
+ * @param name The _unique_ name of the resulting resource.
26
+ * @param id The _unique_ provider ID of the resource to lookup.
27
+ * @param state Any extra arguments used during the lookup.
28
+ * @param opts Optional settings to control the behavior of the CustomResource.
29
+ */
30
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: CertificateState, opts?: pulumi.CustomResourceOptions): Certificate;
31
+ /**
32
+ * Returns true if the given object is an instance of Certificate. This is designed to work even
33
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
34
+ */
35
+ static isInstance(obj: any): obj is Certificate;
36
+ /**
37
+ * Content of certificate on Disk
38
+ */
39
+ readonly content: pulumi.Output<string>;
40
+ /**
41
+ * Full Path Name of ssl certificate
42
+ */
43
+ readonly fullPath: pulumi.Output<string>;
44
+ /**
45
+ * Name of the SSL Certificate to be Imported on to BIGIP
46
+ */
47
+ readonly name: pulumi.Output<string>;
48
+ /**
49
+ * Partition of ssl certificate
50
+ */
51
+ readonly partition: pulumi.Output<string | undefined>;
52
+ /**
53
+ * Create a Certificate resource with the given unique name, arguments, and options.
54
+ *
55
+ * @param name The _unique_ name of the resource.
56
+ * @param args The arguments to use to populate this resource's properties.
57
+ * @param opts A bag of options that control this resource's behavior.
58
+ */
59
+ constructor(name: string, args: CertificateArgs, opts?: pulumi.CustomResourceOptions);
60
+ }
61
+ /**
62
+ * Input properties used for looking up and filtering Certificate resources.
63
+ */
64
+ export interface CertificateState {
65
+ /**
66
+ * Content of certificate on Disk
67
+ */
68
+ content?: pulumi.Input<string>;
69
+ /**
70
+ * Full Path Name of ssl certificate
71
+ */
72
+ fullPath?: pulumi.Input<string>;
73
+ /**
74
+ * Name of the SSL Certificate to be Imported on to BIGIP
75
+ */
76
+ name?: pulumi.Input<string>;
77
+ /**
78
+ * Partition of ssl certificate
79
+ */
80
+ partition?: pulumi.Input<string>;
81
+ }
82
+ /**
83
+ * The set of arguments for constructing a Certificate resource.
84
+ */
85
+ export interface CertificateArgs {
86
+ /**
87
+ * Content of certificate on Disk
88
+ */
89
+ content: pulumi.Input<string>;
90
+ /**
91
+ * Full Path Name of ssl certificate
92
+ */
93
+ fullPath?: pulumi.Input<string>;
94
+ /**
95
+ * Name of the SSL Certificate to be Imported on to BIGIP
96
+ */
97
+ name: pulumi.Input<string>;
98
+ /**
99
+ * Partition of ssl certificate
100
+ */
101
+ partition?: pulumi.Input<string>;
102
+ }
@@ -0,0 +1,80 @@
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
+ const pulumi = require("@pulumi/pulumi");
6
+ const utilities = require("../utilities");
7
+ /**
8
+ * `f5bigip.ssl.Certificate` This resource will import SSL certificates on BIG-IP LTM.
9
+ * Certificates can be imported from certificate files on the local disk, in PEM format
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as f5bigip from "@pulumi/f5bigip";
16
+ * import * from "fs";
17
+ *
18
+ * const test_cert = new f5bigip.ssl.Certificate("test-cert", {
19
+ * name: "servercert.crt",
20
+ * content: fs.readFileSync("servercert.crt"),
21
+ * partition: "Common",
22
+ * });
23
+ * ```
24
+ */
25
+ class Certificate extends pulumi.CustomResource {
26
+ constructor(name, argsOrState, opts) {
27
+ let inputs = {};
28
+ opts = opts || {};
29
+ if (opts.id) {
30
+ const state = argsOrState;
31
+ inputs["content"] = state ? state.content : undefined;
32
+ inputs["fullPath"] = state ? state.fullPath : undefined;
33
+ inputs["name"] = state ? state.name : undefined;
34
+ inputs["partition"] = state ? state.partition : undefined;
35
+ }
36
+ else {
37
+ const args = argsOrState;
38
+ if ((!args || args.content === undefined) && !opts.urn) {
39
+ throw new Error("Missing required property 'content'");
40
+ }
41
+ if ((!args || args.name === undefined) && !opts.urn) {
42
+ throw new Error("Missing required property 'name'");
43
+ }
44
+ inputs["content"] = args ? args.content : undefined;
45
+ inputs["fullPath"] = args ? args.fullPath : undefined;
46
+ inputs["name"] = args ? args.name : undefined;
47
+ inputs["partition"] = args ? args.partition : undefined;
48
+ }
49
+ if (!opts.version) {
50
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
51
+ }
52
+ super(Certificate.__pulumiType, name, inputs, opts);
53
+ }
54
+ /**
55
+ * Get an existing Certificate resource's state with the given name, ID, and optional extra
56
+ * properties used to qualify the lookup.
57
+ *
58
+ * @param name The _unique_ name of the resulting resource.
59
+ * @param id The _unique_ provider ID of the resource to lookup.
60
+ * @param state Any extra arguments used during the lookup.
61
+ * @param opts Optional settings to control the behavior of the CustomResource.
62
+ */
63
+ static get(name, id, state, opts) {
64
+ return new Certificate(name, state, Object.assign(Object.assign({}, opts), { id: id }));
65
+ }
66
+ /**
67
+ * Returns true if the given object is an instance of Certificate. This is designed to work even
68
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
69
+ */
70
+ static isInstance(obj) {
71
+ if (obj === undefined || obj === null) {
72
+ return false;
73
+ }
74
+ return obj['__pulumiType'] === Certificate.__pulumiType;
75
+ }
76
+ }
77
+ exports.Certificate = Certificate;
78
+ /** @internal */
79
+ Certificate.__pulumiType = 'f5bigip:ssl/certificate:Certificate';
80
+ //# sourceMappingURL=certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate.js","sourceRoot":"","sources":["../../ssl/certificate.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;AAEjF,yCAAyC;AACzC,0CAA0C;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,WAAY,SAAQ,MAAM,CAAC,cAAc;IAqDlD,YAAY,IAAY,EAAE,WAAgD,EAAE,IAAmC;QAC3G,IAAI,MAAM,GAAkB,EAAE,CAAC;QAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA2C,CAAC;YAC1D,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;SAC7D;aAAM;YACH,MAAM,IAAI,GAAG,WAA0C,CAAC;YACxD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;aACvD;YACD,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACpD,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3D;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,EAAC,CAAC,CAAC;SACxE;QACD,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IA9ED;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAwB,EAAE,IAAmC;QACtH,OAAO,IAAI,WAAW,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAClE,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,WAAW,CAAC,YAAY,CAAC;IAC5D,CAAC;;AA1BL,kCAgFC;AAlEG,gBAAgB;AACO,wBAAY,GAAG,qCAAqC,CAAC"}
@@ -0,0 +1,50 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * Use this data source (`f5bigip.ssl.Certificate`) to get the ssl-certificate details available on BIG-IP
4
+ *
5
+ * ## Example Usage
6
+ *
7
+ * ```typescript
8
+ * import * as pulumi from "@pulumi/pulumi";
9
+ * import * as f5bigip from "@pulumi/f5bigip";
10
+ *
11
+ * const test = pulumi.output(f5bigip.ssl.getCertificate({
12
+ * name: "terraform_ssl_certificate",
13
+ * partition: "Common",
14
+ * }));
15
+ *
16
+ * export const bigipSslCertificateName = test.name;
17
+ * ```
18
+ */
19
+ export declare function getCertificate(args: GetCertificateArgs, opts?: pulumi.InvokeOptions): Promise<GetCertificateResult>;
20
+ /**
21
+ * A collection of arguments for invoking getCertificate.
22
+ */
23
+ export interface GetCertificateArgs {
24
+ /**
25
+ * Name of the ssl_certificate
26
+ */
27
+ name: string;
28
+ /**
29
+ * partition of the ltm ssl_certificate
30
+ */
31
+ partition: string;
32
+ }
33
+ /**
34
+ * A collection of values returned by getCertificate.
35
+ */
36
+ export interface GetCertificateResult {
37
+ readonly certificate: string;
38
+ /**
39
+ * The provider-assigned unique ID for this managed resource.
40
+ */
41
+ readonly id: string;
42
+ /**
43
+ * Name of sslCertificate configured on bigip with full path
44
+ */
45
+ readonly name: string;
46
+ /**
47
+ * Bigip partition in which ssl-certificate is configured
48
+ */
49
+ readonly partition: string;
50
+ }
@@ -0,0 +1,37 @@
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
+ const pulumi = require("@pulumi/pulumi");
6
+ const utilities = require("../utilities");
7
+ /**
8
+ * Use this data source (`f5bigip.ssl.Certificate`) to get the ssl-certificate details available on BIG-IP
9
+ *
10
+ * ## Example Usage
11
+ *
12
+ * ```typescript
13
+ * import * as pulumi from "@pulumi/pulumi";
14
+ * import * as f5bigip from "@pulumi/f5bigip";
15
+ *
16
+ * const test = pulumi.output(f5bigip.ssl.getCertificate({
17
+ * name: "terraform_ssl_certificate",
18
+ * partition: "Common",
19
+ * }));
20
+ *
21
+ * export const bigipSslCertificateName = test.name;
22
+ * ```
23
+ */
24
+ function getCertificate(args, opts) {
25
+ if (!opts) {
26
+ opts = {};
27
+ }
28
+ if (!opts.version) {
29
+ opts.version = utilities.getVersion();
30
+ }
31
+ return pulumi.runtime.invoke("f5bigip:ssl/getCertificate:getCertificate", {
32
+ "name": args.name,
33
+ "partition": args.partition,
34
+ }, opts);
35
+ }
36
+ exports.getCertificate = getCertificate;
37
+ //# sourceMappingURL=getCertificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCertificate.js","sourceRoot":"","sources":["../../ssl/getCertificate.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;AAEjF,yCAAyC;AAEzC,0CAA0C;AAE1C;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,cAAc,CAAC,IAAwB,EAAE,IAA2B;IAChF,IAAI,CAAC,IAAI,EAAE;QACP,IAAI,GAAG,EAAE,CAAA;KACZ;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;KACzC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,2CAA2C,EAAE;QACtE,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,WAAW,EAAE,IAAI,CAAC,SAAS;KAC9B,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAZD,wCAYC"}
@@ -0,0 +1,80 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * Use this data source (`f5bigip.ssl.getVWanConfig`) to get the vWAN site config from Azure VWAN Site
4
+ *
5
+ * ## Example Usage
6
+ *
7
+ * ```typescript
8
+ * import * as pulumi from "@pulumi/pulumi";
9
+ * import * as f5bigip from "@pulumi/f5bigip";
10
+ *
11
+ * const vwanconfig = pulumi.output(f5bigip.ssl.getVWanConfig({
12
+ * azureVwanName: "azurevwan-bigip-vwan-9c8d",
13
+ * azureVwanResourcegroup: "azurevwan-bigip-rg-9c8d",
14
+ * azureVwanVpnsite: "azurevwan-bigip-vsite-9c8d",
15
+ * }));
16
+ * ```
17
+ * ## Pre-required Environment Settings:
18
+ *
19
+ * * `AZURE_CLIENT_ID` - (Required) Set this environment variable with the Azure app client ID to use.
20
+ *
21
+ * * `AZURE_CLIENT_SECRET` - (Required) Set this environment variable with the Azure app secret to use.
22
+ *
23
+ * * `AZURE_SUBSCRIPTION_ID` - (Required) Set this environment variable with the Azure subscription ID to use.
24
+ *
25
+ * * `AZURE_TENANT_ID` - (Required) Set this environment variable with the Tenant ID to which to authenticate.
26
+ *
27
+ * * `STORAGE_ACCOUNT_NAME` - (Required) Set this environment variable with the storage account for download config.
28
+ *
29
+ * * `STORAGE_ACCOUNT_KEY` - (Required) Specifies the storage account key to authenticate,set this Environment variable with account key value.
30
+ */
31
+ export declare function getVWanConfig(args: GetVWanConfigArgs, opts?: pulumi.InvokeOptions): Promise<GetVWanConfigResult>;
32
+ /**
33
+ * A collection of arguments for invoking getVWanConfig.
34
+ */
35
+ export interface GetVWanConfigArgs {
36
+ /**
37
+ * Name of the Azure vWAN Name
38
+ */
39
+ azureVwanName: string;
40
+ /**
41
+ * Name of the Azure vWAN resource group
42
+ */
43
+ azureVwanResourcegroup: string;
44
+ /**
45
+ * Name of the Azure vWAN VPN site from which configuration to be download
46
+ */
47
+ azureVwanVpnsite: string;
48
+ }
49
+ /**
50
+ * A collection of values returned by getVWanConfig.
51
+ */
52
+ export interface GetVWanConfigResult {
53
+ readonly azureVwanName: string;
54
+ readonly azureVwanResourcegroup: string;
55
+ readonly azureVwanVpnsite: string;
56
+ /**
57
+ * (type `string`) provides IP address of BIGIP G/W for IPSec Endpoint.
58
+ */
59
+ readonly bigipGwIp: string;
60
+ /**
61
+ * (type `string`) Provides IP Address space used on vWAN Hub.
62
+ */
63
+ readonly hubAddressSpace: string;
64
+ /**
65
+ * (type `list`) Provides Subnets connected to vWAN Hub.
66
+ */
67
+ readonly hubConnectedSubnets: string[];
68
+ /**
69
+ * The provider-assigned unique ID for this managed resource.
70
+ */
71
+ readonly id: string;
72
+ /**
73
+ * (type `string`) provides pre-shared-key used for IPSec Tunnel creation.
74
+ */
75
+ readonly presharedKey: string;
76
+ /**
77
+ * (type `list`) Provides vWAN Gateway Address for IPSec End point
78
+ */
79
+ readonly vwanGwAddresses: string[];
80
+ }
@@ -0,0 +1,50 @@
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
+ const pulumi = require("@pulumi/pulumi");
6
+ const utilities = require("../utilities");
7
+ /**
8
+ * Use this data source (`f5bigip.ssl.getVWanConfig`) to get the vWAN site config from Azure VWAN Site
9
+ *
10
+ * ## Example Usage
11
+ *
12
+ * ```typescript
13
+ * import * as pulumi from "@pulumi/pulumi";
14
+ * import * as f5bigip from "@pulumi/f5bigip";
15
+ *
16
+ * const vwanconfig = pulumi.output(f5bigip.ssl.getVWanConfig({
17
+ * azureVwanName: "azurevwan-bigip-vwan-9c8d",
18
+ * azureVwanResourcegroup: "azurevwan-bigip-rg-9c8d",
19
+ * azureVwanVpnsite: "azurevwan-bigip-vsite-9c8d",
20
+ * }));
21
+ * ```
22
+ * ## Pre-required Environment Settings:
23
+ *
24
+ * * `AZURE_CLIENT_ID` - (Required) Set this environment variable with the Azure app client ID to use.
25
+ *
26
+ * * `AZURE_CLIENT_SECRET` - (Required) Set this environment variable with the Azure app secret to use.
27
+ *
28
+ * * `AZURE_SUBSCRIPTION_ID` - (Required) Set this environment variable with the Azure subscription ID to use.
29
+ *
30
+ * * `AZURE_TENANT_ID` - (Required) Set this environment variable with the Tenant ID to which to authenticate.
31
+ *
32
+ * * `STORAGE_ACCOUNT_NAME` - (Required) Set this environment variable with the storage account for download config.
33
+ *
34
+ * * `STORAGE_ACCOUNT_KEY` - (Required) Specifies the storage account key to authenticate,set this Environment variable with account key value.
35
+ */
36
+ function getVWanConfig(args, opts) {
37
+ if (!opts) {
38
+ opts = {};
39
+ }
40
+ if (!opts.version) {
41
+ opts.version = utilities.getVersion();
42
+ }
43
+ return pulumi.runtime.invoke("f5bigip:ssl/getVWanConfig:getVWanConfig", {
44
+ "azureVwanName": args.azureVwanName,
45
+ "azureVwanResourcegroup": args.azureVwanResourcegroup,
46
+ "azureVwanVpnsite": args.azureVwanVpnsite,
47
+ }, opts);
48
+ }
49
+ exports.getVWanConfig = getVWanConfig;
50
+ //# sourceMappingURL=getVWanConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVWanConfig.js","sourceRoot":"","sources":["../../ssl/getVWanConfig.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;AAEjF,yCAAyC;AAEzC,0CAA0C;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,SAAgB,aAAa,CAAC,IAAuB,EAAE,IAA2B;IAC9E,IAAI,CAAC,IAAI,EAAE;QACP,IAAI,GAAG,EAAE,CAAA;KACZ;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;KACzC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,yCAAyC,EAAE;QACpE,eAAe,EAAE,IAAI,CAAC,aAAa;QACnC,wBAAwB,EAAE,IAAI,CAAC,sBAAsB;QACrD,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;KAC5C,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAbD,sCAaC"}
package/ssl/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from "./certificate";
2
+ export * from "./getCertificate";
3
+ export * from "./getVWanConfig";
4
+ export * from "./key";
package/ssl/index.js ADDED
@@ -0,0 +1,33 @@
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
+ function __export(m) {
5
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
6
+ }
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ const pulumi = require("@pulumi/pulumi");
9
+ const utilities = require("../utilities");
10
+ // Export members:
11
+ __export(require("./certificate"));
12
+ __export(require("./getCertificate"));
13
+ __export(require("./getVWanConfig"));
14
+ __export(require("./key"));
15
+ // Import resources to register:
16
+ const certificate_1 = require("./certificate");
17
+ const key_1 = require("./key");
18
+ const _module = {
19
+ version: utilities.getVersion(),
20
+ construct: (name, type, urn) => {
21
+ switch (type) {
22
+ case "f5bigip:ssl/certificate:Certificate":
23
+ return new certificate_1.Certificate(name, undefined, { urn });
24
+ case "f5bigip:ssl/key:Key":
25
+ return new key_1.Key(name, undefined, { urn });
26
+ default:
27
+ throw new Error(`unknown resource type ${type}`);
28
+ }
29
+ },
30
+ };
31
+ pulumi.runtime.registerResourceModule("f5bigip", "ssl/certificate", _module);
32
+ pulumi.runtime.registerResourceModule("f5bigip", "ssl/key", _module);
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ssl/index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAE1C,kBAAkB;AAClB,mCAA8B;AAC9B,sCAAiC;AACjC,qCAAgC;AAChC,2BAAsB;AAEtB,gCAAgC;AAChC,+CAA4C;AAC5C,+BAA4B;AAE5B,MAAM,OAAO,GAAG;IACZ,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;IAC/B,SAAS,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAmB,EAAE;QACpE,QAAQ,IAAI,EAAE;YACV,KAAK,qCAAqC;gBACtC,OAAO,IAAI,yBAAW,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACzD,KAAK,qBAAqB;gBACtB,OAAO,IAAI,SAAG,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACjD;gBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;SACxD;IACL,CAAC;CACJ,CAAC;AACF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAC5E,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA"}
package/ssl/key.d.ts ADDED
@@ -0,0 +1,102 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * `f5bigip.ssl.Key` This resource will import SSL certificate key on BIG-IP LTM.
4
+ * Certificate key can be imported from certificate key files on the local disk, in PEM format
5
+ *
6
+ * ## Example Usage
7
+ *
8
+ * ```typescript
9
+ * import * as pulumi from "@pulumi/pulumi";
10
+ * import * as f5bigip from "@pulumi/f5bigip";
11
+ * import * from "fs";
12
+ *
13
+ * const test_key = new f5bigip.ssl.Key("test-key", {
14
+ * name: "serverkey.key",
15
+ * content: fs.readFileSync("serverkey.key"),
16
+ * partition: "Common",
17
+ * });
18
+ * ```
19
+ */
20
+ export declare class Key extends pulumi.CustomResource {
21
+ /**
22
+ * Get an existing Key resource's state with the given name, ID, and optional extra
23
+ * properties used to qualify the lookup.
24
+ *
25
+ * @param name The _unique_ name of the resulting resource.
26
+ * @param id The _unique_ provider ID of the resource to lookup.
27
+ * @param state Any extra arguments used during the lookup.
28
+ * @param opts Optional settings to control the behavior of the CustomResource.
29
+ */
30
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: KeyState, opts?: pulumi.CustomResourceOptions): Key;
31
+ /**
32
+ * Returns true if the given object is an instance of Key. This is designed to work even
33
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
34
+ */
35
+ static isInstance(obj: any): obj is Key;
36
+ /**
37
+ * Content of SSL certificate key present on local Disk
38
+ */
39
+ readonly content: pulumi.Output<string>;
40
+ /**
41
+ * Full Path Name of ssl key
42
+ */
43
+ readonly fullPath: pulumi.Output<string>;
44
+ /**
45
+ * Name of the SSL Certificate key to be Imported on to BIGIP
46
+ */
47
+ readonly name: pulumi.Output<string>;
48
+ /**
49
+ * Partition of ssl certificate key
50
+ */
51
+ readonly partition: pulumi.Output<string | undefined>;
52
+ /**
53
+ * Create a Key resource with the given unique name, arguments, and options.
54
+ *
55
+ * @param name The _unique_ name of the resource.
56
+ * @param args The arguments to use to populate this resource's properties.
57
+ * @param opts A bag of options that control this resource's behavior.
58
+ */
59
+ constructor(name: string, args: KeyArgs, opts?: pulumi.CustomResourceOptions);
60
+ }
61
+ /**
62
+ * Input properties used for looking up and filtering Key resources.
63
+ */
64
+ export interface KeyState {
65
+ /**
66
+ * Content of SSL certificate key present on local Disk
67
+ */
68
+ content?: pulumi.Input<string>;
69
+ /**
70
+ * Full Path Name of ssl key
71
+ */
72
+ fullPath?: pulumi.Input<string>;
73
+ /**
74
+ * Name of the SSL Certificate key to be Imported on to BIGIP
75
+ */
76
+ name?: pulumi.Input<string>;
77
+ /**
78
+ * Partition of ssl certificate key
79
+ */
80
+ partition?: pulumi.Input<string>;
81
+ }
82
+ /**
83
+ * The set of arguments for constructing a Key resource.
84
+ */
85
+ export interface KeyArgs {
86
+ /**
87
+ * Content of SSL certificate key present on local Disk
88
+ */
89
+ content: pulumi.Input<string>;
90
+ /**
91
+ * Full Path Name of ssl key
92
+ */
93
+ fullPath?: pulumi.Input<string>;
94
+ /**
95
+ * Name of the SSL Certificate key to be Imported on to BIGIP
96
+ */
97
+ name: pulumi.Input<string>;
98
+ /**
99
+ * Partition of ssl certificate key
100
+ */
101
+ partition?: pulumi.Input<string>;
102
+ }
package/ssl/key.js ADDED
@@ -0,0 +1,80 @@
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
+ const pulumi = require("@pulumi/pulumi");
6
+ const utilities = require("../utilities");
7
+ /**
8
+ * `f5bigip.ssl.Key` This resource will import SSL certificate key on BIG-IP LTM.
9
+ * Certificate key can be imported from certificate key files on the local disk, in PEM format
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as f5bigip from "@pulumi/f5bigip";
16
+ * import * from "fs";
17
+ *
18
+ * const test_key = new f5bigip.ssl.Key("test-key", {
19
+ * name: "serverkey.key",
20
+ * content: fs.readFileSync("serverkey.key"),
21
+ * partition: "Common",
22
+ * });
23
+ * ```
24
+ */
25
+ class Key extends pulumi.CustomResource {
26
+ constructor(name, argsOrState, opts) {
27
+ let inputs = {};
28
+ opts = opts || {};
29
+ if (opts.id) {
30
+ const state = argsOrState;
31
+ inputs["content"] = state ? state.content : undefined;
32
+ inputs["fullPath"] = state ? state.fullPath : undefined;
33
+ inputs["name"] = state ? state.name : undefined;
34
+ inputs["partition"] = state ? state.partition : undefined;
35
+ }
36
+ else {
37
+ const args = argsOrState;
38
+ if ((!args || args.content === undefined) && !opts.urn) {
39
+ throw new Error("Missing required property 'content'");
40
+ }
41
+ if ((!args || args.name === undefined) && !opts.urn) {
42
+ throw new Error("Missing required property 'name'");
43
+ }
44
+ inputs["content"] = args ? args.content : undefined;
45
+ inputs["fullPath"] = args ? args.fullPath : undefined;
46
+ inputs["name"] = args ? args.name : undefined;
47
+ inputs["partition"] = args ? args.partition : undefined;
48
+ }
49
+ if (!opts.version) {
50
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
51
+ }
52
+ super(Key.__pulumiType, name, inputs, opts);
53
+ }
54
+ /**
55
+ * Get an existing Key resource's state with the given name, ID, and optional extra
56
+ * properties used to qualify the lookup.
57
+ *
58
+ * @param name The _unique_ name of the resulting resource.
59
+ * @param id The _unique_ provider ID of the resource to lookup.
60
+ * @param state Any extra arguments used during the lookup.
61
+ * @param opts Optional settings to control the behavior of the CustomResource.
62
+ */
63
+ static get(name, id, state, opts) {
64
+ return new Key(name, state, Object.assign(Object.assign({}, opts), { id: id }));
65
+ }
66
+ /**
67
+ * Returns true if the given object is an instance of Key. This is designed to work even
68
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
69
+ */
70
+ static isInstance(obj) {
71
+ if (obj === undefined || obj === null) {
72
+ return false;
73
+ }
74
+ return obj['__pulumiType'] === Key.__pulumiType;
75
+ }
76
+ }
77
+ exports.Key = Key;
78
+ /** @internal */
79
+ Key.__pulumiType = 'f5bigip:ssl/key:Key';
80
+ //# sourceMappingURL=key.js.map
package/ssl/key.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../../ssl/key.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;AAEjF,yCAAyC;AACzC,0CAA0C;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,GAAI,SAAQ,MAAM,CAAC,cAAc;IAqD1C,YAAY,IAAY,EAAE,WAAgC,EAAE,IAAmC;QAC3F,IAAI,MAAM,GAAkB,EAAE,CAAC;QAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAmC,CAAC;YAClD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;SAC7D;aAAM;YACH,MAAM,IAAI,GAAG,WAAkC,CAAC;YAChD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;aACvD;YACD,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACpD,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3D;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,EAAC,CAAC,CAAC;SACxE;QACD,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IA9ED;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAgB,EAAE,IAAmC;QAC9G,OAAO,IAAI,GAAG,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC1D,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,GAAG,CAAC,YAAY,CAAC;IACpD,CAAC;;AA1BL,kBAgFC;AAlEG,gBAAgB;AACO,gBAAY,GAAG,qBAAqB,CAAC"}