@cdktf-providers/aviatrixsystems-aviatrix 8.1.10

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 (307) hide show
  1. package/LICENSE +355 -0
  2. package/README.md +19 -0
  3. package/dist/account/index.d.ts +762 -0
  4. package/dist/account/index.js +1600 -0
  5. package/dist/account-user/index.d.ts +74 -0
  6. package/dist/account-user/index.js +151 -0
  7. package/dist/aws-guard-duty/index.d.ts +75 -0
  8. package/dist/aws-guard-duty/index.js +154 -0
  9. package/dist/aws-peer/index.d.ts +126 -0
  10. package/dist/aws-peer/index.js +257 -0
  11. package/dist/aws-tgw/index.d.ts +129 -0
  12. package/dist/aws-tgw/index.js +267 -0
  13. package/dist/aws-tgw-connect/index.d.ts +86 -0
  14. package/dist/aws-tgw-connect/index.js +179 -0
  15. package/dist/aws-tgw-connect-peer/index.d.ts +126 -0
  16. package/dist/aws-tgw-connect-peer/index.js +258 -0
  17. package/dist/aws-tgw-directconnect/index.d.ts +105 -0
  18. package/dist/aws-tgw-directconnect/index.js +214 -0
  19. package/dist/aws-tgw-intra-domain-inspection/index.d.ts +74 -0
  20. package/dist/aws-tgw-intra-domain-inspection/index.js +151 -0
  21. package/dist/aws-tgw-network-domain/index.d.ts +97 -0
  22. package/dist/aws-tgw-network-domain/index.js +200 -0
  23. package/dist/aws-tgw-peering/index.d.ts +64 -0
  24. package/dist/aws-tgw-peering/index.js +131 -0
  25. package/dist/aws-tgw-peering-domain-conn/index.d.ts +84 -0
  26. package/dist/aws-tgw-peering-domain-conn/index.js +171 -0
  27. package/dist/aws-tgw-transit-gateway-attachment/index.d.ts +94 -0
  28. package/dist/aws-tgw-transit-gateway-attachment/index.js +191 -0
  29. package/dist/aws-tgw-vpc-attachment/index.d.ts +160 -0
  30. package/dist/aws-tgw-vpc-attachment/index.js +329 -0
  31. package/dist/aws-tgw-vpn-conn/index.d.ts +225 -0
  32. package/dist/aws-tgw-vpn-conn/index.js +485 -0
  33. package/dist/azure-peer/index.d.ts +106 -0
  34. package/dist/azure-peer/index.js +219 -0
  35. package/dist/azure-spoke-native-peering/index.d.ts +84 -0
  36. package/dist/azure-spoke-native-peering/index.js +171 -0
  37. package/dist/azure-vng-conn/index.d.ts +67 -0
  38. package/dist/azure-vng-conn/index.js +143 -0
  39. package/dist/centralized-transit-firenet/index.d.ts +64 -0
  40. package/dist/centralized-transit-firenet/index.js +131 -0
  41. package/dist/cloudwatch-agent/index.d.ts +87 -0
  42. package/dist/cloudwatch-agent/index.js +181 -0
  43. package/dist/controller-access-allow-list-config/index.d.ts +119 -0
  44. package/dist/controller-access-allow-list-config/index.js +267 -0
  45. package/dist/controller-bgp-communities-auto-cloud-config/index.d.ts +64 -0
  46. package/dist/controller-bgp-communities-auto-cloud-config/index.js +131 -0
  47. package/dist/controller-bgp-communities-global-config/index.d.ts +54 -0
  48. package/dist/controller-bgp-communities-global-config/index.js +111 -0
  49. package/dist/controller-bgp-max-as-limit-config/index.d.ts +54 -0
  50. package/dist/controller-bgp-max-as-limit-config/index.js +111 -0
  51. package/dist/controller-cert-domain-config/index.d.ts +55 -0
  52. package/dist/controller-cert-domain-config/index.js +114 -0
  53. package/dist/controller-config/index.d.ts +267 -0
  54. package/dist/controller-config/index.js +563 -0
  55. package/dist/controller-email-config/index.d.ts +99 -0
  56. package/dist/controller-email-config/index.js +210 -0
  57. package/dist/controller-email-exception-notification-config/index.d.ts +55 -0
  58. package/dist/controller-email-exception-notification-config/index.js +114 -0
  59. package/dist/controller-gateway-keepalive-config/index.d.ts +54 -0
  60. package/dist/controller-gateway-keepalive-config/index.js +111 -0
  61. package/dist/controller-private-mode-config/index.d.ts +65 -0
  62. package/dist/controller-private-mode-config/index.js +134 -0
  63. package/dist/controller-private-oob/index.d.ts +55 -0
  64. package/dist/controller-private-oob/index.js +114 -0
  65. package/dist/controller-security-group-management-config/index.d.ts +65 -0
  66. package/dist/controller-security-group-management-config/index.js +134 -0
  67. package/dist/copilot-association/index.d.ts +54 -0
  68. package/dist/copilot-association/index.js +111 -0
  69. package/dist/copilot-fault-tolerant-deployment/index.d.ts +212 -0
  70. package/dist/copilot-fault-tolerant-deployment/index.js +468 -0
  71. package/dist/copilot-security-group-management-config/index.d.ts +120 -0
  72. package/dist/copilot-security-group-management-config/index.js +249 -0
  73. package/dist/copilot-simple-deployment/index.d.ts +138 -0
  74. package/dist/copilot-simple-deployment/index.js +285 -0
  75. package/dist/data-aviatrix-account/index.d.ts +73 -0
  76. package/dist/data-aviatrix-account/index.js +187 -0
  77. package/dist/data-aviatrix-caller-identity/index.d.ts +45 -0
  78. package/dist/data-aviatrix-caller-identity/index.js +95 -0
  79. package/dist/data-aviatrix-controller-metadata/index.d.ts +48 -0
  80. package/dist/data-aviatrix-controller-metadata/index.js +107 -0
  81. package/dist/data-aviatrix-device-interfaces/index.d.ts +89 -0
  82. package/dist/data-aviatrix-device-interfaces/index.js +190 -0
  83. package/dist/data-aviatrix-edge-gateway-wan-interface-discovery/index.d.ts +65 -0
  84. package/dist/data-aviatrix-edge-gateway-wan-interface-discovery/index.js +135 -0
  85. package/dist/data-aviatrix-firenet/index.d.ts +59 -0
  86. package/dist/data-aviatrix-firenet/index.js +131 -0
  87. package/dist/data-aviatrix-firenet-firewall-manager/index.d.ts +184 -0
  88. package/dist/data-aviatrix-firenet-firewall-manager/index.js +381 -0
  89. package/dist/data-aviatrix-firenet-vendor-integration/index.d.ts +195 -0
  90. package/dist/data-aviatrix-firenet-vendor-integration/index.js +404 -0
  91. package/dist/data-aviatrix-firewall/index.d.ts +96 -0
  92. package/dist/data-aviatrix-firewall/index.js +218 -0
  93. package/dist/data-aviatrix-firewall-instance-images/index.d.ts +90 -0
  94. package/dist/data-aviatrix-firewall-instance-images/index.js +194 -0
  95. package/dist/data-aviatrix-gateway/index.d.ts +135 -0
  96. package/dist/data-aviatrix-gateway/index.js +432 -0
  97. package/dist/data-aviatrix-gateway-image/index.d.ts +65 -0
  98. package/dist/data-aviatrix-gateway-image/index.js +135 -0
  99. package/dist/data-aviatrix-network-domains/index.d.ts +89 -0
  100. package/dist/data-aviatrix-network-domains/index.js +210 -0
  101. package/dist/data-aviatrix-smart-groups/index.d.ts +161 -0
  102. package/dist/data-aviatrix-smart-groups/index.js +373 -0
  103. package/dist/data-aviatrix-spoke-gateway/index.d.ts +125 -0
  104. package/dist/data-aviatrix-spoke-gateway/index.js +392 -0
  105. package/dist/data-aviatrix-spoke-gateway-inspection-subnets/index.d.ts +55 -0
  106. package/dist/data-aviatrix-spoke-gateway-inspection-subnets/index.js +115 -0
  107. package/dist/data-aviatrix-spoke-gateways/index.d.ts +130 -0
  108. package/dist/data-aviatrix-spoke-gateways/index.js +374 -0
  109. package/dist/data-aviatrix-transit-gateway/index.d.ts +208 -0
  110. package/dist/data-aviatrix-transit-gateway/index.js +602 -0
  111. package/dist/data-aviatrix-transit-gateways/index.d.ts +202 -0
  112. package/dist/data-aviatrix-transit-gateways/index.js +540 -0
  113. package/dist/data-aviatrix-vpc/index.d.ts +187 -0
  114. package/dist/data-aviatrix-vpc/index.js +439 -0
  115. package/dist/data-aviatrix-vpc-tracker/index.d.ts +165 -0
  116. package/dist/data-aviatrix-vpc-tracker/index.js +369 -0
  117. package/dist/datadog-agent/index.d.ts +88 -0
  118. package/dist/datadog-agent/index.js +184 -0
  119. package/dist/device-interface-config/index.d.ts +74 -0
  120. package/dist/device-interface-config/index.js +151 -0
  121. package/dist/distributed-firewalling-config/index.d.ts +55 -0
  122. package/dist/distributed-firewalling-config/index.js +114 -0
  123. package/dist/distributed-firewalling-default-action-rule/index.d.ts +64 -0
  124. package/dist/distributed-firewalling-default-action-rule/index.js +131 -0
  125. package/dist/distributed-firewalling-intra-vpc/index.d.ts +117 -0
  126. package/dist/distributed-firewalling-intra-vpc/index.js +266 -0
  127. package/dist/distributed-firewalling-origin-cert-enforcement-config/index.d.ts +55 -0
  128. package/dist/distributed-firewalling-origin-cert-enforcement-config/index.js +114 -0
  129. package/dist/distributed-firewalling-policy-list/index.d.ts +291 -0
  130. package/dist/distributed-firewalling-policy-list/index.js +705 -0
  131. package/dist/distributed-firewalling-proxy-ca-config/index.d.ts +69 -0
  132. package/dist/distributed-firewalling-proxy-ca-config/index.js +151 -0
  133. package/dist/edge-csp/index.d.ts +693 -0
  134. package/dist/edge-csp/index.js +1561 -0
  135. package/dist/edge-csp-ha/index.d.ts +227 -0
  136. package/dist/edge-csp-ha/index.js +532 -0
  137. package/dist/edge-equinix/index.d.ts +651 -0
  138. package/dist/edge-equinix/index.js +1475 -0
  139. package/dist/edge-equinix-ha/index.d.ts +227 -0
  140. package/dist/edge-equinix-ha/index.js +532 -0
  141. package/dist/edge-gateway-selfmanaged/index.d.ts +607 -0
  142. package/dist/edge-gateway-selfmanaged/index.js +1378 -0
  143. package/dist/edge-gateway-selfmanaged-ha/index.d.ts +246 -0
  144. package/dist/edge-gateway-selfmanaged-ha/index.js +558 -0
  145. package/dist/edge-megaport/index.d.ts +704 -0
  146. package/dist/edge-megaport/index.js +1600 -0
  147. package/dist/edge-megaport-ha/index.d.ts +206 -0
  148. package/dist/edge-megaport-ha/index.js +479 -0
  149. package/dist/edge-neo/index.d.ts +669 -0
  150. package/dist/edge-neo/index.js +1509 -0
  151. package/dist/edge-neo-device-onboarding/index.d.ts +216 -0
  152. package/dist/edge-neo-device-onboarding/index.js +489 -0
  153. package/dist/edge-neo-ha/index.d.ts +227 -0
  154. package/dist/edge-neo-ha/index.js +532 -0
  155. package/dist/edge-platform/index.d.ts +691 -0
  156. package/dist/edge-platform/index.js +1555 -0
  157. package/dist/edge-platform-device-onboarding/index.d.ts +216 -0
  158. package/dist/edge-platform-device-onboarding/index.js +489 -0
  159. package/dist/edge-platform-ha/index.d.ts +227 -0
  160. package/dist/edge-platform-ha/index.js +532 -0
  161. package/dist/edge-proxy-profile/index.d.ts +98 -0
  162. package/dist/edge-proxy-profile/index.js +204 -0
  163. package/dist/edge-spoke/index.d.ts +434 -0
  164. package/dist/edge-spoke/index.js +953 -0
  165. package/dist/edge-spoke-external-device-conn/index.d.ts +371 -0
  166. package/dist/edge-spoke-external-device-conn/index.js +800 -0
  167. package/dist/edge-spoke-transit-attachment/index.d.ts +197 -0
  168. package/dist/edge-spoke-transit-attachment/index.js +411 -0
  169. package/dist/edge-vm-selfmanaged/index.d.ts +423 -0
  170. package/dist/edge-vm-selfmanaged/index.js +930 -0
  171. package/dist/edge-vm-selfmanaged-ha/index.d.ts +202 -0
  172. package/dist/edge-vm-selfmanaged-ha/index.js +456 -0
  173. package/dist/edge-zededa/index.d.ts +693 -0
  174. package/dist/edge-zededa/index.js +1561 -0
  175. package/dist/edge-zededa-ha/index.d.ts +227 -0
  176. package/dist/edge-zededa-ha/index.js +532 -0
  177. package/dist/filebeat-forwarder/index.d.ts +98 -0
  178. package/dist/filebeat-forwarder/index.js +204 -0
  179. package/dist/firenet/index.d.ts +120 -0
  180. package/dist/firenet/index.js +249 -0
  181. package/dist/firewall/index.d.ts +204 -0
  182. package/dist/firewall/index.js +467 -0
  183. package/dist/firewall-instance/index.d.ts +384 -0
  184. package/dist/firewall-instance/index.js +794 -0
  185. package/dist/firewall-instance-association/index.d.ts +141 -0
  186. package/dist/firewall-instance-association/index.js +292 -0
  187. package/dist/firewall-management-access/index.d.ts +64 -0
  188. package/dist/firewall-management-access/index.js +131 -0
  189. package/dist/firewall-policy/index.d.ts +138 -0
  190. package/dist/firewall-policy/index.js +283 -0
  191. package/dist/firewall-tag/index.d.ts +118 -0
  192. package/dist/firewall-tag/index.js +264 -0
  193. package/dist/fqdn/index.d.ts +237 -0
  194. package/dist/fqdn/index.js +542 -0
  195. package/dist/fqdn-global-config/index.d.ts +110 -0
  196. package/dist/fqdn-global-config/index.js +229 -0
  197. package/dist/fqdn-pass-through/index.d.ts +64 -0
  198. package/dist/fqdn-pass-through/index.js +131 -0
  199. package/dist/fqdn-tag-rule/index.d.ts +95 -0
  200. package/dist/fqdn-tag-rule/index.js +194 -0
  201. package/dist/gateway/index.d.ts +913 -0
  202. package/dist/gateway/index.js +1904 -0
  203. package/dist/gateway-certificate-config/index.d.ts +64 -0
  204. package/dist/gateway-certificate-config/index.js +131 -0
  205. package/dist/gateway-dnat/index.d.ts +319 -0
  206. package/dist/gateway-dnat/index.js +785 -0
  207. package/dist/gateway-snat/index.d.ts +342 -0
  208. package/dist/gateway-snat/index.js +834 -0
  209. package/dist/geo-vpn/index.d.ts +94 -0
  210. package/dist/geo-vpn/index.js +191 -0
  211. package/dist/global-vpc-excluded-instance/index.d.ts +75 -0
  212. package/dist/global-vpc-excluded-instance/index.js +155 -0
  213. package/dist/global-vpc-tagging-settings/index.d.ts +64 -0
  214. package/dist/global-vpc-tagging-settings/index.js +131 -0
  215. package/dist/index.d.ts +150 -0
  216. package/dist/index.js +151 -0
  217. package/dist/kubernetes-cluster/index.d.ts +232 -0
  218. package/dist/kubernetes-cluster/index.js +534 -0
  219. package/dist/lazy-index.d.ts +0 -0
  220. package/dist/lazy-index.js +151 -0
  221. package/dist/link-hierarchy/index.d.ts +161 -0
  222. package/dist/link-hierarchy/index.js +370 -0
  223. package/dist/netflow-agent/index.d.ts +98 -0
  224. package/dist/netflow-agent/index.js +204 -0
  225. package/dist/periodic-ping/index.d.ts +74 -0
  226. package/dist/periodic-ping/index.js +151 -0
  227. package/dist/private-mode-lb/index.d.ts +159 -0
  228. package/dist/private-mode-lb/index.js +347 -0
  229. package/dist/private-mode-multicloud-endpoint/index.d.ts +85 -0
  230. package/dist/private-mode-multicloud-endpoint/index.js +175 -0
  231. package/dist/provider/index.d.ts +121 -0
  232. package/dist/provider/index.js +273 -0
  233. package/dist/proxy-config/index.d.ts +75 -0
  234. package/dist/proxy-config/index.js +154 -0
  235. package/dist/qos-class/index.d.ts +65 -0
  236. package/dist/qos-class/index.js +135 -0
  237. package/dist/qos-policy-list/index.d.ts +118 -0
  238. package/dist/qos-policy-list/index.js +270 -0
  239. package/dist/rbac-group/index.d.ts +65 -0
  240. package/dist/rbac-group/index.js +134 -0
  241. package/dist/rbac-group-access-account-attachment/index.d.ts +64 -0
  242. package/dist/rbac-group-access-account-attachment/index.js +131 -0
  243. package/dist/rbac-group-permission-attachment/index.d.ts +64 -0
  244. package/dist/rbac-group-permission-attachment/index.js +131 -0
  245. package/dist/rbac-group-user-attachment/index.d.ts +64 -0
  246. package/dist/rbac-group-user-attachment/index.js +131 -0
  247. package/dist/remote-syslog/index.d.ts +154 -0
  248. package/dist/remote-syslog/index.js +323 -0
  249. package/dist/saml-endpoint/index.d.ts +152 -0
  250. package/dist/saml-endpoint/index.js +315 -0
  251. package/dist/segmentation-network-domain/index.d.ts +54 -0
  252. package/dist/segmentation-network-domain/index.js +111 -0
  253. package/dist/segmentation-network-domain-association/index.d.ts +75 -0
  254. package/dist/segmentation-network-domain-association/index.js +154 -0
  255. package/dist/segmentation-network-domain-connection-policy/index.d.ts +64 -0
  256. package/dist/segmentation-network-domain-connection-policy/index.js +131 -0
  257. package/dist/site2cloud/index.d.ts +642 -0
  258. package/dist/site2cloud/index.js +1335 -0
  259. package/dist/site2cloud-ca-cert-tag/index.d.ts +112 -0
  260. package/dist/site2cloud-ca-cert-tag/index.js +256 -0
  261. package/dist/sla-class/index.d.ts +85 -0
  262. package/dist/sla-class/index.js +175 -0
  263. package/dist/smart-group/index.d.ts +336 -0
  264. package/dist/smart-group/index.js +789 -0
  265. package/dist/splunk-logging/index.d.ts +100 -0
  266. package/dist/splunk-logging/index.js +210 -0
  267. package/dist/spoke-external-device-conn/index.d.ts +638 -0
  268. package/dist/spoke-external-device-conn/index.js +1361 -0
  269. package/dist/spoke-gateway/index.d.ts +903 -0
  270. package/dist/spoke-gateway/index.js +1885 -0
  271. package/dist/spoke-gateway-subnet-group/index.d.ts +75 -0
  272. package/dist/spoke-gateway-subnet-group/index.js +154 -0
  273. package/dist/spoke-ha-gateway/index.d.ts +172 -0
  274. package/dist/spoke-ha-gateway/index.js +374 -0
  275. package/dist/spoke-transit-attachment/index.d.ts +131 -0
  276. package/dist/spoke-transit-attachment/index.js +273 -0
  277. package/dist/sumologic-forwarder/index.d.ts +98 -0
  278. package/dist/sumologic-forwarder/index.js +204 -0
  279. package/dist/traffic-classifier/index.d.ts +239 -0
  280. package/dist/traffic-classifier/index.js +574 -0
  281. package/dist/trans-peer/index.d.ts +74 -0
  282. package/dist/trans-peer/index.js +151 -0
  283. package/dist/transit-external-device-conn/index.d.ts +694 -0
  284. package/dist/transit-external-device-conn/index.js +1479 -0
  285. package/dist/transit-firenet-policy/index.d.ts +64 -0
  286. package/dist/transit-firenet-policy/index.js +131 -0
  287. package/dist/transit-gateway/index.d.ts +1566 -0
  288. package/dist/transit-gateway/index.js +3442 -0
  289. package/dist/transit-gateway-peering/index.d.ts +240 -0
  290. package/dist/transit-gateway-peering/index.js +499 -0
  291. package/dist/tunnel/index.d.ts +78 -0
  292. package/dist/tunnel/index.js +166 -0
  293. package/dist/vgw-conn/index.d.ts +158 -0
  294. package/dist/vgw-conn/index.js +323 -0
  295. package/dist/vpc/index.d.ts +339 -0
  296. package/dist/vpc/index.js +758 -0
  297. package/dist/vpn-cert-download/index.d.ts +66 -0
  298. package/dist/vpn-cert-download/index.js +137 -0
  299. package/dist/vpn-profile/index.d.ts +169 -0
  300. package/dist/vpn-profile/index.js +383 -0
  301. package/dist/vpn-user/index.d.ts +129 -0
  302. package/dist/vpn-user/index.js +272 -0
  303. package/dist/vpn-user-accelerator/index.d.ts +54 -0
  304. package/dist/vpn-user-accelerator/index.js +111 -0
  305. package/dist/web-group/index.d.ts +144 -0
  306. package/dist/web-group/index.js +341 -0
  307. package/package.json +51 -0
