@pulumi/scm 1.0.0-alpha.1762562132 → 1.0.0-alpha.1762572739
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.
- package/address.d.ts +3 -3
- package/address.js +3 -3
- package/addressGroup.d.ts +2 -2
- package/addressGroup.js +2 -2
- package/{aggregateEthernetInterface.d.ts → aggregateInterface.d.ts} +26 -24
- package/{aggregateEthernetInterface.js → aggregateInterface.js} +13 -11
- package/aggregateInterface.js.map +1 -0
- package/antiSpywareSignature.d.ts +3 -3
- package/appOverrideRule.d.ts +128 -3
- package/appOverrideRule.js +95 -0
- package/appOverrideRule.js.map +1 -1
- package/applicationFilter.d.ts +16 -0
- package/applicationFilter.js +16 -0
- package/applicationFilter.js.map +1 -1
- package/authenticationRule.d.ts +123 -0
- package/authenticationRule.js +103 -0
- package/authenticationRule.js.map +1 -1
- package/bgpRouteMapRedistribution.d.ts +6 -6
- package/certificateProfile.d.ts +29 -0
- package/certificateProfile.js +29 -0
- package/certificateProfile.js.map +1 -1
- package/decryptionProfile.d.ts +139 -0
- package/decryptionProfile.js +139 -0
- package/decryptionProfile.js.map +1 -1
- package/decryptionRule.d.ts +139 -0
- package/decryptionRule.js +119 -0
- package/decryptionRule.js.map +1 -1
- package/dnsProxy.d.ts +6 -6
- package/dnsSecurityProfile.d.ts +2 -0
- package/dnsSecurityProfile.js +2 -0
- package/dnsSecurityProfile.js.map +1 -1
- package/dynamicUserGroup.d.ts +3 -3
- package/dynamicUserGroup.js +3 -3
- package/ethernetInterface.d.ts +13 -11
- package/ethernetInterface.js +2 -0
- package/ethernetInterface.js.map +1 -1
- package/externalDynamicList.d.ts +80 -0
- package/externalDynamicList.js +80 -0
- package/externalDynamicList.js.map +1 -1
- package/folder.d.ts +60 -0
- package/folder.js +60 -0
- package/folder.js.map +1 -1
- package/getAddressGroupList.d.ts +4 -4
- package/getAddressGroupList.js +4 -4
- package/getAddressList.d.ts +4 -4
- package/getAddressList.js +4 -4
- package/getAggregateInterface.d.ts +116 -0
- package/getAggregateInterface.js +68 -0
- package/getAggregateInterface.js.map +1 -0
- package/{getAggregateEthernetInterfaceList.d.ts → getAggregateInterfaceList.d.ts} +35 -9
- package/getAggregateInterfaceList.js +66 -0
- package/getAggregateInterfaceList.js.map +1 -0
- package/getAntiSpywareProfileList.d.ts +2 -2
- package/getAntiSpywareProfileList.js +2 -2
- package/getAntiSpywareSignature.d.ts +1 -1
- package/getAntiSpywareSignatureList.d.ts +2 -2
- package/getAntiSpywareSignatureList.js +2 -2
- package/getAppOverrideRule.d.ts +65 -1
- package/getAppOverrideRule.js +52 -0
- package/getAppOverrideRule.js.map +1 -1
- package/getAppOverrideRuleList.d.ts +48 -2
- package/getAppOverrideRuleList.js +36 -2
- package/getAppOverrideRuleList.js.map +1 -1
- package/getApplicationGroupList.d.ts +4 -4
- package/getApplicationGroupList.js +4 -4
- package/getApplicationList.d.ts +2 -2
- package/getApplicationList.js +2 -2
- package/getAuthenticationRule.d.ts +74 -0
- package/getAuthenticationRule.js +62 -0
- package/getAuthenticationRule.js.map +1 -1
- package/getAuthenticationRuleList.d.ts +50 -2
- package/getAuthenticationRuleList.js +38 -2
- package/getAuthenticationRuleList.js.map +1 -1
- package/getBgpRouteMapRedistribution.d.ts +7 -7
- package/getCertificateProfileList.d.ts +2 -2
- package/getCertificateProfileList.js +2 -2
- package/getDecryptionProfile.d.ts +40 -0
- package/getDecryptionProfile.js +40 -0
- package/getDecryptionProfile.js.map +1 -1
- package/getDecryptionProfileList.d.ts +32 -0
- package/getDecryptionProfileList.js +32 -0
- package/getDecryptionProfileList.js.map +1 -1
- package/getDecryptionRule.d.ts +74 -0
- package/getDecryptionRule.js +62 -0
- package/getDecryptionRule.js.map +1 -1
- package/getDecryptionRuleList.d.ts +48 -2
- package/getDecryptionRuleList.js +36 -2
- package/getDecryptionRuleList.js.map +1 -1
- package/getDnsProxy.d.ts +1 -1
- package/getDnsSecurityProfile.d.ts +40 -0
- package/getDnsSecurityProfile.js +40 -0
- package/getDnsSecurityProfile.js.map +1 -1
- package/getDnsSecurityProfileList.d.ts +32 -0
- package/getDnsSecurityProfileList.js +32 -0
- package/getDnsSecurityProfileList.js.map +1 -1
- package/getDynamicUserGroupList.d.ts +4 -4
- package/getDynamicUserGroupList.js +4 -4
- package/getEthernetInterface.d.ts +40 -2
- package/getEthernetInterface.js +38 -0
- package/getEthernetInterface.js.map +1 -1
- package/getEthernetInterfaceList.d.ts +26 -0
- package/getEthernetInterfaceList.js +26 -0
- package/getEthernetInterfaceList.js.map +1 -1
- package/getExternalDynamicListList.d.ts +4 -4
- package/getExternalDynamicListList.js +4 -4
- package/getFolder.d.ts +36 -0
- package/getFolder.js +36 -0
- package/getFolder.js.map +1 -1
- package/getHipObjectList.d.ts +4 -4
- package/getHipObjectList.js +4 -4
- package/getHipProfileList.d.ts +4 -4
- package/getHipProfileList.js +4 -4
- package/getInterfaceManagementProfile.d.ts +89 -8
- package/getInterfaceManagementProfile.js +80 -0
- package/getInterfaceManagementProfile.js.map +1 -1
- package/getInterfaceManagementProfileList.d.ts +42 -0
- package/getInterfaceManagementProfileList.js +42 -0
- package/getInterfaceManagementProfileList.js.map +1 -1
- package/getLayer2Subinterface.d.ts +42 -2
- package/getLayer2Subinterface.js +40 -0
- package/getLayer2Subinterface.js.map +1 -1
- package/getLayer2SubinterfaceList.d.ts +26 -0
- package/getLayer2SubinterfaceList.js +26 -0
- package/getLayer2SubinterfaceList.js.map +1 -1
- package/getLayer3Subinterface.d.ts +45 -3
- package/getLayer3Subinterface.js +42 -0
- package/getLayer3Subinterface.js.map +1 -1
- package/getLayer3SubinterfaceList.d.ts +26 -0
- package/getLayer3SubinterfaceList.js +26 -0
- package/getLayer3SubinterfaceList.js.map +1 -1
- package/getLogicalRouter.d.ts +38 -0
- package/getLogicalRouter.js +38 -0
- package/getLogicalRouter.js.map +1 -1
- package/getLogicalRouterList.d.ts +40 -0
- package/getLogicalRouterList.js +30 -0
- package/getLogicalRouterList.js.map +1 -1
- package/getLoopbackInterface.d.ts +49 -7
- package/getLoopbackInterface.js +38 -0
- package/getLoopbackInterface.js.map +1 -1
- package/getLoopbackInterfaceList.d.ts +26 -0
- package/getLoopbackInterfaceList.js +26 -0
- package/getLoopbackInterfaceList.js.map +1 -1
- package/getNatRule.d.ts +86 -14
- package/getNatRule.js +76 -0
- package/getNatRule.js.map +1 -1
- package/getNatRuleList.d.ts +52 -2
- package/getNatRuleList.js +40 -2
- package/getNatRuleList.js.map +1 -1
- package/getPbfRule.d.ts +88 -0
- package/getPbfRule.js +88 -0
- package/getPbfRule.js.map +1 -1
- package/getPbfRuleList.d.ts +34 -0
- package/getPbfRuleList.js +34 -0
- package/getPbfRuleList.js.map +1 -1
- package/getQosPolicyRule.d.ts +72 -0
- package/getQosPolicyRule.js +60 -0
- package/getQosPolicyRule.js.map +1 -1
- package/getQosPolicyRuleList.d.ts +48 -2
- package/getQosPolicyRuleList.js +36 -2
- package/getQosPolicyRuleList.js.map +1 -1
- package/getRadiusServerProfile.d.ts +54 -0
- package/getRadiusServerProfile.js +54 -0
- package/getRadiusServerProfile.js.map +1 -1
- package/getSdwanTrafficDistributionProfile.d.ts +1 -1
- package/getSecurityRule.d.ts +106 -0
- package/getSecurityRule.js +94 -0
- package/getSecurityRule.js.map +1 -1
- package/getSecurityRuleList.d.ts +46 -2
- package/getSecurityRuleList.js +34 -2
- package/getSecurityRuleList.js.map +1 -1
- package/getServiceConnection.d.ts +177 -1
- package/getServiceConnection.js +176 -0
- package/getServiceConnection.js.map +1 -1
- package/getServiceConnectionGroup.d.ts +208 -0
- package/getServiceConnectionGroup.js +208 -0
- package/getServiceConnectionGroup.js.map +1 -1
- package/getServiceGroupList.d.ts +2 -2
- package/getServiceGroupList.js +2 -2
- package/getServiceList.d.ts +4 -4
- package/getServiceList.js +4 -4
- package/getSnippet.d.ts +48 -0
- package/getSnippet.js +48 -0
- package/getSnippet.js.map +1 -1
- package/getSnippetList.d.ts +24 -0
- package/getSnippetList.js +24 -0
- package/getSnippetList.js.map +1 -1
- package/getTagList.d.ts +2 -2
- package/getTagList.js +2 -2
- package/getTunnelInterface.d.ts +42 -4
- package/getTunnelInterface.js +38 -0
- package/getTunnelInterface.js.map +1 -1
- package/getTunnelInterfaceList.d.ts +26 -0
- package/getTunnelInterfaceList.js +26 -0
- package/getTunnelInterfaceList.js.map +1 -1
- package/getUrlAccessProfileList.d.ts +2 -2
- package/getUrlAccessProfileList.js +2 -2
- package/getUrlCategoryList.d.ts +4 -4
- package/getUrlCategoryList.js +4 -4
- package/getVlanInterface.d.ts +46 -6
- package/getVlanInterface.js +40 -0
- package/getVlanInterface.js.map +1 -1
- package/getVlanInterfaceList.d.ts +26 -0
- package/getVlanInterfaceList.js +26 -0
- package/getVlanInterfaceList.js.map +1 -1
- package/getVulnerabilityProtectionProfileList.d.ts +2 -2
- package/getVulnerabilityProtectionProfileList.js +2 -2
- package/getVulnerabilityProtectionSignature.d.ts +41 -1
- package/getVulnerabilityProtectionSignature.js +40 -0
- package/getVulnerabilityProtectionSignature.js.map +1 -1
- package/getVulnerabilityProtectionSignatureList.d.ts +32 -0
- package/getVulnerabilityProtectionSignatureList.js +32 -0
- package/getVulnerabilityProtectionSignatureList.js.map +1 -1
- package/getZone.d.ts +44 -0
- package/getZone.js +44 -0
- package/getZone.js.map +1 -1
- package/getZoneList.d.ts +26 -0
- package/getZoneList.js +26 -0
- package/getZoneList.js.map +1 -1
- package/ikeGateway.d.ts +49 -0
- package/ikeGateway.js +49 -0
- package/ikeGateway.js.map +1 -1
- package/index.d.ts +9 -9
- package/index.js +12 -12
- package/index.js.map +1 -1
- package/interfaceManagementProfile.d.ts +56 -24
- package/interfaceManagementProfile.js +30 -0
- package/interfaceManagementProfile.js.map +1 -1
- package/ipsecCryptoProfile.d.ts +28 -0
- package/ipsecCryptoProfile.js +28 -0
- package/ipsecCryptoProfile.js.map +1 -1
- package/ipsecTunnel.d.ts +66 -0
- package/ipsecTunnel.js +66 -0
- package/ipsecTunnel.js.map +1 -1
- package/layer2Subinterface.d.ts +36 -7
- package/layer2Subinterface.js +32 -0
- package/layer2Subinterface.js.map +1 -1
- package/layer3Subinterface.d.ts +70 -11
- package/layer3Subinterface.js +59 -0
- package/layer3Subinterface.js.map +1 -1
- package/logicalRouter.d.ts +2 -0
- package/logicalRouter.js +2 -0
- package/logicalRouter.js.map +1 -1
- package/loopbackInterface.d.ts +58 -15
- package/loopbackInterface.js +35 -2
- package/loopbackInterface.js.map +1 -1
- package/natRule.d.ts +135 -42
- package/natRule.js +121 -8
- package/natRule.js.map +1 -1
- package/package.json +2 -2
- package/pbfRule.d.ts +89 -0
- package/pbfRule.js +89 -0
- package/pbfRule.js.map +1 -1
- package/qosPolicyRule.d.ts +95 -0
- package/qosPolicyRule.js +75 -0
- package/qosPolicyRule.js.map +1 -1
- package/radiusServerProfile.d.ts +38 -0
- package/radiusServerProfile.js +38 -0
- package/radiusServerProfile.js.map +1 -1
- package/remoteNetwork.d.ts +81 -0
- package/remoteNetwork.js +81 -0
- package/remoteNetwork.js.map +1 -1
- package/sdwanTrafficDistributionProfile.d.ts +4 -4
- package/securityRule.d.ts +181 -0
- package/securityRule.js +161 -0
- package/securityRule.js.map +1 -1
- package/serviceConnection.d.ts +82 -3
- package/serviceConnection.js +81 -2
- package/serviceConnection.js.map +1 -1
- package/serviceConnectionGroup.d.ts +100 -0
- package/serviceConnectionGroup.js +100 -0
- package/serviceConnectionGroup.js.map +1 -1
- package/serviceGroup.d.ts +2 -2
- package/serviceGroup.js +2 -2
- package/snippet.d.ts +23 -0
- package/snippet.js +23 -0
- package/snippet.js.map +1 -1
- package/tag.d.ts +3 -3
- package/tag.js +3 -3
- package/tunnelInterface.d.ts +42 -12
- package/tunnelInterface.js +32 -2
- package/tunnelInterface.js.map +1 -1
- package/types/input.d.ts +607 -335
- package/types/output.d.ts +1945 -1069
- package/vlanInterface.d.ts +40 -20
- package/vlanInterface.js +20 -0
- package/vlanInterface.js.map +1 -1
- package/vulnerabilityProtectionSignature.d.ts +12 -10
- package/vulnerabilityProtectionSignature.js +14 -0
- package/vulnerabilityProtectionSignature.js.map +1 -1
- package/zone.d.ts +71 -0
- package/zone.js +71 -0
- package/zone.js.map +1 -1
- package/aggregateEthernetInterface.js.map +0 -1
- package/getAggregateEthernetInterface.d.ts +0 -78
- package/getAggregateEthernetInterface.js +0 -30
- package/getAggregateEthernetInterface.js.map +0 -1
- package/getAggregateEthernetInterfaceList.js +0 -40
- package/getAggregateEthernetInterfaceList.js.map +0 -1
package/securityRule.d.ts
CHANGED
|
@@ -5,6 +5,163 @@ import * as outputs from "./types/output";
|
|
|
5
5
|
* SecurityRule resource
|
|
6
6
|
*
|
|
7
7
|
* ## Example Usage
|
|
8
|
+
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
11
|
+
* import * as scm from "@pulumi/scm";
|
|
12
|
+
*
|
|
13
|
+
* // First, create the tag objects that you will reference.
|
|
14
|
+
* const outboundTag = new scm.Tag("outbound_tag", {
|
|
15
|
+
* folder: "All",
|
|
16
|
+
* name: "outbound143",
|
|
17
|
+
* color: "Red",
|
|
18
|
+
* });
|
|
19
|
+
* const webTag = new scm.Tag("web_tag", {
|
|
20
|
+
* folder: "All",
|
|
21
|
+
* name: "web143",
|
|
22
|
+
* color: "Blue",
|
|
23
|
+
* });
|
|
24
|
+
* // --- Existing Rules (Backward Compatibility) ---
|
|
25
|
+
* const standardWebAccess = new scm.SecurityRule("standard_web_access", {
|
|
26
|
+
* folder: "All",
|
|
27
|
+
* name: "Allow Standard Web Access143",
|
|
28
|
+
* description: "Allow outbound web traffic to any destination...",
|
|
29
|
+
* position: "pre",
|
|
30
|
+
* action: "allow",
|
|
31
|
+
* categories: ["any"],
|
|
32
|
+
* applications: [
|
|
33
|
+
* "web-browsing",
|
|
34
|
+
* "ssl",
|
|
35
|
+
* ],
|
|
36
|
+
* services: [
|
|
37
|
+
* "service-http",
|
|
38
|
+
* "service-https",
|
|
39
|
+
* ],
|
|
40
|
+
* froms: [
|
|
41
|
+
* "untrust",
|
|
42
|
+
* "trust",
|
|
43
|
+
* ],
|
|
44
|
+
* tos: ["trust"],
|
|
45
|
+
* sources: ["any"],
|
|
46
|
+
* destinations: ["any"],
|
|
47
|
+
* negateSource: false,
|
|
48
|
+
* negateDestination: false,
|
|
49
|
+
* sourceUsers: ["any"],
|
|
50
|
+
* sourceHips: ["any"],
|
|
51
|
+
* destinationHips: ["any"],
|
|
52
|
+
* logStart: true,
|
|
53
|
+
* logEnd: true,
|
|
54
|
+
* disabled: false,
|
|
55
|
+
* tags: [
|
|
56
|
+
* outboundTag.name,
|
|
57
|
+
* webTag.name,
|
|
58
|
+
* ],
|
|
59
|
+
* });
|
|
60
|
+
* const blockRiskySaas = new scm.SecurityRule("block_risky_saas", {
|
|
61
|
+
* folder: "All",
|
|
62
|
+
* name: "Block Risky SaaS Applications143",
|
|
63
|
+
* description: "Prevent data exfiltration by blocking risky SaaS apps...",
|
|
64
|
+
* action: "deny",
|
|
65
|
+
* policyType: "Internet",
|
|
66
|
+
* securitySettings: {
|
|
67
|
+
* antiSpyware: "yes",
|
|
68
|
+
* vulnerability: "yes",
|
|
69
|
+
* virusAndWildfireAnalysis: "yes",
|
|
70
|
+
* },
|
|
71
|
+
* blockWebApplications: ["facebook-posting"],
|
|
72
|
+
* logSettings: {
|
|
73
|
+
* logSessions: true,
|
|
74
|
+
* },
|
|
75
|
+
* froms: ["any"],
|
|
76
|
+
* tos: ["any"],
|
|
77
|
+
* sources: ["any"],
|
|
78
|
+
* destinations: ["any"],
|
|
79
|
+
* sourceUsers: ["any"],
|
|
80
|
+
* disabled: false,
|
|
81
|
+
* tags: [
|
|
82
|
+
* outboundTag.name,
|
|
83
|
+
* webTag.name,
|
|
84
|
+
* ],
|
|
85
|
+
* });
|
|
86
|
+
* // --- NEW Examples Demonstrating Rule Ordering ---
|
|
87
|
+
* // Example 1: Place a critical block rule at the absolute top
|
|
88
|
+
* const criticalBlockTop = new scm.SecurityRule("critical_block_top", {
|
|
89
|
+
* folder: "All",
|
|
90
|
+
* name: "CRITICAL Block Malicious IPs Top143",
|
|
91
|
+
* description: "Always block known malicious IPs first.",
|
|
92
|
+
* relativePosition: "top",
|
|
93
|
+
* action: "deny",
|
|
94
|
+
* froms: ["any"],
|
|
95
|
+
* tos: ["any"],
|
|
96
|
+
* sources: ["any"],
|
|
97
|
+
* destinations: ["any"],
|
|
98
|
+
* sourceUsers: ["any"],
|
|
99
|
+
* categories: ["any"],
|
|
100
|
+
* applications: ["any"],
|
|
101
|
+
* services: ["any"],
|
|
102
|
+
* logEnd: true,
|
|
103
|
+
* tags: [outboundTag.name],
|
|
104
|
+
* });
|
|
105
|
+
* // Example 2: Place a cleanup rule at the absolute bottom
|
|
106
|
+
* const cleanupDenyBottom = new scm.SecurityRule("cleanup_deny_bottom", {
|
|
107
|
+
* folder: "All",
|
|
108
|
+
* name: "Cleanup Deny All Bottom143",
|
|
109
|
+
* description: "Deny any traffic not explicitly allowed.",
|
|
110
|
+
* relativePosition: "bottom",
|
|
111
|
+
* action: "deny",
|
|
112
|
+
* froms: ["any"],
|
|
113
|
+
* tos: ["any"],
|
|
114
|
+
* sources: ["any"],
|
|
115
|
+
* destinations: ["any"],
|
|
116
|
+
* sourceUsers: ["any"],
|
|
117
|
+
* categories: ["any"],
|
|
118
|
+
* applications: ["any"],
|
|
119
|
+
* services: ["any"],
|
|
120
|
+
* logEnd: true,
|
|
121
|
+
* tags: [outboundTag.name],
|
|
122
|
+
* });
|
|
123
|
+
* // Example 3: Place a rule *before* the standard web access rule
|
|
124
|
+
* const allowUpdatesBeforeWeb = new scm.SecurityRule("allow_updates_before_web", {
|
|
125
|
+
* folder: "All",
|
|
126
|
+
* name: "Allow OS Updates Before Web143",
|
|
127
|
+
* description: "Allow specific OS update traffic before general web access.",
|
|
128
|
+
* relativePosition: "before",
|
|
129
|
+
* targetRule: standardWebAccess.id,
|
|
130
|
+
* action: "allow",
|
|
131
|
+
* froms: ["trust"],
|
|
132
|
+
* tos: ["untrust"],
|
|
133
|
+
* sources: ["any"],
|
|
134
|
+
* destinations: ["any"],
|
|
135
|
+
* sourceUsers: ["any"],
|
|
136
|
+
* categories: ["any"],
|
|
137
|
+
* applications: [
|
|
138
|
+
* "ms-update",
|
|
139
|
+
* "apple-update",
|
|
140
|
+
* ],
|
|
141
|
+
* services: ["service-https"],
|
|
142
|
+
* logEnd: true,
|
|
143
|
+
* tags: [outboundTag.name],
|
|
144
|
+
* });
|
|
145
|
+
* // Example 4: Place a rule *after* the standard web access rule
|
|
146
|
+
* const allowCorpAppsAfterWeb = new scm.SecurityRule("allow_corp_apps_after_web", {
|
|
147
|
+
* folder: "All",
|
|
148
|
+
* name: "Allow Corp Apps After Web143",
|
|
149
|
+
* description: "Allow access to specific corporate apps after general web access.",
|
|
150
|
+
* relativePosition: "after",
|
|
151
|
+
* targetRule: standardWebAccess.id,
|
|
152
|
+
* action: "allow",
|
|
153
|
+
* froms: ["trust"],
|
|
154
|
+
* tos: ["untrust"],
|
|
155
|
+
* sources: ["any"],
|
|
156
|
+
* destinations: ["any"],
|
|
157
|
+
* sourceUsers: ["any"],
|
|
158
|
+
* categories: ["any"],
|
|
159
|
+
* applications: ["ms-update"],
|
|
160
|
+
* services: ["service-https"],
|
|
161
|
+
* logEnd: true,
|
|
162
|
+
* tags: [webTag.name],
|
|
163
|
+
* });
|
|
164
|
+
* ```
|
|
8
165
|
*/
|
|
9
166
|
export declare class SecurityRule extends pulumi.CustomResource {
|
|
10
167
|
/**
|
|
@@ -130,6 +287,10 @@ export declare class SecurityRule extends pulumi.CustomResource {
|
|
|
130
287
|
* The security profile object
|
|
131
288
|
*/
|
|
132
289
|
readonly profileSetting: pulumi.Output<outputs.SecurityRuleProfileSetting>;
|
|
290
|
+
/**
|
|
291
|
+
* Relative positioning rule. String must be one of these: `"before"`, `"after"`, `"top"`, `"bottom"`. If not specified, rule is created at the bottom of the ruleset.
|
|
292
|
+
*/
|
|
293
|
+
readonly relativePosition: pulumi.Output<string | undefined>;
|
|
133
294
|
/**
|
|
134
295
|
* Schedule in which this rule will be applied
|
|
135
296
|
*/
|
|
@@ -162,6 +323,10 @@ export declare class SecurityRule extends pulumi.CustomResource {
|
|
|
162
323
|
* The tags associated with the security rule
|
|
163
324
|
*/
|
|
164
325
|
readonly tags: pulumi.Output<string[] | undefined>;
|
|
326
|
+
/**
|
|
327
|
+
* The name or UUID of the rule to position this rule relative to. Required when `relativePosition` is `"before"` or `"after"`.
|
|
328
|
+
*/
|
|
329
|
+
readonly targetRule: pulumi.Output<string | undefined>;
|
|
165
330
|
/**
|
|
166
331
|
* Tenant restrictions
|
|
167
332
|
*/
|
|
@@ -292,6 +457,10 @@ export interface SecurityRuleState {
|
|
|
292
457
|
* The security profile object
|
|
293
458
|
*/
|
|
294
459
|
profileSetting?: pulumi.Input<inputs.SecurityRuleProfileSetting>;
|
|
460
|
+
/**
|
|
461
|
+
* Relative positioning rule. String must be one of these: `"before"`, `"after"`, `"top"`, `"bottom"`. If not specified, rule is created at the bottom of the ruleset.
|
|
462
|
+
*/
|
|
463
|
+
relativePosition?: pulumi.Input<string>;
|
|
295
464
|
/**
|
|
296
465
|
* Schedule in which this rule will be applied
|
|
297
466
|
*/
|
|
@@ -324,6 +493,10 @@ export interface SecurityRuleState {
|
|
|
324
493
|
* The tags associated with the security rule
|
|
325
494
|
*/
|
|
326
495
|
tags?: pulumi.Input<pulumi.Input<string>[]>;
|
|
496
|
+
/**
|
|
497
|
+
* The name or UUID of the rule to position this rule relative to. Required when `relativePosition` is `"before"` or `"after"`.
|
|
498
|
+
*/
|
|
499
|
+
targetRule?: pulumi.Input<string>;
|
|
327
500
|
/**
|
|
328
501
|
* Tenant restrictions
|
|
329
502
|
*/
|
|
@@ -446,6 +619,10 @@ export interface SecurityRuleArgs {
|
|
|
446
619
|
* The security profile object
|
|
447
620
|
*/
|
|
448
621
|
profileSetting?: pulumi.Input<inputs.SecurityRuleProfileSetting>;
|
|
622
|
+
/**
|
|
623
|
+
* Relative positioning rule. String must be one of these: `"before"`, `"after"`, `"top"`, `"bottom"`. If not specified, rule is created at the bottom of the ruleset.
|
|
624
|
+
*/
|
|
625
|
+
relativePosition?: pulumi.Input<string>;
|
|
449
626
|
/**
|
|
450
627
|
* Schedule in which this rule will be applied
|
|
451
628
|
*/
|
|
@@ -478,6 +655,10 @@ export interface SecurityRuleArgs {
|
|
|
478
655
|
* The tags associated with the security rule
|
|
479
656
|
*/
|
|
480
657
|
tags?: pulumi.Input<pulumi.Input<string>[]>;
|
|
658
|
+
/**
|
|
659
|
+
* The name or UUID of the rule to position this rule relative to. Required when `relativePosition` is `"before"` or `"after"`.
|
|
660
|
+
*/
|
|
661
|
+
targetRule?: pulumi.Input<string>;
|
|
481
662
|
/**
|
|
482
663
|
* Tenant restrictions
|
|
483
664
|
*/
|
package/securityRule.js
CHANGED
|
@@ -9,6 +9,163 @@ const utilities = require("./utilities");
|
|
|
9
9
|
* SecurityRule resource
|
|
10
10
|
*
|
|
11
11
|
* ## Example Usage
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
15
|
+
* import * as scm from "@pulumi/scm";
|
|
16
|
+
*
|
|
17
|
+
* // First, create the tag objects that you will reference.
|
|
18
|
+
* const outboundTag = new scm.Tag("outbound_tag", {
|
|
19
|
+
* folder: "All",
|
|
20
|
+
* name: "outbound143",
|
|
21
|
+
* color: "Red",
|
|
22
|
+
* });
|
|
23
|
+
* const webTag = new scm.Tag("web_tag", {
|
|
24
|
+
* folder: "All",
|
|
25
|
+
* name: "web143",
|
|
26
|
+
* color: "Blue",
|
|
27
|
+
* });
|
|
28
|
+
* // --- Existing Rules (Backward Compatibility) ---
|
|
29
|
+
* const standardWebAccess = new scm.SecurityRule("standard_web_access", {
|
|
30
|
+
* folder: "All",
|
|
31
|
+
* name: "Allow Standard Web Access143",
|
|
32
|
+
* description: "Allow outbound web traffic to any destination...",
|
|
33
|
+
* position: "pre",
|
|
34
|
+
* action: "allow",
|
|
35
|
+
* categories: ["any"],
|
|
36
|
+
* applications: [
|
|
37
|
+
* "web-browsing",
|
|
38
|
+
* "ssl",
|
|
39
|
+
* ],
|
|
40
|
+
* services: [
|
|
41
|
+
* "service-http",
|
|
42
|
+
* "service-https",
|
|
43
|
+
* ],
|
|
44
|
+
* froms: [
|
|
45
|
+
* "untrust",
|
|
46
|
+
* "trust",
|
|
47
|
+
* ],
|
|
48
|
+
* tos: ["trust"],
|
|
49
|
+
* sources: ["any"],
|
|
50
|
+
* destinations: ["any"],
|
|
51
|
+
* negateSource: false,
|
|
52
|
+
* negateDestination: false,
|
|
53
|
+
* sourceUsers: ["any"],
|
|
54
|
+
* sourceHips: ["any"],
|
|
55
|
+
* destinationHips: ["any"],
|
|
56
|
+
* logStart: true,
|
|
57
|
+
* logEnd: true,
|
|
58
|
+
* disabled: false,
|
|
59
|
+
* tags: [
|
|
60
|
+
* outboundTag.name,
|
|
61
|
+
* webTag.name,
|
|
62
|
+
* ],
|
|
63
|
+
* });
|
|
64
|
+
* const blockRiskySaas = new scm.SecurityRule("block_risky_saas", {
|
|
65
|
+
* folder: "All",
|
|
66
|
+
* name: "Block Risky SaaS Applications143",
|
|
67
|
+
* description: "Prevent data exfiltration by blocking risky SaaS apps...",
|
|
68
|
+
* action: "deny",
|
|
69
|
+
* policyType: "Internet",
|
|
70
|
+
* securitySettings: {
|
|
71
|
+
* antiSpyware: "yes",
|
|
72
|
+
* vulnerability: "yes",
|
|
73
|
+
* virusAndWildfireAnalysis: "yes",
|
|
74
|
+
* },
|
|
75
|
+
* blockWebApplications: ["facebook-posting"],
|
|
76
|
+
* logSettings: {
|
|
77
|
+
* logSessions: true,
|
|
78
|
+
* },
|
|
79
|
+
* froms: ["any"],
|
|
80
|
+
* tos: ["any"],
|
|
81
|
+
* sources: ["any"],
|
|
82
|
+
* destinations: ["any"],
|
|
83
|
+
* sourceUsers: ["any"],
|
|
84
|
+
* disabled: false,
|
|
85
|
+
* tags: [
|
|
86
|
+
* outboundTag.name,
|
|
87
|
+
* webTag.name,
|
|
88
|
+
* ],
|
|
89
|
+
* });
|
|
90
|
+
* // --- NEW Examples Demonstrating Rule Ordering ---
|
|
91
|
+
* // Example 1: Place a critical block rule at the absolute top
|
|
92
|
+
* const criticalBlockTop = new scm.SecurityRule("critical_block_top", {
|
|
93
|
+
* folder: "All",
|
|
94
|
+
* name: "CRITICAL Block Malicious IPs Top143",
|
|
95
|
+
* description: "Always block known malicious IPs first.",
|
|
96
|
+
* relativePosition: "top",
|
|
97
|
+
* action: "deny",
|
|
98
|
+
* froms: ["any"],
|
|
99
|
+
* tos: ["any"],
|
|
100
|
+
* sources: ["any"],
|
|
101
|
+
* destinations: ["any"],
|
|
102
|
+
* sourceUsers: ["any"],
|
|
103
|
+
* categories: ["any"],
|
|
104
|
+
* applications: ["any"],
|
|
105
|
+
* services: ["any"],
|
|
106
|
+
* logEnd: true,
|
|
107
|
+
* tags: [outboundTag.name],
|
|
108
|
+
* });
|
|
109
|
+
* // Example 2: Place a cleanup rule at the absolute bottom
|
|
110
|
+
* const cleanupDenyBottom = new scm.SecurityRule("cleanup_deny_bottom", {
|
|
111
|
+
* folder: "All",
|
|
112
|
+
* name: "Cleanup Deny All Bottom143",
|
|
113
|
+
* description: "Deny any traffic not explicitly allowed.",
|
|
114
|
+
* relativePosition: "bottom",
|
|
115
|
+
* action: "deny",
|
|
116
|
+
* froms: ["any"],
|
|
117
|
+
* tos: ["any"],
|
|
118
|
+
* sources: ["any"],
|
|
119
|
+
* destinations: ["any"],
|
|
120
|
+
* sourceUsers: ["any"],
|
|
121
|
+
* categories: ["any"],
|
|
122
|
+
* applications: ["any"],
|
|
123
|
+
* services: ["any"],
|
|
124
|
+
* logEnd: true,
|
|
125
|
+
* tags: [outboundTag.name],
|
|
126
|
+
* });
|
|
127
|
+
* // Example 3: Place a rule *before* the standard web access rule
|
|
128
|
+
* const allowUpdatesBeforeWeb = new scm.SecurityRule("allow_updates_before_web", {
|
|
129
|
+
* folder: "All",
|
|
130
|
+
* name: "Allow OS Updates Before Web143",
|
|
131
|
+
* description: "Allow specific OS update traffic before general web access.",
|
|
132
|
+
* relativePosition: "before",
|
|
133
|
+
* targetRule: standardWebAccess.id,
|
|
134
|
+
* action: "allow",
|
|
135
|
+
* froms: ["trust"],
|
|
136
|
+
* tos: ["untrust"],
|
|
137
|
+
* sources: ["any"],
|
|
138
|
+
* destinations: ["any"],
|
|
139
|
+
* sourceUsers: ["any"],
|
|
140
|
+
* categories: ["any"],
|
|
141
|
+
* applications: [
|
|
142
|
+
* "ms-update",
|
|
143
|
+
* "apple-update",
|
|
144
|
+
* ],
|
|
145
|
+
* services: ["service-https"],
|
|
146
|
+
* logEnd: true,
|
|
147
|
+
* tags: [outboundTag.name],
|
|
148
|
+
* });
|
|
149
|
+
* // Example 4: Place a rule *after* the standard web access rule
|
|
150
|
+
* const allowCorpAppsAfterWeb = new scm.SecurityRule("allow_corp_apps_after_web", {
|
|
151
|
+
* folder: "All",
|
|
152
|
+
* name: "Allow Corp Apps After Web143",
|
|
153
|
+
* description: "Allow access to specific corporate apps after general web access.",
|
|
154
|
+
* relativePosition: "after",
|
|
155
|
+
* targetRule: standardWebAccess.id,
|
|
156
|
+
* action: "allow",
|
|
157
|
+
* froms: ["trust"],
|
|
158
|
+
* tos: ["untrust"],
|
|
159
|
+
* sources: ["any"],
|
|
160
|
+
* destinations: ["any"],
|
|
161
|
+
* sourceUsers: ["any"],
|
|
162
|
+
* categories: ["any"],
|
|
163
|
+
* applications: ["ms-update"],
|
|
164
|
+
* services: ["service-https"],
|
|
165
|
+
* logEnd: true,
|
|
166
|
+
* tags: [webTag.name],
|
|
167
|
+
* });
|
|
168
|
+
* ```
|
|
12
169
|
*/
|
|
13
170
|
class SecurityRule extends pulumi.CustomResource {
|
|
14
171
|
/**
|
|
@@ -65,6 +222,7 @@ class SecurityRule extends pulumi.CustomResource {
|
|
|
65
222
|
resourceInputs["policyType"] = state?.policyType;
|
|
66
223
|
resourceInputs["position"] = state?.position;
|
|
67
224
|
resourceInputs["profileSetting"] = state?.profileSetting;
|
|
225
|
+
resourceInputs["relativePosition"] = state?.relativePosition;
|
|
68
226
|
resourceInputs["schedule"] = state?.schedule;
|
|
69
227
|
resourceInputs["securitySettings"] = state?.securitySettings;
|
|
70
228
|
resourceInputs["services"] = state?.services;
|
|
@@ -73,6 +231,7 @@ class SecurityRule extends pulumi.CustomResource {
|
|
|
73
231
|
resourceInputs["sourceUsers"] = state?.sourceUsers;
|
|
74
232
|
resourceInputs["sources"] = state?.sources;
|
|
75
233
|
resourceInputs["tags"] = state?.tags;
|
|
234
|
+
resourceInputs["targetRule"] = state?.targetRule;
|
|
76
235
|
resourceInputs["tenantRestrictions"] = state?.tenantRestrictions;
|
|
77
236
|
resourceInputs["tfid"] = state?.tfid;
|
|
78
237
|
resourceInputs["tos"] = state?.tos;
|
|
@@ -106,6 +265,7 @@ class SecurityRule extends pulumi.CustomResource {
|
|
|
106
265
|
resourceInputs["policyType"] = args?.policyType;
|
|
107
266
|
resourceInputs["position"] = args?.position;
|
|
108
267
|
resourceInputs["profileSetting"] = args?.profileSetting;
|
|
268
|
+
resourceInputs["relativePosition"] = args?.relativePosition;
|
|
109
269
|
resourceInputs["schedule"] = args?.schedule;
|
|
110
270
|
resourceInputs["securitySettings"] = args?.securitySettings;
|
|
111
271
|
resourceInputs["services"] = args?.services;
|
|
@@ -114,6 +274,7 @@ class SecurityRule extends pulumi.CustomResource {
|
|
|
114
274
|
resourceInputs["sourceUsers"] = args?.sourceUsers;
|
|
115
275
|
resourceInputs["sources"] = args?.sources;
|
|
116
276
|
resourceInputs["tags"] = args?.tags;
|
|
277
|
+
resourceInputs["targetRule"] = args?.targetRule;
|
|
117
278
|
resourceInputs["tenantRestrictions"] = args?.tenantRestrictions;
|
|
118
279
|
resourceInputs["tos"] = args?.tos;
|
|
119
280
|
resourceInputs["tfid"] = undefined /*out*/;
|
package/securityRule.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"securityRule.js","sourceRoot":"","sources":["../securityRule.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"securityRule.js","sourceRoot":"","sources":["../securityRule.ts"],"names":[],"mappings":"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"}
|
package/serviceConnection.d.ts
CHANGED
|
@@ -5,6 +5,85 @@ import * as outputs from "./types/output";
|
|
|
5
5
|
* ServiceConnection resource
|
|
6
6
|
*
|
|
7
7
|
* ## Example Usage
|
|
8
|
+
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
11
|
+
* import * as scm from "@pulumi/scm";
|
|
12
|
+
*
|
|
13
|
+
* const config = new pulumi.Config();
|
|
14
|
+
* // The folder scope for the SCM resource (e.g., 'Shared', 'Predefined', or a specific folder name).
|
|
15
|
+
* const folderScope = config.get("folderScope") || "Service Connections";
|
|
16
|
+
* //# 1. Define the IKE Crypto Profile (IKE Phase 1)
|
|
17
|
+
* // Note: The resource name is plural: "scm_ike_crypto_profile"
|
|
18
|
+
* const example = new scm.IkeCryptoProfile("example", {
|
|
19
|
+
* name: "example-ike-crypto",
|
|
20
|
+
* folder: folderScope,
|
|
21
|
+
* hashes: ["sha256"],
|
|
22
|
+
* dhGroups: ["group14"],
|
|
23
|
+
* encryptions: ["aes-256-cbc"],
|
|
24
|
+
* });
|
|
25
|
+
* //# 2. Define the IPsec Crypto Profile (IKE Phase 2)
|
|
26
|
+
* // Note: The resource name is plural and nested blocks now use an equals sign (=).
|
|
27
|
+
* const exampleIpsecCryptoProfile = new scm.IpsecCryptoProfile("example", {
|
|
28
|
+
* name: "panw-IPSec-Crypto",
|
|
29
|
+
* folder: folderScope,
|
|
30
|
+
* esp: {
|
|
31
|
+
* encryptions: ["aes-256-gcm"],
|
|
32
|
+
* authentications: ["sha256"],
|
|
33
|
+
* },
|
|
34
|
+
* dhGroup: "group14",
|
|
35
|
+
* lifetime: {
|
|
36
|
+
* hours: 8,
|
|
37
|
+
* },
|
|
38
|
+
* });
|
|
39
|
+
* //# 3. Define the IKE Gateway
|
|
40
|
+
* // Note: The resource name is plural and nested blocks now use an equals sign (=).
|
|
41
|
+
* const exampleIkeGateway = new scm.IkeGateway("example", {
|
|
42
|
+
* name: "example-gateway",
|
|
43
|
+
* folder: folderScope,
|
|
44
|
+
* peerAddress: {
|
|
45
|
+
* ip: "1.1.1.1",
|
|
46
|
+
* },
|
|
47
|
+
* authentication: {
|
|
48
|
+
* preSharedKey: {
|
|
49
|
+
* key: "secret",
|
|
50
|
+
* },
|
|
51
|
+
* },
|
|
52
|
+
* protocol: {
|
|
53
|
+
* ikev1: {
|
|
54
|
+
* ikeCryptoProfile: example.name,
|
|
55
|
+
* },
|
|
56
|
+
* },
|
|
57
|
+
* });
|
|
58
|
+
* //# 4. Define the IPsec Tunnel
|
|
59
|
+
* // Note: Nested 'auto_key' block uses an equals sign (=).
|
|
60
|
+
* const exampleIpsecTunnel = new scm.IpsecTunnel("example", {
|
|
61
|
+
* name: "example-tunnel",
|
|
62
|
+
* folder: folderScope,
|
|
63
|
+
* tunnelInterface: "tunnel",
|
|
64
|
+
* antiReplay: true,
|
|
65
|
+
* copyTos: false,
|
|
66
|
+
* enableGreEncapsulation: false,
|
|
67
|
+
* autoKey: {
|
|
68
|
+
* ikeGateways: [{
|
|
69
|
+
* name: exampleIkeGateway.name,
|
|
70
|
+
* }],
|
|
71
|
+
* ipsecCryptoProfile: exampleIpsecCryptoProfile.name,
|
|
72
|
+
* },
|
|
73
|
+
* }, {
|
|
74
|
+
* dependsOn: [exampleIkeGateway],
|
|
75
|
+
* });
|
|
76
|
+
* const siteAVpnSc = new scm.ServiceConnection("site_a_vpn_sc", {
|
|
77
|
+
* name: "creating_a_service_connection",
|
|
78
|
+
* region: "us-west-1",
|
|
79
|
+
* ipsecTunnel: exampleIpsecTunnel.name,
|
|
80
|
+
* subnets: [
|
|
81
|
+
* "10.1.0.0/16",
|
|
82
|
+
* "172.16.0.0/24",
|
|
83
|
+
* ],
|
|
84
|
+
* sourceNat: true,
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
8
87
|
*/
|
|
9
88
|
export declare class ServiceConnection extends pulumi.CustomResource {
|
|
10
89
|
/**
|
|
@@ -25,7 +104,7 @@ export declare class ServiceConnection extends pulumi.CustomResource {
|
|
|
25
104
|
/**
|
|
26
105
|
* Backup s c
|
|
27
106
|
*/
|
|
28
|
-
readonly
|
|
107
|
+
readonly backupSc: pulumi.Output<string | undefined>;
|
|
29
108
|
/**
|
|
30
109
|
* Bgp peer
|
|
31
110
|
*/
|
|
@@ -97,7 +176,7 @@ export interface ServiceConnectionState {
|
|
|
97
176
|
/**
|
|
98
177
|
* Backup s c
|
|
99
178
|
*/
|
|
100
|
-
|
|
179
|
+
backupSc?: pulumi.Input<string>;
|
|
101
180
|
/**
|
|
102
181
|
* Bgp peer
|
|
103
182
|
*/
|
|
@@ -161,7 +240,7 @@ export interface ServiceConnectionArgs {
|
|
|
161
240
|
/**
|
|
162
241
|
* Backup s c
|
|
163
242
|
*/
|
|
164
|
-
|
|
243
|
+
backupSc?: pulumi.Input<string>;
|
|
165
244
|
/**
|
|
166
245
|
* Bgp peer
|
|
167
246
|
*/
|
package/serviceConnection.js
CHANGED
|
@@ -9,6 +9,85 @@ const utilities = require("./utilities");
|
|
|
9
9
|
* ServiceConnection resource
|
|
10
10
|
*
|
|
11
11
|
* ## Example Usage
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
15
|
+
* import * as scm from "@pulumi/scm";
|
|
16
|
+
*
|
|
17
|
+
* const config = new pulumi.Config();
|
|
18
|
+
* // The folder scope for the SCM resource (e.g., 'Shared', 'Predefined', or a specific folder name).
|
|
19
|
+
* const folderScope = config.get("folderScope") || "Service Connections";
|
|
20
|
+
* //# 1. Define the IKE Crypto Profile (IKE Phase 1)
|
|
21
|
+
* // Note: The resource name is plural: "scm_ike_crypto_profile"
|
|
22
|
+
* const example = new scm.IkeCryptoProfile("example", {
|
|
23
|
+
* name: "example-ike-crypto",
|
|
24
|
+
* folder: folderScope,
|
|
25
|
+
* hashes: ["sha256"],
|
|
26
|
+
* dhGroups: ["group14"],
|
|
27
|
+
* encryptions: ["aes-256-cbc"],
|
|
28
|
+
* });
|
|
29
|
+
* //# 2. Define the IPsec Crypto Profile (IKE Phase 2)
|
|
30
|
+
* // Note: The resource name is plural and nested blocks now use an equals sign (=).
|
|
31
|
+
* const exampleIpsecCryptoProfile = new scm.IpsecCryptoProfile("example", {
|
|
32
|
+
* name: "panw-IPSec-Crypto",
|
|
33
|
+
* folder: folderScope,
|
|
34
|
+
* esp: {
|
|
35
|
+
* encryptions: ["aes-256-gcm"],
|
|
36
|
+
* authentications: ["sha256"],
|
|
37
|
+
* },
|
|
38
|
+
* dhGroup: "group14",
|
|
39
|
+
* lifetime: {
|
|
40
|
+
* hours: 8,
|
|
41
|
+
* },
|
|
42
|
+
* });
|
|
43
|
+
* //# 3. Define the IKE Gateway
|
|
44
|
+
* // Note: The resource name is plural and nested blocks now use an equals sign (=).
|
|
45
|
+
* const exampleIkeGateway = new scm.IkeGateway("example", {
|
|
46
|
+
* name: "example-gateway",
|
|
47
|
+
* folder: folderScope,
|
|
48
|
+
* peerAddress: {
|
|
49
|
+
* ip: "1.1.1.1",
|
|
50
|
+
* },
|
|
51
|
+
* authentication: {
|
|
52
|
+
* preSharedKey: {
|
|
53
|
+
* key: "secret",
|
|
54
|
+
* },
|
|
55
|
+
* },
|
|
56
|
+
* protocol: {
|
|
57
|
+
* ikev1: {
|
|
58
|
+
* ikeCryptoProfile: example.name,
|
|
59
|
+
* },
|
|
60
|
+
* },
|
|
61
|
+
* });
|
|
62
|
+
* //# 4. Define the IPsec Tunnel
|
|
63
|
+
* // Note: Nested 'auto_key' block uses an equals sign (=).
|
|
64
|
+
* const exampleIpsecTunnel = new scm.IpsecTunnel("example", {
|
|
65
|
+
* name: "example-tunnel",
|
|
66
|
+
* folder: folderScope,
|
|
67
|
+
* tunnelInterface: "tunnel",
|
|
68
|
+
* antiReplay: true,
|
|
69
|
+
* copyTos: false,
|
|
70
|
+
* enableGreEncapsulation: false,
|
|
71
|
+
* autoKey: {
|
|
72
|
+
* ikeGateways: [{
|
|
73
|
+
* name: exampleIkeGateway.name,
|
|
74
|
+
* }],
|
|
75
|
+
* ipsecCryptoProfile: exampleIpsecCryptoProfile.name,
|
|
76
|
+
* },
|
|
77
|
+
* }, {
|
|
78
|
+
* dependsOn: [exampleIkeGateway],
|
|
79
|
+
* });
|
|
80
|
+
* const siteAVpnSc = new scm.ServiceConnection("site_a_vpn_sc", {
|
|
81
|
+
* name: "creating_a_service_connection",
|
|
82
|
+
* region: "us-west-1",
|
|
83
|
+
* ipsecTunnel: exampleIpsecTunnel.name,
|
|
84
|
+
* subnets: [
|
|
85
|
+
* "10.1.0.0/16",
|
|
86
|
+
* "172.16.0.0/24",
|
|
87
|
+
* ],
|
|
88
|
+
* sourceNat: true,
|
|
89
|
+
* });
|
|
90
|
+
* ```
|
|
12
91
|
*/
|
|
13
92
|
class ServiceConnection extends pulumi.CustomResource {
|
|
14
93
|
/**
|
|
@@ -38,7 +117,7 @@ class ServiceConnection extends pulumi.CustomResource {
|
|
|
38
117
|
opts = opts || {};
|
|
39
118
|
if (opts.id) {
|
|
40
119
|
const state = argsOrState;
|
|
41
|
-
resourceInputs["
|
|
120
|
+
resourceInputs["backupSc"] = state?.backupSc;
|
|
42
121
|
resourceInputs["bgpPeer"] = state?.bgpPeer;
|
|
43
122
|
resourceInputs["encryptedValues"] = state?.encryptedValues;
|
|
44
123
|
resourceInputs["ipsecTunnel"] = state?.ipsecTunnel;
|
|
@@ -62,7 +141,7 @@ class ServiceConnection extends pulumi.CustomResource {
|
|
|
62
141
|
if (args?.region === undefined && !opts.urn) {
|
|
63
142
|
throw new Error("Missing required property 'region'");
|
|
64
143
|
}
|
|
65
|
-
resourceInputs["
|
|
144
|
+
resourceInputs["backupSc"] = args?.backupSc;
|
|
66
145
|
resourceInputs["bgpPeer"] = args?.bgpPeer;
|
|
67
146
|
resourceInputs["ipsecTunnel"] = args?.ipsecTunnel;
|
|
68
147
|
resourceInputs["name"] = args?.name;
|
package/serviceConnection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceConnection.js","sourceRoot":"","sources":["../serviceConnection.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"serviceConnection.js","sourceRoot":"","sources":["../serviceConnection.ts"],"names":[],"mappings":"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"}
|