Class: AWSCDK::EC2::CfnVPNConnection::VpnTunnelOptionsSpecificationProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
ec2/cfn_vpn_connection.rb

Overview

The tunnel options for a single VPN tunnel.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dpd_timeout_action: nil, dpd_timeout_seconds: nil, enable_tunnel_lifecycle_control: nil, ike_versions: nil, log_options: nil, phase1_dh_group_numbers: nil, phase1_encryption_algorithms: nil, phase1_integrity_algorithms: nil, phase1_lifetime_seconds: nil, phase2_dh_group_numbers: nil, phase2_encryption_algorithms: nil, phase2_integrity_algorithms: nil, phase2_lifetime_seconds: nil, pre_shared_key: nil, rekey_fuzz_percentage: nil, rekey_margin_time_seconds: nil, replay_window_size: nil, startup_action: nil, tunnel_inside_cidr: nil, tunnel_inside_ipv6_cidr: nil) ⇒ VpnTunnelOptionsSpecificationProperty

Returns a new instance of VpnTunnelOptionsSpecificationProperty.

Parameters:



1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
# File 'ec2/cfn_vpn_connection.rb', line 1131

def initialize(dpd_timeout_action: nil, dpd_timeout_seconds: nil, enable_tunnel_lifecycle_control: nil, ike_versions: nil, log_options: nil, phase1_dh_group_numbers: nil, phase1_encryption_algorithms: nil, phase1_integrity_algorithms: nil, phase1_lifetime_seconds: nil, phase2_dh_group_numbers: nil, phase2_encryption_algorithms: nil, phase2_integrity_algorithms: nil, phase2_lifetime_seconds: nil, pre_shared_key: nil, rekey_fuzz_percentage: nil, rekey_margin_time_seconds: nil, replay_window_size: nil, startup_action: nil, tunnel_inside_cidr: nil, tunnel_inside_ipv6_cidr: nil)
  @dpd_timeout_action = dpd_timeout_action
  Jsii::Type.check_type(@dpd_timeout_action, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dpdTimeoutAction") unless @dpd_timeout_action.nil?
  @dpd_timeout_seconds = dpd_timeout_seconds
  Jsii::Type.check_type(@dpd_timeout_seconds, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "dpdTimeoutSeconds") unless @dpd_timeout_seconds.nil?
  @enable_tunnel_lifecycle_control = enable_tunnel_lifecycle_control
  Jsii::Type.check_type(@enable_tunnel_lifecycle_control, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "enableTunnelLifecycleControl") unless @enable_tunnel_lifecycle_control.nil?
  @ike_versions = ike_versions
  Jsii::Type.check_type(@ike_versions, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLkNmblZQTkNvbm5lY3Rpb24uSUtFVmVyc2lvbnNSZXF1ZXN0TGlzdFZhbHVlUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "ikeVersions") unless @ike_versions.nil?
  @log_options = log_options.is_a?(Hash) ? ::AWSCDK::EC2::CfnVPNConnection::VpnTunnelLogOptionsSpecificationProperty.new(**log_options.transform_keys(&:to_sym)) : log_options
  Jsii::Type.check_type(@log_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lYzIuQ2ZuVlBOQ29ubmVjdGlvbi5WcG5UdW5uZWxMb2dPcHRpb25zU3BlY2lmaWNhdGlvblByb3BlcnR5In1dfX0=")), "logOptions") unless @log_options.nil?
  @phase1_dh_group_numbers = phase1_dh_group_numbers
  Jsii::Type.check_type(@phase1_dh_group_numbers, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLkNmblZQTkNvbm5lY3Rpb24uUGhhc2UxREhHcm91cE51bWJlcnNSZXF1ZXN0TGlzdFZhbHVlUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "phase1DhGroupNumbers") unless @phase1_dh_group_numbers.nil?
  @phase1_encryption_algorithms = phase1_encryption_algorithms
  Jsii::Type.check_type(@phase1_encryption_algorithms, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLkNmblZQTkNvbm5lY3Rpb24uUGhhc2UxRW5jcnlwdGlvbkFsZ29yaXRobXNSZXF1ZXN0TGlzdFZhbHVlUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "phase1EncryptionAlgorithms") unless @phase1_encryption_algorithms.nil?
  @phase1_integrity_algorithms = phase1_integrity_algorithms
  Jsii::Type.check_type(@phase1_integrity_algorithms, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLkNmblZQTkNvbm5lY3Rpb24uUGhhc2UxSW50ZWdyaXR5QWxnb3JpdGhtc1JlcXVlc3RMaXN0VmFsdWVQcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "phase1IntegrityAlgorithms") unless @phase1_integrity_algorithms.nil?
  @phase1_lifetime_seconds = phase1_lifetime_seconds
  Jsii::Type.check_type(@phase1_lifetime_seconds, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "phase1LifetimeSeconds") unless @phase1_lifetime_seconds.nil?
  @phase2_dh_group_numbers = phase2_dh_group_numbers
  Jsii::Type.check_type(@phase2_dh_group_numbers, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLkNmblZQTkNvbm5lY3Rpb24uUGhhc2UyREhHcm91cE51bWJlcnNSZXF1ZXN0TGlzdFZhbHVlUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "phase2DhGroupNumbers") unless @phase2_dh_group_numbers.nil?
  @phase2_encryption_algorithms = phase2_encryption_algorithms
  Jsii::Type.check_type(@phase2_encryption_algorithms, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLkNmblZQTkNvbm5lY3Rpb24uUGhhc2UyRW5jcnlwdGlvbkFsZ29yaXRobXNSZXF1ZXN0TGlzdFZhbHVlUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "phase2EncryptionAlgorithms") unless @phase2_encryption_algorithms.nil?
  @phase2_integrity_algorithms = phase2_integrity_algorithms
  Jsii::Type.check_type(@phase2_integrity_algorithms, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLkNmblZQTkNvbm5lY3Rpb24uUGhhc2UySW50ZWdyaXR5QWxnb3JpdGhtc1JlcXVlc3RMaXN0VmFsdWVQcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "phase2IntegrityAlgorithms") unless @phase2_integrity_algorithms.nil?
  @phase2_lifetime_seconds = phase2_lifetime_seconds
  Jsii::Type.check_type(@phase2_lifetime_seconds, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "phase2LifetimeSeconds") unless @phase2_lifetime_seconds.nil?
  @pre_shared_key = pre_shared_key
  Jsii::Type.check_type(@pre_shared_key, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "preSharedKey") unless @pre_shared_key.nil?
  @rekey_fuzz_percentage = rekey_fuzz_percentage
  Jsii::Type.check_type(@rekey_fuzz_percentage, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "rekeyFuzzPercentage") unless @rekey_fuzz_percentage.nil?
  @rekey_margin_time_seconds = rekey_margin_time_seconds
  Jsii::Type.check_type(@rekey_margin_time_seconds, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "rekeyMarginTimeSeconds") unless @rekey_margin_time_seconds.nil?
  @replay_window_size = replay_window_size
  Jsii::Type.check_type(@replay_window_size, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "replayWindowSize") unless @replay_window_size.nil?
  @startup_action = startup_action
  Jsii::Type.check_type(@startup_action, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "startupAction") unless @startup_action.nil?
  @tunnel_inside_cidr = tunnel_inside_cidr
  Jsii::Type.check_type(@tunnel_inside_cidr, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "tunnelInsideCidr") unless @tunnel_inside_cidr.nil?
  @tunnel_inside_ipv6_cidr = tunnel_inside_ipv6_cidr
  Jsii::Type.check_type(@tunnel_inside_ipv6_cidr, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "tunnelInsideIpv6Cidr") unless @tunnel_inside_ipv6_cidr.nil?
end

Instance Attribute Details

#dpd_timeout_actionString? (readonly)

The action to take after DPD timeout occurs.

Specify restart to restart the IKE initiation. Specify clear to end the IKE session.

Valid Values: clear | none | restart

Default: clear



1184
1185
1186
# File 'ec2/cfn_vpn_connection.rb', line 1184

def dpd_timeout_action
  @dpd_timeout_action
end

#dpd_timeout_secondsNumeric? (readonly)

The number of seconds after which a DPD timeout occurs.

Constraints: A value greater than or equal to 30.

Default: 30



1193
1194
1195
# File 'ec2/cfn_vpn_connection.rb', line 1193

def dpd_timeout_seconds
  @dpd_timeout_seconds
end

#enable_tunnel_lifecycle_controlBoolean, ... (readonly)

Turn on or off tunnel endpoint lifecycle control feature.



1198
1199
1200
# File 'ec2/cfn_vpn_connection.rb', line 1198

def enable_tunnel_lifecycle_control
  @enable_tunnel_lifecycle_control
end

#ike_versionsAWSCDK::IResolvable, ... (readonly)

The IKE versions that are permitted for the VPN tunnel.

Valid values: ikev1 | ikev2



1205
1206
1207
# File 'ec2/cfn_vpn_connection.rb', line 1205

def ike_versions
  @ike_versions
end

#phase1_dh_group_numbersAWSCDK::IResolvable, ... (readonly)

One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for phase 1 IKE negotiations.

Valid values: 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24



1217
1218
1219
# File 'ec2/cfn_vpn_connection.rb', line 1217

def phase1_dh_group_numbers
  @phase1_dh_group_numbers
end

#phase1_encryption_algorithmsAWSCDK::IResolvable, ... (readonly)

One or more encryption algorithms that are permitted for the VPN tunnel for phase 1 IKE negotiations.

Valid values: AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16



1224
1225
1226
# File 'ec2/cfn_vpn_connection.rb', line 1224

def phase1_encryption_algorithms
  @phase1_encryption_algorithms
end

#phase1_integrity_algorithmsAWSCDK::IResolvable, ... (readonly)

One or more integrity algorithms that are permitted for the VPN tunnel for phase 1 IKE negotiations.

Valid values: SHA1 | SHA2-256 | SHA2-384 | SHA2-512



1231
1232
1233
# File 'ec2/cfn_vpn_connection.rb', line 1231

def phase1_integrity_algorithms
  @phase1_integrity_algorithms
end

#phase1_lifetime_secondsNumeric? (readonly)

The lifetime for phase 1 of the IKE negotiation, in seconds.

Constraints: A value between 900 and 28,800.

Default: 28800



1240
1241
1242
# File 'ec2/cfn_vpn_connection.rb', line 1240

def phase1_lifetime_seconds
  @phase1_lifetime_seconds
end

#phase2_dh_group_numbersAWSCDK::IResolvable, ... (readonly)

One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for phase 2 IKE negotiations.

Valid values: 2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24



1247
1248
1249
# File 'ec2/cfn_vpn_connection.rb', line 1247

def phase2_dh_group_numbers
  @phase2_dh_group_numbers
end

#phase2_encryption_algorithmsAWSCDK::IResolvable, ... (readonly)

One or more encryption algorithms that are permitted for the VPN tunnel for phase 2 IKE negotiations.

Valid values: AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16



1254
1255
1256
# File 'ec2/cfn_vpn_connection.rb', line 1254

def phase2_encryption_algorithms
  @phase2_encryption_algorithms
end

#phase2_integrity_algorithmsAWSCDK::IResolvable, ... (readonly)

One or more integrity algorithms that are permitted for the VPN tunnel for phase 2 IKE negotiations.

Valid values: SHA1 | SHA2-256 | SHA2-384 | SHA2-512



1261
1262
1263
# File 'ec2/cfn_vpn_connection.rb', line 1261

def phase2_integrity_algorithms
  @phase2_integrity_algorithms
end

#phase2_lifetime_secondsNumeric? (readonly)

The lifetime for phase 2 of the IKE negotiation, in seconds.

Constraints: A value between 900 and 3,600. The value must be less than the value for Phase1LifetimeSeconds .

Default: 3600



1270
1271
1272
# File 'ec2/cfn_vpn_connection.rb', line 1270

def phase2_lifetime_seconds
  @phase2_lifetime_seconds
end

#pre_shared_keyString? (readonly)

The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway.

Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0).



1277
1278
1279
# File 'ec2/cfn_vpn_connection.rb', line 1277

def pre_shared_key
  @pre_shared_key
end

#rekey_fuzz_percentageNumeric? (readonly)

The percentage of the rekey window (determined by RekeyMarginTimeSeconds ) during which the rekey time is randomly selected.

Constraints: A value between 0 and 100.

Default: 100



1286
1287
1288
# File 'ec2/cfn_vpn_connection.rb', line 1286

def rekey_fuzz_percentage
  @rekey_fuzz_percentage
end

#rekey_margin_time_secondsNumeric? (readonly)

The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the VPN connection performs an IKE rekey.

The exact time of the rekey is randomly selected based on the value for RekeyFuzzPercentage .

Constraints: A value between 60 and half of Phase2LifetimeSeconds .

Default: 270



1297
1298
1299
# File 'ec2/cfn_vpn_connection.rb', line 1297

def rekey_margin_time_seconds
  @rekey_margin_time_seconds
end

#replay_window_sizeNumeric? (readonly)

The number of packets in an IKE replay window.

Constraints: A value between 64 and 2048.

Default: 1024



1306
1307
1308
# File 'ec2/cfn_vpn_connection.rb', line 1306

def replay_window_size
  @replay_window_size
end

#startup_actionString? (readonly)

The action to take when the establishing the tunnel for the VPN connection.

By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation.

Valid Values: add | start

Default: add



1317
1318
1319
# File 'ec2/cfn_vpn_connection.rb', line 1317

def startup_action
  @startup_action
end

#tunnel_inside_cidrString? (readonly)

The range of inside IP addresses for the tunnel.

Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway.

Constraints: A size /30 CIDR block from the 169.254.0.0/16 range. The following CIDR blocks are reserved and cannot be used:

  • 169.254.0.0/30
  • 169.254.1.0/30
  • 169.254.2.0/30
  • 169.254.3.0/30
  • 169.254.4.0/30
  • 169.254.5.0/30
  • 169.254.169.252/30


1334
1335
1336
# File 'ec2/cfn_vpn_connection.rb', line 1334

def tunnel_inside_cidr
  @tunnel_inside_cidr
end

#tunnel_inside_ipv6_cidrString? (readonly)

The range of inside IPv6 addresses for the tunnel.

Any specified CIDR blocks must be unique across all VPN connections that use the same transit gateway.

Constraints: A size /126 CIDR block from the local fd00::/8 range.



1343
1344
1345
# File 'ec2/cfn_vpn_connection.rb', line 1343

def tunnel_inside_ipv6_cidr
  @tunnel_inside_ipv6_cidr
end

Class Method Details

.jsii_propertiesObject



1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
# File 'ec2/cfn_vpn_connection.rb', line 1345

def self.jsii_properties
  {
    :dpd_timeout_action => "dpdTimeoutAction",
    :dpd_timeout_seconds => "dpdTimeoutSeconds",
    :enable_tunnel_lifecycle_control => "enableTunnelLifecycleControl",
    :ike_versions => "ikeVersions",
    :log_options => "logOptions",
    :phase1_dh_group_numbers => "phase1DhGroupNumbers",
    :phase1_encryption_algorithms => "phase1EncryptionAlgorithms",
    :phase1_integrity_algorithms => "phase1IntegrityAlgorithms",
    :phase1_lifetime_seconds => "phase1LifetimeSeconds",
    :phase2_dh_group_numbers => "phase2DhGroupNumbers",
    :phase2_encryption_algorithms => "phase2EncryptionAlgorithms",
    :phase2_integrity_algorithms => "phase2IntegrityAlgorithms",
    :phase2_lifetime_seconds => "phase2LifetimeSeconds",
    :pre_shared_key => "preSharedKey",
    :rekey_fuzz_percentage => "rekeyFuzzPercentage",
    :rekey_margin_time_seconds => "rekeyMarginTimeSeconds",
    :replay_window_size => "replayWindowSize",
    :startup_action => "startupAction",
    :tunnel_inside_cidr => "tunnelInsideCidr",
    :tunnel_inside_ipv6_cidr => "tunnelInsideIpv6Cidr",
  }
end

Instance Method Details

#to_jsiiObject



1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
# File 'ec2/cfn_vpn_connection.rb', line 1370

def to_jsii
  result = {}
  result.merge!({
    "dpdTimeoutAction" => @dpd_timeout_action,
    "dpdTimeoutSeconds" => @dpd_timeout_seconds,
    "enableTunnelLifecycleControl" => @enable_tunnel_lifecycle_control,
    "ikeVersions" => @ike_versions,
    "logOptions" => @log_options,
    "phase1DhGroupNumbers" => @phase1_dh_group_numbers,
    "phase1EncryptionAlgorithms" => @phase1_encryption_algorithms,
    "phase1IntegrityAlgorithms" => @phase1_integrity_algorithms,
    "phase1LifetimeSeconds" => @phase1_lifetime_seconds,
    "phase2DhGroupNumbers" => @phase2_dh_group_numbers,
    "phase2EncryptionAlgorithms" => @phase2_encryption_algorithms,
    "phase2IntegrityAlgorithms" => @phase2_integrity_algorithms,
    "phase2LifetimeSeconds" => @phase2_lifetime_seconds,
    "preSharedKey" => @pre_shared_key,
    "rekeyFuzzPercentage" => @rekey_fuzz_percentage,
    "rekeyMarginTimeSeconds" => @rekey_margin_time_seconds,
    "replayWindowSize" => @replay_window_size,
    "startupAction" => @startup_action,
    "tunnelInsideCidr" => @tunnel_inside_cidr,
    "tunnelInsideIpv6Cidr" => @tunnel_inside_ipv6_cidr,
  })
  result.compact
end