@@ -0,0 +1,834 @@
1
+ // https://registry.terraform.io/providers/aviatrixsystems/aviatrix/8.1.10/docs/resources/gateway_snat
2
+ // generated from terraform resource schema
3
+ import * as cdktf from 'cdktf';
4
+ export function gatewaySnatConnectionPolicyToTerraform(struct) {
5
+ if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
6
+ return struct;
7
+ }
8
+ if (cdktf.isComplexElement(struct)) {
9
+ throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
10
+ }
11
+ return {};
12
+ }
13
+ export function gatewaySnatConnectionPolicyToHclTerraform(struct) {
14
+ if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
15
+ return struct;
16
+ }
17
+ if (cdktf.isComplexElement(struct)) {
18
+ throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
19
+ }
20
+ const attrs = {};
21
+ return attrs;
22
+ }
23
+ export class GatewaySnatConnectionPolicyOutputReference extends cdktf.ComplexObject {
24
+ isEmptyObject = false;
25
+ /**
26
+ * @param terraformResource The parent resource
27
+ * @param terraformAttribute The attribute on the parent resource this class is referencing
28
+ * @param complexObjectIndex the index of this item in the list
29
+ * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
30
+ */
31
+ constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
32
+ super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
33
+ }
34
+ get internalValue() {
35
+ let hasAnyValues = this.isEmptyObject;
36
+ const internalValueResult = {};
37
+ return hasAnyValues ? internalValueResult : undefined;
38
+ }
39
+ set internalValue(value) {
40
+ if (value === undefined) {
41
+ this.isEmptyObject = false;
42
+ }
43
+ else {
44
+ this.isEmptyObject = Object.keys(value).length === 0;
45
+ }
46
+ }
47
+ // apply_route_entry - computed: true, optional: false, required: false
48
+ get applyRouteEntry() {
49
+ return this.getBooleanAttribute('apply_route_entry');
50
+ }
51
+ // connection - computed: true, optional: false, required: false
52
+ get connection() {
53
+ return this.getStringAttribute('connection');
54
+ }
55
+ // dst_cidr - computed: true, optional: false, required: false
56
+ get dstCidr() {
57
+ return this.getStringAttribute('dst_cidr');
58
+ }
59
+ // dst_port - computed: true, optional: false, required: false
60
+ get dstPort() {
61
+ return this.getStringAttribute('dst_port');
62
+ }
63
+ // exclude_rtb - computed: true, optional: false, required: false
64
+ get excludeRtb() {
65
+ return this.getStringAttribute('exclude_rtb');
66
+ }
67
+ // interface - computed: true, optional: false, required: false
68
+ get interface() {
69
+ return this.getStringAttribute('interface');
70
+ }
71
+ // mark - computed: true, optional: false, required: false
72
+ get mark() {
73
+ return this.getStringAttribute('mark');
74
+ }
75
+ // protocol - computed: true, optional: false, required: false
76
+ get protocol() {
77
+ return this.getStringAttribute('protocol');
78
+ }
79
+ // snat_ips - computed: true, optional: false, required: false
80
+ get snatIps() {
81
+ return this.getStringAttribute('snat_ips');
82
+ }
83
+ // snat_port - computed: true, optional: false, required: false
84
+ get snatPort() {
85
+ return this.getStringAttribute('snat_port');
86
+ }
87
+ // src_cidr - computed: true, optional: false, required: false
88
+ get srcCidr() {
89
+ return this.getStringAttribute('src_cidr');
90
+ }
91
+ // src_port - computed: true, optional: false, required: false
92
+ get srcPort() {
93
+ return this.getStringAttribute('src_port');
94
+ }
95
+ }
96
+ export class GatewaySnatConnectionPolicyList extends cdktf.ComplexList {
97
+ terraformResource;
98
+ terraformAttribute;
99
+ wrapsSet;
100
+ /**
101
+ * @param terraformResource The parent resource
102
+ * @param terraformAttribute The attribute on the parent resource this class is referencing
103
+ * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
104
+ */
105
+ constructor(terraformResource, terraformAttribute, wrapsSet) {
106
+ super(terraformResource, terraformAttribute, wrapsSet);
107
+ this.terraformResource = terraformResource;
108
+ this.terraformAttribute = terraformAttribute;
109
+ this.wrapsSet = wrapsSet;
110
+ }
111
+ /**
112
+ * @param index the index of the item to return
113
+ */
114
+ get(index) {
115
+ return new GatewaySnatConnectionPolicyOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
116
+ }
117
+ }
118
+ export function gatewaySnatInterfacePolicyToTerraform(struct) {
119
+ if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
120
+ return struct;
121
+ }
122
+ if (cdktf.isComplexElement(struct)) {
123
+ throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
124
+ }
125
+ return {};
126
+ }
127
+ export function gatewaySnatInterfacePolicyToHclTerraform(struct) {
128
+ if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
129
+ return struct;
130
+ }
131
+ if (cdktf.isComplexElement(struct)) {
132
+ throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
133
+ }
134
+ const attrs = {};
135
+ return attrs;
136
+ }
137
+ export class GatewaySnatInterfacePolicyOutputReference extends cdktf.ComplexObject {
138
+ isEmptyObject = false;
139
+ /**
140
+ * @param terraformResource The parent resource
141
+ * @param terraformAttribute The attribute on the parent resource this class is referencing
142
+ * @param complexObjectIndex the index of this item in the list
143
+ * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
144
+ */
145
+ constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
146
+ super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
147
+ }
148
+ get internalValue() {
149
+ let hasAnyValues = this.isEmptyObject;
150
+ const internalValueResult = {};
151
+ return hasAnyValues ? internalValueResult : undefined;
152
+ }
153
+ set internalValue(value) {
154
+ if (value === undefined) {
155
+ this.isEmptyObject = false;
156
+ }
157
+ else {
158
+ this.isEmptyObject = Object.keys(value).length === 0;
159
+ }
160
+ }
161
+ // apply_route_entry - computed: true, optional: false, required: false
162
+ get applyRouteEntry() {
163
+ return this.getBooleanAttribute('apply_route_entry');
164
+ }
165
+ // connection - computed: true, optional: false, required: false
166
+ get connection() {
167
+ return this.getStringAttribute('connection');
168
+ }
169
+ // dst_cidr - computed: true, optional: false, required: false
170
+ get dstCidr() {
171
+ return this.getStringAttribute('dst_cidr');
172
+ }
173
+ // dst_port - computed: true, optional: false, required: false
174
+ get dstPort() {
175
+ return this.getStringAttribute('dst_port');
176
+ }
177
+ // exclude_rtb - computed: true, optional: false, required: false
178
+ get excludeRtb() {
179
+ return this.getStringAttribute('exclude_rtb');
180
+ }
181
+ // interface - computed: true, optional: false, required: false
182
+ get interface() {
183
+ return this.getStringAttribute('interface');
184
+ }
185
+ // mark - computed: true, optional: false, required: false
186
+ get mark() {
187
+ return this.getStringAttribute('mark');
188
+ }
189
+ // protocol - computed: true, optional: false, required: false
190
+ get protocol() {
191
+ return this.getStringAttribute('protocol');
192
+ }
193
+ // snat_ips - computed: true, optional: false, required: false
194
+ get snatIps() {
195
+ return this.getStringAttribute('snat_ips');
196
+ }
197
+ // snat_port - computed: true, optional: false, required: false
198
+ get snatPort() {
199
+ return this.getStringAttribute('snat_port');
200
+ }
201
+ // src_cidr - computed: true, optional: false, required: false
202
+ get srcCidr() {
203
+ return this.getStringAttribute('src_cidr');
204
+ }
205
+ // src_port - computed: true, optional: false, required: false
206
+ get srcPort() {
207
+ return this.getStringAttribute('src_port');
208
+ }
209
+ }
210
+ export class GatewaySnatInterfacePolicyList extends cdktf.ComplexList {
211
+ terraformResource;
212
+ terraformAttribute;
213
+ wrapsSet;
214
+ /**
215
+ * @param terraformResource The parent resource
216
+ * @param terraformAttribute The attribute on the parent resource this class is referencing
217
+ * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
218
+ */
219
+ constructor(terraformResource, terraformAttribute, wrapsSet) {
220
+ super(terraformResource, terraformAttribute, wrapsSet);
221
+ this.terraformResource = terraformResource;
222
+ this.terraformAttribute = terraformAttribute;
223
+ this.wrapsSet = wrapsSet;
224
+ }
225
+ /**
226
+ * @param index the index of the item to return
227
+ */
228
+ get(index) {
229
+ return new GatewaySnatInterfacePolicyOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
230
+ }
231
+ }
232
+ export function gatewaySnatSnatPolicyToTerraform(struct) {
233
+ if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
234
+ return struct;
235
+ }
236
+ if (cdktf.isComplexElement(struct)) {
237
+ throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
238
+ }
239
+ return {
240
+ apply_route_entry: cdktf.booleanToTerraform(struct.applyRouteEntry),
241
+ connection: cdktf.stringToTerraform(struct.connection),
242
+ dst_cidr: cdktf.stringToTerraform(struct.dstCidr),
243
+ dst_port: cdktf.stringToTerraform(struct.dstPort),
244
+ exclude_rtb: cdktf.stringToTerraform(struct.excludeRtb),
245
+ interface: cdktf.stringToTerraform(struct.interface),
246
+ mark: cdktf.stringToTerraform(struct.mark),
247
+ protocol: cdktf.stringToTerraform(struct.protocol),
248
+ snat_ips: cdktf.stringToTerraform(struct.snatIps),
249
+ snat_port: cdktf.stringToTerraform(struct.snatPort),
250
+ src_cidr: cdktf.stringToTerraform(struct.srcCidr),
251
+ src_port: cdktf.stringToTerraform(struct.srcPort),
252
+ };
253
+ }
254
+ export function gatewaySnatSnatPolicyToHclTerraform(struct) {
255
+ if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
256
+ return struct;
257
+ }
258
+ if (cdktf.isComplexElement(struct)) {
259
+ throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
260
+ }
261
+ const attrs = {
262
+ apply_route_entry: {
263
+ value: cdktf.booleanToHclTerraform(struct.applyRouteEntry),
264
+ isBlock: false,
265
+ type: "simple",
266
+ storageClassType: "boolean",
267
+ },
268
+ connection: {
269
+ value: cdktf.stringToHclTerraform(struct.connection),
270
+ isBlock: false,
271
+ type: "simple",
272
+ storageClassType: "string",
273
+ },
274
+ dst_cidr: {
275
+ value: cdktf.stringToHclTerraform(struct.dstCidr),
276
+ isBlock: false,
277
+ type: "simple",
278
+ storageClassType: "string",
279
+ },
280
+ dst_port: {
281
+ value: cdktf.stringToHclTerraform(struct.dstPort),
282
+ isBlock: false,
283
+ type: "simple",
284
+ storageClassType: "string",
285
+ },
286
+ exclude_rtb: {
287
+ value: cdktf.stringToHclTerraform(struct.excludeRtb),
288
+ isBlock: false,
289
+ type: "simple",
290
+ storageClassType: "string",
291
+ },
292
+ interface: {
293
+ value: cdktf.stringToHclTerraform(struct.interface),
294
+ isBlock: false,
295
+ type: "simple",
296
+ storageClassType: "string",
297
+ },
298
+ mark: {
299
+ value: cdktf.stringToHclTerraform(struct.mark),
300
+ isBlock: false,
301
+ type: "simple",
302
+ storageClassType: "string",
303
+ },
304
+ protocol: {
305
+ value: cdktf.stringToHclTerraform(struct.protocol),
306
+ isBlock: false,
307
+ type: "simple",
308
+ storageClassType: "string",
309
+ },
310
+ snat_ips: {
311
+ value: cdktf.stringToHclTerraform(struct.snatIps),
312
+ isBlock: false,
313
+ type: "simple",
314
+ storageClassType: "string",
315
+ },
316
+ snat_port: {
317
+ value: cdktf.stringToHclTerraform(struct.snatPort),
318
+ isBlock: false,
319
+ type: "simple",
320
+ storageClassType: "string",
321
+ },
322
+ src_cidr: {
323
+ value: cdktf.stringToHclTerraform(struct.srcCidr),
324
+ isBlock: false,
325
+ type: "simple",
326
+ storageClassType: "string",
327
+ },
328
+ src_port: {
329
+ value: cdktf.stringToHclTerraform(struct.srcPort),
330
+ isBlock: false,
331
+ type: "simple",
332
+ storageClassType: "string",
333
+ },
334
+ };
335
+ // remove undefined attributes
336
+ return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
337
+ }
338
+ export class GatewaySnatSnatPolicyOutputReference extends cdktf.ComplexObject {
339
+ isEmptyObject = false;
340
+ resolvableValue;
341
+ /**
342
+ * @param terraformResource The parent resource
343
+ * @param terraformAttribute The attribute on the parent resource this class is referencing
344
+ * @param complexObjectIndex the index of this item in the list
345
+ * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
346
+ */
347
+ constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
348
+ super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
349
+ }
350
+ get internalValue() {
351
+ if (this.resolvableValue) {
352
+ return this.resolvableValue;
353
+ }
354
+ let hasAnyValues = this.isEmptyObject;
355
+ const internalValueResult = {};
356
+ if (this._applyRouteEntry !== undefined) {
357
+ hasAnyValues = true;
358
+ internalValueResult.applyRouteEntry = this._applyRouteEntry;
359
+ }
360
+ if (this._connection !== undefined) {
361
+ hasAnyValues = true;
362
+ internalValueResult.connection = this._connection;
363
+ }
364
+ if (this._dstCidr !== undefined) {
365
+ hasAnyValues = true;
366
+ internalValueResult.dstCidr = this._dstCidr;
367
+ }
368
+ if (this._dstPort !== undefined) {
369
+ hasAnyValues = true;
370
+ internalValueResult.dstPort = this._dstPort;
371
+ }
372
+ if (this._excludeRtb !== undefined) {
373
+ hasAnyValues = true;
374
+ internalValueResult.excludeRtb = this._excludeRtb;
375
+ }
376
+ if (this._interface !== undefined) {
377
+ hasAnyValues = true;
378
+ internalValueResult.interface = this._interface;
379
+ }
380
+ if (this._mark !== undefined) {
381
+ hasAnyValues = true;
382
+ internalValueResult.mark = this._mark;
383
+ }
384
+ if (this._protocol !== undefined) {
385
+ hasAnyValues = true;
386
+ internalValueResult.protocol = this._protocol;
387
+ }
388
+ if (this._snatIps !== undefined) {
389
+ hasAnyValues = true;
390
+ internalValueResult.snatIps = this._snatIps;
391
+ }
392
+ if (this._snatPort !== undefined) {
393
+ hasAnyValues = true;
394
+ internalValueResult.snatPort = this._snatPort;
395
+ }
396
+ if (this._srcCidr !== undefined) {
397
+ hasAnyValues = true;
398
+ internalValueResult.srcCidr = this._srcCidr;
399
+ }
400
+ if (this._srcPort !== undefined) {
401
+ hasAnyValues = true;
402
+ internalValueResult.srcPort = this._srcPort;
403
+ }
404
+ return hasAnyValues ? internalValueResult : undefined;
405
+ }
406
+ set internalValue(value) {
407
+ if (value === undefined) {
408
+ this.isEmptyObject = false;
409
+ this.resolvableValue = undefined;
410
+ this._applyRouteEntry = undefined;
411
+ this._connection = undefined;
412
+ this._dstCidr = undefined;
413
+ this._dstPort = undefined;
414
+ this._excludeRtb = undefined;
415
+ this._interface = undefined;
416
+ this._mark = undefined;
417
+ this._protocol = undefined;
418
+ this._snatIps = undefined;
419
+ this._snatPort = undefined;
420
+ this._srcCidr = undefined;
421
+ this._srcPort = undefined;
422
+ }
423
+ else if (cdktf.Tokenization.isResolvable(value)) {
424
+ this.isEmptyObject = false;
425
+ this.resolvableValue = value;
426
+ }
427
+ else {
428
+ this.isEmptyObject = Object.keys(value).length === 0;
429
+ this.resolvableValue = undefined;
430
+ this._applyRouteEntry = value.applyRouteEntry;
431
+ this._connection = value.connection;
432
+ this._dstCidr = value.dstCidr;
433
+ this._dstPort = value.dstPort;
434
+ this._excludeRtb = value.excludeRtb;
435
+ this._interface = value.interface;
436
+ this._mark = value.mark;
437
+ this._protocol = value.protocol;
438
+ this._snatIps = value.snatIps;
439
+ this._snatPort = value.snatPort;
440
+ this._srcCidr = value.srcCidr;
441
+ this._srcPort = value.srcPort;
442
+ }
443
+ }
444
+ // apply_route_entry - computed: false, optional: true, required: false
445
+ _applyRouteEntry;
446
+ get applyRouteEntry() {
447
+ return this.getBooleanAttribute('apply_route_entry');
448
+ }
449
+ set applyRouteEntry(value) {
450
+ this._applyRouteEntry = value;
451
+ }
452
+ resetApplyRouteEntry() {
453
+ this._applyRouteEntry = undefined;
454
+ }
455
+ // Temporarily expose input value. Use with caution.
456
+ get applyRouteEntryInput() {
457
+ return this._applyRouteEntry;
458
+ }
459
+ // connection - computed: false, optional: true, required: false
460
+ _connection;
461
+ get connection() {
462
+ return this.getStringAttribute('connection');
463
+ }
464
+ set connection(value) {
465
+ this._connection = value;
466
+ }
467
+ resetConnection() {
468
+ this._connection = undefined;
469
+ }
470
+ // Temporarily expose input value. Use with caution.
471
+ get connectionInput() {
472
+ return this._connection;
473
+ }
474
+ // dst_cidr - computed: false, optional: true, required: false
475
+ _dstCidr;
476
+ get dstCidr() {
477
+ return this.getStringAttribute('dst_cidr');
478
+ }
479
+ set dstCidr(value) {
480
+ this._dstCidr = value;
481
+ }
482
+ resetDstCidr() {
483
+ this._dstCidr = undefined;
484
+ }
485
+ // Temporarily expose input value. Use with caution.
486
+ get dstCidrInput() {
487
+ return this._dstCidr;
488
+ }
489
+ // dst_port - computed: false, optional: true, required: false
490
+ _dstPort;
491
+ get dstPort() {
492
+ return this.getStringAttribute('dst_port');
493
+ }
494
+ set dstPort(value) {
495
+ this._dstPort = value;
496
+ }
497
+ resetDstPort() {
498
+ this._dstPort = undefined;
499
+ }
500
+ // Temporarily expose input value. Use with caution.
501
+ get dstPortInput() {
502
+ return this._dstPort;
503
+ }
504
+ // exclude_rtb - computed: false, optional: true, required: false
505
+ _excludeRtb;
506
+ get excludeRtb() {
507
+ return this.getStringAttribute('exclude_rtb');
508
+ }
509
+ set excludeRtb(value) {
510
+ this._excludeRtb = value;
511
+ }
512
+ resetExcludeRtb() {
513
+ this._excludeRtb = undefined;
514
+ }
515
+ // Temporarily expose input value. Use with caution.
516
+ get excludeRtbInput() {
517
+ return this._excludeRtb;
518
+ }
519
+ // interface - computed: false, optional: true, required: false
520
+ _interface;
521
+ get interface() {
522
+ return this.getStringAttribute('interface');
523
+ }
524
+ set interface(value) {
525
+ this._interface = value;
526
+ }
527
+ resetInterface() {
528
+ this._interface = undefined;
529
+ }
530
+ // Temporarily expose input value. Use with caution.
531
+ get interfaceInput() {
532
+ return this._interface;
533
+ }
534
+ // mark - computed: false, optional: true, required: false
535
+ _mark;
536
+ get mark() {
537
+ return this.getStringAttribute('mark');
538
+ }
539
+ set mark(value) {
540
+ this._mark = value;
541
+ }
542
+ resetMark() {
543
+ this._mark = undefined;
544
+ }
545
+ // Temporarily expose input value. Use with caution.
546
+ get markInput() {
547
+ return this._mark;
548
+ }
549
+ // protocol - computed: false, optional: true, required: false
550
+ _protocol;
551
+ get protocol() {
552
+ return this.getStringAttribute('protocol');
553
+ }
554
+ set protocol(value) {
555
+ this._protocol = value;
556
+ }
557
+ resetProtocol() {
558
+ this._protocol = undefined;
559
+ }
560
+ // Temporarily expose input value. Use with caution.
561
+ get protocolInput() {
562
+ return this._protocol;
563
+ }
564
+ // snat_ips - computed: false, optional: true, required: false
565
+ _snatIps;
566
+ get snatIps() {
567
+ return this.getStringAttribute('snat_ips');
568
+ }
569
+ set snatIps(value) {
570
+ this._snatIps = value;
571
+ }
572
+ resetSnatIps() {
573
+ this._snatIps = undefined;
574
+ }
575
+ // Temporarily expose input value. Use with caution.
576
+ get snatIpsInput() {
577
+ return this._snatIps;
578
+ }
579
+ // snat_port - computed: false, optional: true, required: false
580
+ _snatPort;
581
+ get snatPort() {
582
+ return this.getStringAttribute('snat_port');
583
+ }
584
+ set snatPort(value) {
585
+ this._snatPort = value;
586
+ }
587
+ resetSnatPort() {
588
+ this._snatPort = undefined;
589
+ }
590
+ // Temporarily expose input value. Use with caution.
591
+ get snatPortInput() {
592
+ return this._snatPort;
593
+ }
594
+ // src_cidr - computed: false, optional: true, required: false
595
+ _srcCidr;
596
+ get srcCidr() {
597
+ return this.getStringAttribute('src_cidr');
598
+ }
599
+ set srcCidr(value) {
600
+ this._srcCidr = value;
601
+ }
602
+ resetSrcCidr() {
603
+ this._srcCidr = undefined;
604
+ }
605
+ // Temporarily expose input value. Use with caution.
606
+ get srcCidrInput() {
607
+ return this._srcCidr;
608
+ }
609
+ // src_port - computed: false, optional: true, required: false
610
+ _srcPort;
611
+ get srcPort() {
612
+ return this.getStringAttribute('src_port');
613
+ }
614
+ set srcPort(value) {
615
+ this._srcPort = value;
616
+ }
617
+ resetSrcPort() {
618
+ this._srcPort = undefined;
619
+ }
620
+ // Temporarily expose input value. Use with caution.
621
+ get srcPortInput() {
622
+ return this._srcPort;
623
+ }
624
+ }
625
+ export class GatewaySnatSnatPolicyList extends cdktf.ComplexList {
626
+ terraformResource;
627
+ terraformAttribute;
628
+ wrapsSet;
629
+ internalValue;
630
+ /**
631
+ * @param terraformResource The parent resource
632
+ * @param terraformAttribute The attribute on the parent resource this class is referencing
633
+ * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
634
+ */
635
+ constructor(terraformResource, terraformAttribute, wrapsSet) {
636
+ super(terraformResource, terraformAttribute, wrapsSet);
637
+ this.terraformResource = terraformResource;
638
+ this.terraformAttribute = terraformAttribute;
639
+ this.wrapsSet = wrapsSet;
640
+ }
641
+ /**
642
+ * @param index the index of the item to return
643
+ */
644
+ get(index) {
645
+ return new GatewaySnatSnatPolicyOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
646
+ }
647
+ }
648
+ /**
649
+ * Represents a {@link https://registry.terraform.io/providers/aviatrixsystems/aviatrix/8.1.10/docs/resources/gateway_snat aviatrix_gateway_snat}
650
+ */
651
+ export class GatewaySnat extends cdktf.TerraformResource {
652
+ // =================
653
+ // STATIC PROPERTIES
654
+ // =================
655
+ static tfResourceType = "aviatrix_gateway_snat";
656
+ // ==============
657
+ // STATIC Methods
658
+ // ==============
659
+ /**
660
+ * Generates CDKTF code for importing a GatewaySnat resource upon running "cdktf plan <stack-name>"
661
+ * @param scope The scope in which to define this construct
662
+ * @param importToId The construct id used in the generated config for the GatewaySnat to import
663
+ * @param importFromId The id of the existing GatewaySnat that should be imported. Refer to the {@link https://registry.terraform.io/providers/aviatrixsystems/aviatrix/8.1.10/docs/resources/gateway_snat#import import section} in the documentation of this resource for the id to use
664
+ * @param provider? Optional instance of the provider where the GatewaySnat to import is found
665
+ */
666
+ static generateConfigForImport(scope, importToId, importFromId, provider) {
667
+ return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aviatrix_gateway_snat", importId: importFromId, provider });
668
+ }
669
+ // ===========
670
+ // INITIALIZER
671
+ // ===========
672
+ /**
673
+ * Create a new {@link https://registry.terraform.io/providers/aviatrixsystems/aviatrix/8.1.10/docs/resources/gateway_snat aviatrix_gateway_snat} Resource
674
+ *
675
+ * @param scope The scope in which to define this construct
676
+ * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
677
+ * @param options GatewaySnatConfig
678
+ */
679
+ constructor(scope, id, config) {
680
+ super(scope, id, {
681
+ terraformResourceType: 'aviatrix_gateway_snat',
682
+ terraformGeneratorMetadata: {
683
+ providerName: 'aviatrix',
684
+ providerVersion: '8.1.10',
685
+ providerVersionConstraint: '8.1.10'
686
+ },
687
+ provider: config.provider,
688
+ dependsOn: config.dependsOn,
689
+ count: config.count,
690
+ lifecycle: config.lifecycle,
691
+ provisioners: config.provisioners,
692
+ connection: config.connection,
693
+ forEach: config.forEach
694
+ });
695
+ this._gwName = config.gwName;
696
+ this._id = config.id;
697
+ this._snatMode = config.snatMode;
698
+ this._syncToHa = config.syncToHa;
699
+ this._snatPolicy.internalValue = config.snatPolicy;
700
+ }
701
+ // ==========
702
+ // ATTRIBUTES
703
+ // ==========
704
+ // connection_policy - computed: true, optional: false, required: false
705
+ _connectionPolicy = new GatewaySnatConnectionPolicyList(this, "connection_policy", false);
706
+ get connectionPolicy() {
707
+ return this._connectionPolicy;
708
+ }
709
+ // gw_name - computed: false, optional: false, required: true
710
+ _gwName;
711
+ get gwName() {
712
+ return this.getStringAttribute('gw_name');
713
+ }
714
+ set gwName(value) {
715
+ this._gwName = value;
716
+ }
717
+ // Temporarily expose input value. Use with caution.
718
+ get gwNameInput() {
719
+ return this._gwName;
720
+ }
721
+ // id - computed: true, optional: true, required: false
722
+ _id;
723
+ get id() {
724
+ return this.getStringAttribute('id');
725
+ }
726
+ set id(value) {
727
+ this._id = value;
728
+ }
729
+ resetId() {
730
+ this._id = undefined;
731
+ }
732
+ // Temporarily expose input value. Use with caution.
733
+ get idInput() {
734
+ return this._id;
735
+ }
736
+ // interface_policy - computed: true, optional: false, required: false
737
+ _interfacePolicy = new GatewaySnatInterfacePolicyList(this, "interface_policy", false);
738
+ get interfacePolicy() {
739
+ return this._interfacePolicy;
740
+ }
741
+ // snat_mode - computed: false, optional: true, required: false
742
+ _snatMode;
743
+ get snatMode() {
744
+ return this.getStringAttribute('snat_mode');
745
+ }
746
+ set snatMode(value) {
747
+ this._snatMode = value;
748
+ }
749
+ resetSnatMode() {
750
+ this._snatMode = undefined;
751
+ }
752
+ // Temporarily expose input value. Use with caution.
753
+ get snatModeInput() {
754
+ return this._snatMode;
755
+ }
756
+ // sync_to_ha - computed: false, optional: true, required: false
757
+ _syncToHa;
758
+ get syncToHa() {
759
+ return this.getBooleanAttribute('sync_to_ha');
760
+ }
761
+ set syncToHa(value) {
762
+ this._syncToHa = value;
763
+ }
764
+ resetSyncToHa() {
765
+ this._syncToHa = undefined;
766
+ }
767
+ // Temporarily expose input value. Use with caution.
768
+ get syncToHaInput() {
769
+ return this._syncToHa;
770
+ }
771
+ // snat_policy - computed: false, optional: true, required: false
772
+ _snatPolicy = new GatewaySnatSnatPolicyList(this, "snat_policy", false);
773
+ get snatPolicy() {
774
+ return this._snatPolicy;
775
+ }
776
+ putSnatPolicy(value) {
777
+ this._snatPolicy.internalValue = value;
778
+ }
779
+ resetSnatPolicy() {
780
+ this._snatPolicy.internalValue = undefined;
781
+ }
782
+ // Temporarily expose input value. Use with caution.
783
+ get snatPolicyInput() {
784
+ return this._snatPolicy.internalValue;
785
+ }
786
+ // =========
787
+ // SYNTHESIS
788
+ // =========
789
+ synthesizeAttributes() {
790
+ return {
791
+ gw_name: cdktf.stringToTerraform(this._gwName),
792
+ id: cdktf.stringToTerraform(this._id),
793
+ snat_mode: cdktf.stringToTerraform(this._snatMode),
794
+ sync_to_ha: cdktf.booleanToTerraform(this._syncToHa),
795
+ snat_policy: cdktf.listMapper(gatewaySnatSnatPolicyToTerraform, true)(this._snatPolicy.internalValue),
796
+ };
797
+ }
798
+ synthesizeHclAttributes() {
799
+ const attrs = {
800
+ gw_name: {
801
+ value: cdktf.stringToHclTerraform(this._gwName),
802
+ isBlock: false,
803
+ type: "simple",
804
+ storageClassType: "string",
805
+ },
806
+ id: {
807
+ value: cdktf.stringToHclTerraform(this._id),
808
+ isBlock: false,
809
+ type: "simple",
810
+ storageClassType: "string",
811
+ },
812
+ snat_mode: {
813
+ value: cdktf.stringToHclTerraform(this._snatMode),
814
+ isBlock: false,
815
+ type: "simple",
816
+ storageClassType: "string",
817
+ },
818
+ sync_to_ha: {
819
+ value: cdktf.booleanToHclTerraform(this._syncToHa),
820
+ isBlock: false,
821
+ type: "simple",
822
+ storageClassType: "boolean",
823
+ },
824
+ snat_policy: {
825
+ value: cdktf.listMapperHcl(gatewaySnatSnatPolicyToHclTerraform, true)(this._snatPolicy.internalValue),
826
+ isBlock: true,
827
+ type: "list",
828
+ storageClassType: "GatewaySnatSnatPolicyList",
829
+ },
830
+ };
831
+ // remove undefined attributes
832
+ return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
833
+ }
834
+ }