diff --git a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt index 3c1302395..f7055e110 100644 --- a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt +++ b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt @@ -1890,6 +1890,11 @@ Octopus.Client.Model FullHealthCheck = 0 ConnectionTest = 1 } + HeartbeatDeletionPolicy + { + NeverDelete = 0 + DeleteAfterOfflineTimeout = 1 + } interface IAuditedResource { String LastModifiedBy { get; set; } @@ -2294,6 +2299,18 @@ Octopus.Client.Model .ctor() Octopus.Client.Model.FeedType FeedType { get; } } + class OctopusServerNodeHeartbeatPolicy + { + static System.TimeSpan DefaultOfflineTimeout + .ctor() + Octopus.Client.Model.HeartbeatDeletionPolicy DeletionPolicy { get; set; } + TimeSpan OfflineTimeout { get; set; } + HeartbeatDeletionPolicy + { + NeverDelete = 0 + DeleteAfterOfflineTimeout = 1 + } + } class OctopusServerNodeResource Octopus.Client.Extensibility.IResource Octopus.Client.Model.IAuditedResource @@ -2301,6 +2318,7 @@ Octopus.Client.Model Octopus.Client.Model.Resource { .ctor() + Octopus.Client.Model.OctopusServerNodeHeartbeatPolicy HeartbeatPolicy { get; set; } Boolean IsInMaintenanceMode { get; set; } Boolean IsOffline { get; set; } String LastSeen { get; set; } diff --git a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt index ae853ff29..7ac27bb57 100644 --- a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt +++ b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt @@ -2360,6 +2360,11 @@ Octopus.Client.Model FullHealthCheck = 0 ConnectionTest = 1 } + HeartbeatDeletionPolicy + { + NeverDelete = 0 + DeleteAfterOfflineTimeout = 1 + } interface IAuditedResource { String LastModifiedBy { get; set; } @@ -2767,6 +2772,18 @@ Octopus.Client.Model .ctor() Octopus.Client.Model.FeedType FeedType { get; } } + class OctopusServerNodeHeartbeatPolicy + { + static System.TimeSpan DefaultOfflineTimeout + .ctor() + Octopus.Client.Model.HeartbeatDeletionPolicy DeletionPolicy { get; set; } + TimeSpan OfflineTimeout { get; set; } + HeartbeatDeletionPolicy + { + NeverDelete = 0 + DeleteAfterOfflineTimeout = 1 + } + } class OctopusServerNodeResource Octopus.Client.Extensibility.IResource Octopus.Client.Model.IAuditedResource @@ -2774,6 +2791,7 @@ Octopus.Client.Model Octopus.Client.Model.Resource { .ctor() + Octopus.Client.Model.OctopusServerNodeHeartbeatPolicy HeartbeatPolicy { get; set; } Boolean IsInMaintenanceMode { get; set; } Boolean IsOffline { get; set; } String LastSeen { get; set; } diff --git a/source/Octopus.Client/Model/OctopusServerNodeResource.cs b/source/Octopus.Client/Model/OctopusServerNodeResource.cs index a81e9e259..092e4dc22 100644 --- a/source/Octopus.Client/Model/OctopusServerNodeResource.cs +++ b/source/Octopus.Client/Model/OctopusServerNodeResource.cs @@ -4,6 +4,20 @@ namespace Octopus.Client.Model { + public class OctopusServerNodeHeartbeatPolicy + { + public static TimeSpan DefaultOfflineTimeout = TimeSpan.FromMinutes(30); + + public enum HeartbeatDeletionPolicy + { + NeverDelete, + DeleteAfterOfflineTimeout + } + + public HeartbeatDeletionPolicy DeletionPolicy { get; set; } = HeartbeatDeletionPolicy.NeverDelete; + public TimeSpan OfflineTimeout { get; set; } = DefaultOfflineTimeout; + } + public class OctopusServerNodeResource : Resource, INamedResource { public string Name { get; set; } @@ -14,5 +28,7 @@ public class OctopusServerNodeResource : Resource, INamedResource public int MaxConcurrentTasks { get; set; } [Writeable] public bool IsInMaintenanceMode { get; set; } + [Writeable] + public OctopusServerNodeHeartbeatPolicy HeartbeatPolicy { get; set; } } }