<reponame>pulumiverse/pulumi-fortios<filename>sdk/dotnet/Outputs/SystemStandaloneclusterClusterPeer.cs// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace Pulumiverse.Fortios.Outputs
{

    [OutputType]
    public sealed class SystemStandaloneclusterClusterPeer
    {
        /// <summary>
        /// List of interfaces to be turned down before session synchronization is complete. The structure of `down_intfs_before_sess_sync` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.SystemStandaloneclusterClusterPeerDownIntfsBeforeSessSync> DownIntfsBeforeSessSyncs;
        /// <summary>
        /// Heartbeat interval (1 - 20 (100*ms). Increase to reduce false positives.
        /// </summary>
        public readonly int? HbInterval;
        /// <summary>
        /// Lost heartbeat threshold (1 - 60). Increase to reduce false positives.
        /// </summary>
        public readonly int? HbLostThreshold;
        /// <summary>
        /// Enable/disable IPsec tunnel synchronization. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? IpsecTunnelSync;
        /// <summary>
        /// IP address of the interface on the peer unit that is used for the session synchronization link.
        /// </summary>
        public readonly string? Peerip;
        /// <summary>
        /// VDOM that contains the session synchronization link interface on the peer unit. Usually both peers would have the same peervd.
        /// </summary>
        public readonly string? Peervd;
        /// <summary>
        /// Enable/disable IKE route announcement on the backup unit. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? SecondaryAddIpsecRoutes;
        /// <summary>
        /// Add one or more filters if you only want to synchronize some sessions. Use the filter to configure the types of sessions to synchronize. The structure of `session_sync_filter` block is documented below.
        /// </summary>
        public readonly Outputs.SystemStandaloneclusterClusterPeerSessionSyncFilter? SessionSyncFilter;
        /// <summary>
        /// Sync ID.
        /// </summary>
        public readonly int? SyncId;
        /// <summary>
        /// Sessions from these VDOMs are synchronized using this session synchronization configuration. The structure of `syncvd` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.SystemStandaloneclusterClusterPeerSyncvd> Syncvds;

        [OutputConstructor]
        private SystemStandaloneclusterClusterPeer(
            ImmutableArray<Outputs.SystemStandaloneclusterClusterPeerDownIntfsBeforeSessSync> downIntfsBeforeSessSyncs,

            int? hbInterval,

            int? hbLostThreshold,

            string? ipsecTunnelSync,

            string? peerip,

            string? peervd,

            string? secondaryAddIpsecRoutes,

            Outputs.SystemStandaloneclusterClusterPeerSessionSyncFilter? sessionSyncFilter,

            int? syncId,

            ImmutableArray<Outputs.SystemStandaloneclusterClusterPeerSyncvd> syncvds)
        {
            DownIntfsBeforeSessSyncs = downIntfsBeforeSessSyncs;
            HbInterval = hbInterval;
            HbLostThreshold = hbLostThreshold;
            IpsecTunnelSync = ipsecTunnelSync;
            Peerip = peerip;
            Peervd = peervd;
            SecondaryAddIpsecRoutes = secondaryAddIpsecRoutes;
            SessionSyncFilter = sessionSyncFilter;
            SyncId = syncId;
            Syncvds = syncvds;
        }
    }
}
