Skip to content

Commit 91ef9cb

Browse files
susanpannOctobob
authored andcommitted
Adds the ability to get and modify space default lifecycle release and lifecycle tentacle retention policies
+semver: minor GitOrigin-RevId: a2c4e943fbab8c0d9cb2ebfb98dd0c672285f9c3
1 parent ab0bed8 commit 91ef9cb

21 files changed

+682
-1
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using FluentAssertions;
2+
using NUnit.Framework;
3+
using Octopus.Client.Model;
4+
using Octopus.Client.Model.SpaceDefaultRetentionPolicies;
5+
using Octopus.Client.Serialization;
6+
7+
namespace Octopus.Client.Tests.Model
8+
{
9+
public class RetentionPolicyDeserializationTests
10+
{
11+
[Test]
12+
public void LifecycleRetentionPolicyTypeCanBeDeserialized()
13+
{
14+
var payload = @"{ ""Id"": ""LifecycleReleaseRetentionDefault-Spaces-9"", ""Name"": ""Space Default Release Lifecycle Retention Policy"", ""RetentionType"": ""LifecycleRelease"", ""SpaceId"": ""Spaces-9"", ""Strategy"": ""Count"" }";
15+
16+
var result = JsonSerialization.DeserializeObject<SpaceDefaultRetentionPolicyResource>(payload);
17+
result.RetentionType.Should().Be(RetentionType.LifecycleRelease);
18+
result.SpaceId.Should().Be("Spaces-9");
19+
result.GetType().Should().Be(typeof(SpaceDefaultLifecycleReleaseRetentionPolicyResource));
20+
21+
var lifecycleResult = result as SpaceDefaultLifecycleReleaseRetentionPolicyResource;
22+
lifecycleResult?.Strategy.Should().Be(RetentionPeriodStrategy.Count);
23+
lifecycleResult?.QuantityToKeep.HasValue.Should().BeFalse();
24+
lifecycleResult?.Unit?.Value.Should().BeNull();
25+
}
26+
27+
[Test]
28+
public void TentacleRetentionPolicyTypeCanBeDeserialized()
29+
{
30+
var payload = @"{ ""Id"": ""LifecycleTentacleRetentionDefault-Spaces-9"", ""Name"": ""Space Default Lifecycle Tentacle Retention Policy"", ""RetentionType"": ""LifecycleTentacle"", ""SpaceId"": ""Spaces-9"", ""Strategy"":""Forever"" }";
31+
32+
var result = JsonSerialization.DeserializeObject<SpaceDefaultRetentionPolicyResource>(payload);
33+
result.RetentionType.Should().Be(RetentionType.LifecycleTentacle);
34+
result.SpaceId.Should().Be("Spaces-9");
35+
result.GetType().Should().Be(typeof(SpaceDefaultLifecycleTentacleRetentionPolicyResource));
36+
37+
var tentacleResult = result as SpaceDefaultLifecycleTentacleRetentionPolicyResource;
38+
tentacleResult?.Strategy.Should().Be(RetentionPeriodStrategy.Forever);
39+
}
40+
}
41+
}

source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ Octopus.Client
202202
Octopus.Client.Repositories.Async.IRunbookRunRepository RunbookRuns { get; }
203203
Octopus.Client.Repositories.Async.IRunbookRepository Runbooks { get; }
204204
Octopus.Client.Repositories.Async.IRunbookSnapshotRepository RunbookSnapshots { get; }
205+
Octopus.Client.Repositories.Async.ISpaceDefaultRetentionPolicyRepository SpaceDefaultRetentionPolicies { get; }
205206
Octopus.Client.Repositories.Async.ISubscriptionRepository Subscriptions { get; }
206207
Octopus.Client.Repositories.Async.ITagSetRepository TagSets { get; }
207208
Octopus.Client.Repositories.Async.ITenantRepository Tenants { get; }
@@ -248,6 +249,7 @@ Octopus.Client
248249
Octopus.Client.Repositories.IRunbookRunRepository RunbookRuns { get; }
249250
Octopus.Client.Repositories.IRunbookRepository Runbooks { get; }
250251
Octopus.Client.Repositories.IRunbookSnapshotRepository RunbookSnapshots { get; }
252+
Octopus.Client.Repositories.ISpaceDefaultRetentionPolicyRepository SpaceDefaultRetentionPolicies { get; }
251253
Octopus.Client.Repositories.ISubscriptionRepository Subscriptions { get; }
252254
Octopus.Client.Repositories.ITagSetRepository TagSets { get; }
253255
Octopus.Client.Repositories.ITenantRepository Tenants { get; }
@@ -423,6 +425,7 @@ Octopus.Client
423425
Octopus.Client.RepositoryScope Scope { get; }
424426
Octopus.Client.Repositories.Async.IScopedUserRoleRepository ScopedUserRoles { get; }
425427
Octopus.Client.Repositories.Async.IServerStatusRepository ServerStatus { get; }
428+
Octopus.Client.Repositories.Async.ISpaceDefaultRetentionPolicyRepository SpaceDefaultRetentionPolicies { get; }
426429
Octopus.Client.Repositories.Async.ISpaceRepository Spaces { get; }
427430
Octopus.Client.Repositories.Async.ISubscriptionRepository Subscriptions { get; }
428431
Octopus.Client.Repositories.Async.ITagSetRepository TagSets { get; }
@@ -565,6 +568,7 @@ Octopus.Client
565568
Octopus.Client.RepositoryScope Scope { get; }
566569
Octopus.Client.Repositories.IScopedUserRoleRepository ScopedUserRoles { get; }
567570
Octopus.Client.Repositories.IServerStatusRepository ServerStatus { get; }
571+
Octopus.Client.Repositories.ISpaceDefaultRetentionPolicyRepository SpaceDefaultRetentionPolicies { get; }
568572
Octopus.Client.Repositories.ISpaceRepository Spaces { get; }
569573
Octopus.Client.Repositories.ISubscriptionRepository Subscriptions { get; }
570574
Octopus.Client.Repositories.ITagSetRepository TagSets { get; }
@@ -8088,6 +8092,99 @@ Octopus.Client.Model.SmtpConfiguration
80888092
Octopus.Client.Model.SensitiveValue SmtpPassword { get; set; }
80898093
}
80908094
}
8095+
Octopus.Client.Model.SpaceDefaultRetentionPolicies
8096+
{
8097+
class GetDefaultRetentionPolicyByTypeRequest
8098+
{
8099+
.ctor()
8100+
.ctor(String, Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType)
8101+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType RetentionType { get; set; }
8102+
String SpaceId { get; set; }
8103+
}
8104+
class LifecycleReleaseRetentionUnit
8105+
IComparable
8106+
Octopus.TinyTypes.CaseInsensitiveStringTinyType
8107+
{
8108+
static Octopus.Client.Model.SpaceDefaultRetentionPolicies.LifecycleReleaseRetentionUnit Days
8109+
static Octopus.Client.Model.SpaceDefaultRetentionPolicies.LifecycleReleaseRetentionUnit Items
8110+
.ctor(String)
8111+
}
8112+
class ModifyDefaultLifecycleReleaseRetentionPolicyCommand
8113+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.ModifyDefaultRetentionPolicyCommand
8114+
{
8115+
.ctor(String, String)
8116+
Nullable<Int32> QuantityToKeep { get; set; }
8117+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType RetentionType { get; }
8118+
Octopus.Client.Model.RetentionPeriodStrategy Strategy { get; set; }
8119+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.LifecycleReleaseRetentionUnit Unit { get; set; }
8120+
}
8121+
class ModifyDefaultLifecycleTentacleRetentionPolicyCommand
8122+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.ModifyDefaultRetentionPolicyCommand
8123+
{
8124+
.ctor(String, String)
8125+
Nullable<Int32> QuantityToKeep { get; set; }
8126+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType RetentionType { get; }
8127+
Octopus.Client.Model.RetentionPeriodStrategy Strategy { get; set; }
8128+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.LifecycleReleaseRetentionUnit Unit { get; set; }
8129+
}
8130+
abstract class ModifyDefaultRetentionPolicyCommand
8131+
{
8132+
String Id { get; set; }
8133+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType RetentionType { get; }
8134+
String SpaceId { get; set; }
8135+
}
8136+
class ReleaseRetentionPolicyType
8137+
IComparable
8138+
Octopus.TinyTypes.CaseInsensitiveStringTinyType
8139+
{
8140+
static Octopus.Client.Model.SpaceDefaultRetentionPolicies.ReleaseRetentionPolicyType Count
8141+
static Octopus.Client.Model.SpaceDefaultRetentionPolicies.ReleaseRetentionPolicyType Forever
8142+
.ctor(String)
8143+
}
8144+
class RetentionType
8145+
IComparable
8146+
Octopus.TinyTypes.CaseInsensitiveStringTinyType
8147+
{
8148+
static Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType LifecycleRelease
8149+
static Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType LifecycleTentacle
8150+
static Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType MachinePackageCache
8151+
static Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType RunbookRetention
8152+
.ctor(String)
8153+
}
8154+
class SpaceDefaultLifecycleReleaseRetentionPolicyResource
8155+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.SpaceDefaultRetentionPolicyResource
8156+
{
8157+
.ctor(Octopus.Client.Model.RetentionPeriodStrategy)
8158+
Nullable<Int32> QuantityToKeep { get; set; }
8159+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType RetentionType { get; }
8160+
Octopus.Client.Model.RetentionPeriodStrategy Strategy { get; set; }
8161+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.LifecycleReleaseRetentionUnit Unit { get; set; }
8162+
}
8163+
class SpaceDefaultLifecycleTentacleRetentionPolicyResource
8164+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.SpaceDefaultRetentionPolicyResource
8165+
{
8166+
.ctor(Octopus.Client.Model.RetentionPeriodStrategy)
8167+
Nullable<Int32> QuantityToKeep { get; set; }
8168+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType RetentionType { get; }
8169+
Octopus.Client.Model.RetentionPeriodStrategy Strategy { get; set; }
8170+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.LifecycleReleaseRetentionUnit Unit { get; set; }
8171+
}
8172+
abstract class SpaceDefaultRetentionPolicyResource
8173+
{
8174+
String Id { get; set; }
8175+
String Name { get; set; }
8176+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.RetentionType RetentionType { get; }
8177+
String SpaceId { get; set; }
8178+
}
8179+
class TentacleRetentionPolicyType
8180+
IComparable
8181+
Octopus.TinyTypes.CaseInsensitiveStringTinyType
8182+
{
8183+
static Octopus.Client.Model.SpaceDefaultRetentionPolicies.TentacleRetentionPolicyType Count
8184+
static Octopus.Client.Model.SpaceDefaultRetentionPolicies.TentacleRetentionPolicyType Forever
8185+
.ctor(String)
8186+
}
8187+
}
80918188
Octopus.Client.Model.TenantVariables
80928189
{
80938190
class CommonVariableScope
@@ -9292,6 +9389,11 @@ Octopus.Client.Repositories
92929389
Octopus.Client.Model.ServerStatusResource GetServerStatus()
92939390
Octopus.Client.Model.SystemInfoResource GetSystemInfo(Octopus.Client.Model.ServerStatusResource)
92949391
}
9392+
interface ISpaceDefaultRetentionPolicyRepository
9393+
{
9394+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.SpaceDefaultRetentionPolicyResource Get(Octopus.Client.Model.SpaceDefaultRetentionPolicies.GetDefaultRetentionPolicyByTypeRequest)
9395+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.SpaceDefaultRetentionPolicyResource Modify(Octopus.Client.Model.SpaceDefaultRetentionPolicies.ModifyDefaultRetentionPolicyCommand)
9396+
}
92959397
interface ISpaceRepository
92969398
Octopus.Client.Repositories.ICreate<SpaceResource>
92979399
Octopus.Client.Repositories.IModify<SpaceResource>
@@ -9525,6 +9627,13 @@ Octopus.Client.Repositories
95259627
Octopus.Client.Model.PerformanceConfigurationResource Get()
95269628
Octopus.Client.Model.PerformanceConfigurationResource Modify(Octopus.Client.Model.PerformanceConfigurationResource)
95279629
}
9630+
class SpaceDefaultRetentionPolicyRepository
9631+
Octopus.Client.Repositories.ISpaceDefaultRetentionPolicyRepository
9632+
{
9633+
.ctor(Octopus.Client.IOctopusClient)
9634+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.SpaceDefaultRetentionPolicyResource Get(Octopus.Client.Model.SpaceDefaultRetentionPolicies.GetDefaultRetentionPolicyByTypeRequest)
9635+
Octopus.Client.Model.SpaceDefaultRetentionPolicies.SpaceDefaultRetentionPolicyResource Modify(Octopus.Client.Model.SpaceDefaultRetentionPolicies.ModifyDefaultRetentionPolicyCommand)
9636+
}
95289637
class TelemetryConfigurationRepository
95299638
Octopus.Client.Repositories.ITelemetryConfigurationRepository
95309639
{
@@ -10182,6 +10291,11 @@ Octopus.Client.Repositories.Async
1018210291
Task<ServerStatusResource> GetServerStatus()
1018310292
Task<SystemInfoResource> GetSystemInfo(Octopus.Client.Model.ServerStatusResource)
1018410293
}
10294+
interface ISpaceDefaultRetentionPolicyRepository
10295+
{
10296+
Task<SpaceDefaultRetentionPolicyResource> Get(Octopus.Client.Model.SpaceDefaultRetentionPolicies.GetDefaultRetentionPolicyByTypeRequest, CancellationToken)
10297+
Task<SpaceDefaultRetentionPolicyResource> Modify(Octopus.Client.Model.SpaceDefaultRetentionPolicies.ModifyDefaultRetentionPolicyCommand, CancellationToken)
10298+
}
1018510299
interface ISpaceRepository
1018610300
Octopus.Client.Repositories.Async.ICreate<SpaceResource>
1018710301
Octopus.Client.Repositories.Async.IModify<SpaceResource>
@@ -10438,6 +10552,13 @@ Octopus.Client.Repositories.Async
1043810552
Task<GetResourceEventsResponse> GetResourceEvents(Octopus.Client.Model.Observability.ResourceEvents.GetResourceEventsRequest, CancellationToken)
1043910553
Task<GetResourceManifestResponse> GetResourceManifest(Octopus.Client.Model.Observability.LiveStatus.GetResourceManifestRequest, CancellationToken)
1044010554
}
10555+
class SpaceDefaultRetentionPolicyRepository
10556+
Octopus.Client.Repositories.Async.ISpaceDefaultRetentionPolicyRepository
10557+
{
10558+
.ctor(Octopus.Client.IOctopusAsyncClient)
10559+
Task<SpaceDefaultRetentionPolicyResource> Get(Octopus.Client.Model.SpaceDefaultRetentionPolicies.GetDefaultRetentionPolicyByTypeRequest, CancellationToken)
10560+
Task<SpaceDefaultRetentionPolicyResource> Modify(Octopus.Client.Model.SpaceDefaultRetentionPolicies.ModifyDefaultRetentionPolicyCommand, CancellationToken)
10561+
}
1044110562
class SpaceScopedOperationOutsideOfCurrentSpaceContextException
1044210563
ISerializable
1044310564
Exception
@@ -10558,6 +10679,11 @@ Octopus.Client.Serialization
1055810679
static String Serialize(Object, Octopus.Client.Serialization.T)
1055910680
static String Serialize(Object)
1056010681
}
10682+
class SpaceDefaultRetentionPolicyResourceConverter
10683+
Octopus.Client.Serialization.InheritedClassConverter<SpaceDefaultRetentionPolicyResource, RetentionType>
10684+
{
10685+
.ctor()
10686+
}
1056110687
class TentacleConfigurationConverter
1056210688
Octopus.Client.Serialization.InheritedClassConverter<TentacleEndpointConfigurationResource, TentacleCommunicationModeResource>
1056310689
{

source/Octopus.Client.Tests/PublicSurfaceAreaFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,4 +167,4 @@ string FormatTypeName(Type type, bool shortName = false)
167167
}
168168
}
169169
}
170-
#endif
170+
#endif

0 commit comments

Comments
 (0)