From 4f25925ca49f8bb412699cf0997691fea26e8000 Mon Sep 17 00:00:00 2001
From: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
Date: Thu, 18 Jul 2024 11:23:43 +1000
Subject: [PATCH 1/9] Add command, request, response and resource classes
---
.../CreateDeploymentTargetTagCommand.cs | 20 +++++++++++
.../CreateDeploymentTargetTagResponse.cs | 12 +++++++
.../DeleteDeploymentTargetTagCommand.cs | 18 ++++++++++
.../DeleteDeploymentTargetTagResponse.cs | 6 ++++
.../GetDeploymentTargetTagByTagRequest.cs | 18 ++++++++++
.../GetDeploymentTargetTagByTagResponse.cs | 12 +++++++
.../GetDeploymentTargetTagsRequest.cs | 33 +++++++++++++++++++
.../GetDeploymentTargetTagsResponse.cs | 22 +++++++++++++
8 files changed, 141 insertions(+)
create mode 100644 source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagCommand.cs
create mode 100644 source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagResponse.cs
create mode 100644 source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagCommand.cs
create mode 100644 source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagResponse.cs
create mode 100644 source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagRequest.cs
create mode 100644 source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagResponse.cs
create mode 100644 source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsRequest.cs
create mode 100644 source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsResponse.cs
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagCommand.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagCommand.cs
new file mode 100644
index 00000000..0036d9cb
--- /dev/null
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagCommand.cs
@@ -0,0 +1,20 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Octopus.Client.Model.DeploymentTargetTags;
+
+public class CreateDeploymentTargetTagCommand
+{
+ ///
+ /// The name or tag of the DeploymentTargetTag
+ ///
+ [Required(ErrorMessage = "Deployment Target Tag must have a name.")]
+ [MaxLength(200, ErrorMessage = "Tag must be 200 characters or less.")]
+ [MinLength(1, ErrorMessage = "Tag must be between 1 and 200 characters.")]
+ public string Tag { get; set; }
+
+ ///
+ /// The ID of the space for the DeploymentTargetTag
+ ///
+ [Required]
+ public string SpaceId { get; set; }
+}
\ No newline at end of file
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagResponse.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagResponse.cs
new file mode 100644
index 00000000..b0c63496
--- /dev/null
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagResponse.cs
@@ -0,0 +1,12 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Octopus.Client.Model.DeploymentTargetTags;
+
+public class CreateDeploymentTargetTagResponse
+{
+ [Required]
+ public string Tag { get; set; }
+
+ [Required]
+ public string SpaceId { get; set; }
+}
\ No newline at end of file
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagCommand.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagCommand.cs
new file mode 100644
index 00000000..35f91f10
--- /dev/null
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagCommand.cs
@@ -0,0 +1,18 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Octopus.Client.Model.DeploymentTargetTags;
+
+public class DeleteDeploymentTargetTagCommand
+{
+ ///
+ /// The ID of the space containing the resource(s).
+ ///
+ [Required]
+ public string SpaceId { get; set; } = null!;
+
+ ///
+ /// The Tag of the DeploymentTargetTag to delete.
+ ///
+ [Required]
+ public string Tag { get; set; }
+}
\ No newline at end of file
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagResponse.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagResponse.cs
new file mode 100644
index 00000000..4ddbdab4
--- /dev/null
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagResponse.cs
@@ -0,0 +1,6 @@
+namespace Octopus.Client.Model.DeploymentTargetTags;
+
+public class DeleteDeploymentTargetTagResponse
+{
+
+}
\ No newline at end of file
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagRequest.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagRequest.cs
new file mode 100644
index 00000000..5bc1e9bc
--- /dev/null
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagRequest.cs
@@ -0,0 +1,18 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Octopus.Client.Model.DeploymentTargetTags;
+
+public class GetDeploymentTargetTagByTagRequest
+{
+ ///
+ /// The ID of the space containing the resource(s).
+ ///
+ [Required]
+ public string SpaceId { get; set; } = null!;
+
+ ///
+ /// ID or Slug of the DeploymentTargetTag
+ ///
+ [Required]
+ public string Tag { get; set; }
+}
\ No newline at end of file
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagResponse.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagResponse.cs
new file mode 100644
index 00000000..f64bfb05
--- /dev/null
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagResponse.cs
@@ -0,0 +1,12 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Octopus.Client.Model.DeploymentTargetTags;
+
+public class GetDeploymentTargetTagByTagResponse
+{
+ [Required]
+ public string Tag { get; set; }
+
+ [Required]
+ public string SpaceId { get; set; }
+}
\ No newline at end of file
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsRequest.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsRequest.cs
new file mode 100644
index 00000000..e99645d5
--- /dev/null
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsRequest.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using Octopus.Server.MessageContracts.Base.Attributes;
+
+namespace Octopus.Client.Model.DeploymentTargetTags;
+
+public class GetDeploymentTargetTagsRequest
+{
+ ///
+ /// The ID of the Space to which the DeploymentTargetTags belong.
+ ///
+ [Required]
+ public string SpaceId { get; set; }
+
+ ///
+ /// The DeploymentTargetTag IDs to filter by.
+ ///
+ [Optional]
+ public IReadOnlyCollection Tags { get; set; } = Array.Empty();
+
+ ///
+ /// The Machine ID to filter by.
+ ///
+ [Optional]
+ public IReadOnlyCollection MachineIds { get; set; } = Array.Empty();
+
+ [Optional]
+ public int? Skip { get; set; }
+
+ [Optional]
+ public int? Take { get; set; }
+}
\ No newline at end of file
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsResponse.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsResponse.cs
new file mode 100644
index 00000000..8aef51f8
--- /dev/null
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsResponse.cs
@@ -0,0 +1,22 @@
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+
+namespace Octopus.Client.Model.DeploymentTargetTags;
+
+public class GetDeploymentTargetTagsResponse
+{
+ [Required]
+ public IReadOnlyCollection DeploymentTargetTags { get; set; }
+
+ [Required]
+ public int Count { get; set; }
+}
+
+public class DeploymentTargetTagResource
+{
+ [Required]
+ public string Tag { get; protected set; }
+
+ [Required]
+ public string SpaceId { get; protected set; }
+}
\ No newline at end of file
From 6df1753c48829075554418c5ea919d336f738552 Mon Sep 17 00:00:00 2001
From: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
Date: Thu, 18 Jul 2024 11:45:02 +1000
Subject: [PATCH 2/9] Add class `DeploymentTargetTagsRepository`
---
.../DeploymentTargetTagsRepository.cs | 45 +++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 source/Octopus.Server.Client/Repositories/DeploymentTargetTagsRepository.cs
diff --git a/source/Octopus.Server.Client/Repositories/DeploymentTargetTagsRepository.cs b/source/Octopus.Server.Client/Repositories/DeploymentTargetTagsRepository.cs
new file mode 100644
index 00000000..ed2b0f45
--- /dev/null
+++ b/source/Octopus.Server.Client/Repositories/DeploymentTargetTagsRepository.cs
@@ -0,0 +1,45 @@
+using Octopus.Client.Model.DeploymentTargetTags;
+
+namespace Octopus.Client.Repositories;
+
+public interface IDeploymentTargetTagsRepository
+{
+ CreateDeploymentTargetTagResponse Create(CreateDeploymentTargetTagCommand command);
+
+ DeleteDeploymentTargetTagResponse Delete(DeleteDeploymentTargetTagCommand command);
+
+ GetDeploymentTargetTagByTagResponse Get(GetDeploymentTargetTagByTagResponse request);
+
+ GetDeploymentTargetTagsResponse Get(GetDeploymentTargetTagsRequest request);
+}
+
+public class DeploymentTargetTagsRepository(IOctopusClient client) : IDeploymentTargetTagsRepository
+{
+ public CreateDeploymentTargetTagResponse Create(CreateDeploymentTargetTagCommand command)
+ {
+ var link = client.Repository.Link("DeploymentTargetTags");
+
+ return client.Create(link, command);
+ }
+
+ public DeleteDeploymentTargetTagResponse Delete(DeleteDeploymentTargetTagCommand command)
+ {
+ var link = client.Repository.Link("DeploymentTargetTags");
+
+ return client.Delete(link, command);
+ }
+
+ public GetDeploymentTargetTagByTagResponse Get(GetDeploymentTargetTagByTagResponse request)
+ {
+ var link = client.Repository.Link("DeploymentTargetTags");
+
+ return client.Get(link, request);
+ }
+
+ public GetDeploymentTargetTagsResponse Get(GetDeploymentTargetTagsRequest request)
+ {
+ var link = client.Repository.Link("DeploymentTargetTags");
+
+ return client.Get(link, request);
+ }
+}
\ No newline at end of file
From 27dd999368197cd4ddc532ddd3abe0ec215ed0b4 Mon Sep 17 00:00:00 2001
From: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
Date: Thu, 18 Jul 2024 11:54:30 +1000
Subject: [PATCH 3/9] Add class async `DeploymentTargetTagsRepository`
---
.../Async/DeploymentTargetTagsRepository.cs | 55 +++++++++++++++++++
1 file changed, 55 insertions(+)
create mode 100644 source/Octopus.Server.Client/Repositories/Async/DeploymentTargetTagsRepository.cs
diff --git a/source/Octopus.Server.Client/Repositories/Async/DeploymentTargetTagsRepository.cs b/source/Octopus.Server.Client/Repositories/Async/DeploymentTargetTagsRepository.cs
new file mode 100644
index 00000000..73148e0b
--- /dev/null
+++ b/source/Octopus.Server.Client/Repositories/Async/DeploymentTargetTagsRepository.cs
@@ -0,0 +1,55 @@
+using System.Threading;
+using System.Threading.Tasks;
+using Octopus.Client.Model.DeploymentTargetTags;
+
+namespace Octopus.Client.Repositories.Async;
+
+public interface IDeploymentTargetTagsRepository
+{
+ Task Create(CreateDeploymentTargetTagCommand command,
+ CancellationToken cancellationToken);
+
+ Task Delete(DeleteDeploymentTargetTagCommand command,
+ CancellationToken cancellationToken);
+
+ Task Get(GetDeploymentTargetTagByTagResponse request,
+ CancellationToken cancellationToken);
+
+ Task Get(GetDeploymentTargetTagsRequest request,
+ CancellationToken cancellationToken);
+}
+
+public class DeploymentTargetTagsRepository(IOctopusAsyncClient client) : IDeploymentTargetTagsRepository
+{
+ public async Task Create(CreateDeploymentTargetTagCommand command,
+ CancellationToken cancellationToken)
+ {
+ var link = await client.Repository.Link("DeploymentTargetTags");
+
+ return await client.Create(link, command, null, cancellationToken);
+ }
+
+ public async Task Delete(DeleteDeploymentTargetTagCommand command,
+ CancellationToken cancellationToken)
+ {
+ var link = await client.Repository.Link("DeploymentTargetTags");
+
+ return await client.Delete(link, command, cancellationToken);
+ }
+
+ public async Task Get(GetDeploymentTargetTagByTagResponse request,
+ CancellationToken cancellationToken)
+ {
+ var link = await client.Repository.Link("DeploymentTargetTags");
+
+ return await client.Get(link, request, cancellationToken);
+ }
+
+ public async Task Get(GetDeploymentTargetTagsRequest request,
+ CancellationToken cancellationToken)
+ {
+ var link = await client.Repository.Link("DeploymentTargetTags");
+
+ return await client.Get(link, request, cancellationToken);
+ }
+}
\ No newline at end of file
From ee61c3ef4d667f21863ed81b37a699e56784e859 Mon Sep 17 00:00:00 2001
From: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
Date: Thu, 18 Jul 2024 12:16:20 +1000
Subject: [PATCH 4/9] Update repository classes and interfaces
---
source/Octopus.Server.Client/IOctopusSpaceAsyncRepository.cs | 1 +
source/Octopus.Server.Client/IOctopusSpaceRepository.cs | 1 +
source/Octopus.Server.Client/OctopusAsyncRepository.cs | 2 ++
source/Octopus.Server.Client/OctopusRepository.cs | 2 ++
4 files changed, 6 insertions(+)
diff --git a/source/Octopus.Server.Client/IOctopusSpaceAsyncRepository.cs b/source/Octopus.Server.Client/IOctopusSpaceAsyncRepository.cs
index b432b6c7..0bf496ab 100644
--- a/source/Octopus.Server.Client/IOctopusSpaceAsyncRepository.cs
+++ b/source/Octopus.Server.Client/IOctopusSpaceAsyncRepository.cs
@@ -50,6 +50,7 @@ public interface IOctopusSpaceAsyncRepository: IOctopusCommonAsyncRepository
IVariableSetRepository VariableSets { get; }
IWorkerPoolRepository WorkerPools { get; }
IWorkerRepository Workers { get; }
+ IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
Task LoadSpaceRootDocument();
}
}
\ No newline at end of file
diff --git a/source/Octopus.Server.Client/IOctopusSpaceRepository.cs b/source/Octopus.Server.Client/IOctopusSpaceRepository.cs
index b8272f8f..829bc4f5 100644
--- a/source/Octopus.Server.Client/IOctopusSpaceRepository.cs
+++ b/source/Octopus.Server.Client/IOctopusSpaceRepository.cs
@@ -49,6 +49,7 @@ public interface IOctopusSpaceRepository: IOctopusCommonRepository
IVariableSetRepository VariableSets { get; }
IWorkerPoolRepository WorkerPools { get; }
IWorkerRepository Workers { get; }
+ IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
SpaceRootResource LoadSpaceRootDocument();
}
}
diff --git a/source/Octopus.Server.Client/OctopusAsyncRepository.cs b/source/Octopus.Server.Client/OctopusAsyncRepository.cs
index efc77daf..b77504b9 100644
--- a/source/Octopus.Server.Client/OctopusAsyncRepository.cs
+++ b/source/Octopus.Server.Client/OctopusAsyncRepository.cs
@@ -123,6 +123,7 @@ public OctopusAsyncRepository(IOctopusAsyncClient client, RepositoryScope reposi
loadRootResource = new AsyncLazy(LoadRootDocumentInner);
loadSpaceRootResource = new Lazy>(LoadSpaceRootDocumentInner, true);
DeploymentFreezes = new DeploymentFreezeRepository(client);
+ DeploymentTargetTags = new DeploymentTargetTagsRepository(client);
}
@@ -192,6 +193,7 @@ public OctopusAsyncRepository(IOctopusAsyncClient client, RepositoryScope reposi
public IUpgradeConfigurationRepository UpgradeConfiguration { get; }
public ITelemetryConfigurationRepository TelemetryConfigurationRepository { get; }
public IDeploymentFreezeRepository DeploymentFreezes { get; }
+ public IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
public async Task HasLink(string name)
{
diff --git a/source/Octopus.Server.Client/OctopusRepository.cs b/source/Octopus.Server.Client/OctopusRepository.cs
index 6d011de1..2544410e 100644
--- a/source/Octopus.Server.Client/OctopusRepository.cs
+++ b/source/Octopus.Server.Client/OctopusRepository.cs
@@ -118,6 +118,7 @@ public OctopusRepository(IOctopusClient client, RepositoryScope repositoryScope
loadRootResource = new Lazy(LoadRootDocumentInner, true);
loadSpaceRootResource = new Lazy(LoadSpaceRootDocumentInner, true);
DeploymentFreezes = new DeploymentFreezeRepository(client);
+ DeploymentTargetTags = new DeploymentTargetTagsRepository(client);
}
public IOctopusClient Client { get; }
@@ -185,6 +186,7 @@ public OctopusRepository(IOctopusClient client, RepositoryScope repositoryScope
public IUpgradeConfigurationRepository UpgradeConfiguration { get; }
public ITelemetryConfigurationRepository TelemetryConfigurationRepository { get; }
public IDeploymentFreezeRepository DeploymentFreezes { get; }
+ public IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
public bool HasLink(string name)
{
From f4f0f812d5427e2831164c27edd0c7410d9f80ba Mon Sep 17 00:00:00 2001
From: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
Date: Thu, 18 Jul 2024 14:10:31 +1000
Subject: [PATCH 5/9] Update
PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt
---
...AreaShouldNotRegress..NETCore.approved.txt | 94 +++++++++++++++++++
1 file changed, 94 insertions(+)
diff --git a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt
index 7e3403cf..490f2c36 100644
--- a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt
+++ b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt
@@ -185,6 +185,7 @@ Octopus.Client
Octopus.Client.Repositories.Async.IDeploymentProcessRepository DeploymentProcesses { get; }
Octopus.Client.Repositories.Async.IDeploymentRepository Deployments { get; }
Octopus.Client.Repositories.Async.IDeploymentSettingsRepository DeploymentSettings { get; }
+ Octopus.Client.Repositories.Async.IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
Octopus.Client.Repositories.Async.IEnvironmentRepository Environments { get; }
Octopus.Client.Repositories.Async.IFeedRepository Feeds { get; }
Octopus.Client.Repositories.Async.IGitCredentialRepository GitCredentials { get; }
@@ -230,6 +231,7 @@ Octopus.Client
Octopus.Client.Repositories.IDeploymentProcessRepository DeploymentProcesses { get; }
Octopus.Client.Repositories.IDeploymentRepository Deployments { get; }
Octopus.Client.Repositories.IDeploymentSettingsRepository DeploymentSettings { get; }
+ Octopus.Client.Repositories.IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
Octopus.Client.Repositories.IEnvironmentRepository Environments { get; }
Octopus.Client.Repositories.IFeedRepository Feeds { get; }
Octopus.Client.Repositories.IInterruptionRepository Interruptions { get; }
@@ -394,6 +396,7 @@ Octopus.Client
Octopus.Client.Repositories.Async.IDeploymentProcessRepository DeploymentProcesses { get; }
Octopus.Client.Repositories.Async.IDeploymentRepository Deployments { get; }
Octopus.Client.Repositories.Async.IDeploymentSettingsRepository DeploymentSettings { get; }
+ Octopus.Client.Repositories.Async.IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
Octopus.Client.Repositories.Async.IEnvironmentRepository Environments { get; }
Octopus.Client.Repositories.Async.IEventRepository Events { get; }
Octopus.Client.Repositories.Async.IFeaturesConfigurationRepository FeaturesConfiguration { get; }
@@ -537,6 +540,7 @@ Octopus.Client
Octopus.Client.Repositories.IDeploymentProcessRepository DeploymentProcesses { get; }
Octopus.Client.Repositories.IDeploymentRepository Deployments { get; }
Octopus.Client.Repositories.IDeploymentSettingsRepository DeploymentSettings { get; }
+ Octopus.Client.Repositories.IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
Octopus.Client.Repositories.IEnvironmentRepository Environments { get; }
Octopus.Client.Repositories.IEventRepository Events { get; }
Octopus.Client.Repositories.IFeaturesConfigurationRepository FeaturesConfiguration { get; }
@@ -6673,6 +6677,64 @@ Octopus.Client.Model.DeploymentTargets
RunbookRun = 1
}
}
+Octopus.Client.Model.DeploymentTargetTags
+{
+ class CreateDeploymentTargetTagCommand
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class CreateDeploymentTargetTagResponse
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class DeleteDeploymentTargetTagCommand
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class DeleteDeploymentTargetTagResponse
+ {
+ .ctor()
+ }
+ class DeploymentTargetTagResource
+ {
+ .ctor()
+ String SpaceId { get; }
+ String Tag { get; }
+ }
+ class GetDeploymentTargetTagByTagRequest
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class GetDeploymentTargetTagByTagResponse
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class GetDeploymentTargetTagsRequest
+ {
+ .ctor()
+ IReadOnlyCollection MachineIds { get; set; }
+ Nullable Skip { get; set; }
+ String SpaceId { get; set; }
+ IReadOnlyCollection Tags { get; set; }
+ Nullable Take { get; set; }
+ }
+ class GetDeploymentTargetTagsResponse
+ {
+ .ctor()
+ Int32 Count { get; set; }
+ IReadOnlyCollection DeploymentTargetTags { get; set; }
+ }
+}
Octopus.Client.Model.Endpoints
{
AzureServiceFabricCredentialType
@@ -7794,6 +7856,15 @@ Octopus.Client.Repositories
Octopus.Client.Model.DeploymentFreezes.GetDeploymentFreezesResponse Get(Octopus.Client.Model.DeploymentFreezes.GetDeploymentFreezesRequest)
Octopus.Client.Model.DeploymentFreezes.ModifyDeploymentFreezeResponse Modify(Octopus.Client.Model.DeploymentFreezes.ModifyDeploymentFreezeCommand)
}
+ class DeploymentTargetTagsRepository
+ Octopus.Client.Repositories.IDeploymentTargetTagsRepository
+ {
+ .ctor(Octopus.Client.IOctopusClient)
+ Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagResponse Create(Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagCommand)
+ Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagResponse Delete(Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagCommand)
+ Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse)
+ Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsResponse Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsRequest)
+ }
interface IAccountRepository
Octopus.Client.Repositories.IResourceRepository
Octopus.Client.Repositories.ICreate
@@ -7986,6 +8057,13 @@ Octopus.Client.Repositories
Octopus.Client.Model.DeploymentSettingsResource Modify(Octopus.Client.Model.DeploymentSettingsResource)
Octopus.Client.Model.DeploymentSettingsResource Modify(Octopus.Client.Model.DeploymentSettingsResource, String)
}
+ interface IDeploymentTargetTagsRepository
+ {
+ Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagResponse Create(Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagCommand)
+ Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagResponse Delete(Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagCommand)
+ Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse)
+ Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsResponse Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsRequest)
+ }
interface IEnvironmentRepository
Octopus.Client.Repositories.IFindBySlug
Octopus.Client.Repositories.IPaginate
@@ -8547,6 +8625,15 @@ Octopus.Client.Repositories.Async
Task Get(Octopus.Client.Model.DeploymentFreezes.GetDeploymentFreezesRequest, CancellationToken)
Task Modify(Octopus.Client.Model.DeploymentFreezes.ModifyDeploymentFreezeCommand, CancellationToken)
}
+ class DeploymentTargetTagsRepository
+ Octopus.Client.Repositories.Async.IDeploymentTargetTagsRepository
+ {
+ .ctor(Octopus.Client.IOctopusAsyncClient)
+ Task Create(Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagCommand, CancellationToken)
+ Task Delete(Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagCommand, CancellationToken)
+ Task Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse, CancellationToken)
+ Task Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsRequest, CancellationToken)
+ }
interface IAccountRepository
Octopus.Client.Repositories.Async.IResourceRepository
Octopus.Client.Repositories.Async.ICreate
@@ -8753,6 +8840,13 @@ Octopus.Client.Repositories.Async
Task Modify(Octopus.Client.Model.DeploymentSettingsResource, String)
Task Modify(Octopus.Client.Model.DeploymentSettingsResource, String, CancellationToken)
}
+ interface IDeploymentTargetTagsRepository
+ {
+ Task Create(Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagCommand, CancellationToken)
+ Task Delete(Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagCommand, CancellationToken)
+ Task Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse, CancellationToken)
+ Task Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsRequest, CancellationToken)
+ }
interface IEnvironmentRepository
Octopus.Client.Repositories.Async.IFindBySlug
Octopus.Client.Repositories.Async.IPaginate
From da7c75f6613482122f863743fd19c60f7f04f176 Mon Sep 17 00:00:00 2001
From: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
Date: Thu, 18 Jul 2024 16:25:01 +1000
Subject: [PATCH 6/9] Update class `DeploymentTargetTagResource` to have public
setters
---
.../DeploymentTargetTags/GetDeploymentTargetTagsResponse.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsResponse.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsResponse.cs
index 8aef51f8..f96b21b2 100644
--- a/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsResponse.cs
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsResponse.cs
@@ -15,8 +15,8 @@ public class GetDeploymentTargetTagsResponse
public class DeploymentTargetTagResource
{
[Required]
- public string Tag { get; protected set; }
+ public string Tag { get; set; }
[Required]
- public string SpaceId { get; protected set; }
+ public string SpaceId { get; set; }
}
\ No newline at end of file
From c418f1fe3e4daa8e1b94561c8541f922a67b6484 Mon Sep 17 00:00:00 2001
From: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
Date: Thu, 18 Jul 2024 16:36:15 +1000
Subject: [PATCH 7/9] Update
`PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt`
---
...ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt
index 490f2c36..6eaea030 100644
--- a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt
+++ b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt
@@ -6704,8 +6704,8 @@ Octopus.Client.Model.DeploymentTargetTags
class DeploymentTargetTagResource
{
.ctor()
- String SpaceId { get; }
- String Tag { get; }
+ String SpaceId { get; set; }
+ String Tag { get; set; }
}
class GetDeploymentTargetTagByTagRequest
{
From 06353ae15c780fb5ce782f7f8ff645f15289d1f4 Mon Sep 17 00:00:00 2001
From: Egor Pavlikhin
Date: Fri, 19 Jul 2024 11:04:13 +1000
Subject: [PATCH 8/9] Update test
---
...houldNotRegress..NETFramework.approved.txt | 94 +++++++++++++++++++
1 file changed, 94 insertions(+)
diff --git a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt
index 274ccf7b..19d6d6df 100644
--- a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt
+++ b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt
@@ -185,6 +185,7 @@ Octopus.Client
Octopus.Client.Repositories.Async.IDeploymentProcessRepository DeploymentProcesses { get; }
Octopus.Client.Repositories.Async.IDeploymentRepository Deployments { get; }
Octopus.Client.Repositories.Async.IDeploymentSettingsRepository DeploymentSettings { get; }
+ Octopus.Client.Repositories.Async.IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
Octopus.Client.Repositories.Async.IEnvironmentRepository Environments { get; }
Octopus.Client.Repositories.Async.IFeedRepository Feeds { get; }
Octopus.Client.Repositories.Async.IGitCredentialRepository GitCredentials { get; }
@@ -230,6 +231,7 @@ Octopus.Client
Octopus.Client.Repositories.IDeploymentProcessRepository DeploymentProcesses { get; }
Octopus.Client.Repositories.IDeploymentRepository Deployments { get; }
Octopus.Client.Repositories.IDeploymentSettingsRepository DeploymentSettings { get; }
+ Octopus.Client.Repositories.IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
Octopus.Client.Repositories.IEnvironmentRepository Environments { get; }
Octopus.Client.Repositories.IFeedRepository Feeds { get; }
Octopus.Client.Repositories.IInterruptionRepository Interruptions { get; }
@@ -394,6 +396,7 @@ Octopus.Client
Octopus.Client.Repositories.Async.IDeploymentProcessRepository DeploymentProcesses { get; }
Octopus.Client.Repositories.Async.IDeploymentRepository Deployments { get; }
Octopus.Client.Repositories.Async.IDeploymentSettingsRepository DeploymentSettings { get; }
+ Octopus.Client.Repositories.Async.IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
Octopus.Client.Repositories.Async.IEnvironmentRepository Environments { get; }
Octopus.Client.Repositories.Async.IEventRepository Events { get; }
Octopus.Client.Repositories.Async.IFeaturesConfigurationRepository FeaturesConfiguration { get; }
@@ -535,6 +538,7 @@ Octopus.Client
Octopus.Client.Repositories.IDeploymentProcessRepository DeploymentProcesses { get; }
Octopus.Client.Repositories.IDeploymentRepository Deployments { get; }
Octopus.Client.Repositories.IDeploymentSettingsRepository DeploymentSettings { get; }
+ Octopus.Client.Repositories.IDeploymentTargetTagsRepository DeploymentTargetTags { get; }
Octopus.Client.Repositories.IEnvironmentRepository Environments { get; }
Octopus.Client.Repositories.IEventRepository Events { get; }
Octopus.Client.Repositories.IFeaturesConfigurationRepository FeaturesConfiguration { get; }
@@ -6697,6 +6701,64 @@ Octopus.Client.Model.DeploymentTargets
RunbookRun = 1
}
}
+Octopus.Client.Model.DeploymentTargetTags
+{
+ class CreateDeploymentTargetTagCommand
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class CreateDeploymentTargetTagResponse
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class DeleteDeploymentTargetTagCommand
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class DeleteDeploymentTargetTagResponse
+ {
+ .ctor()
+ }
+ class DeploymentTargetTagResource
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class GetDeploymentTargetTagByTagRequest
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class GetDeploymentTargetTagByTagResponse
+ {
+ .ctor()
+ String SpaceId { get; set; }
+ String Tag { get; set; }
+ }
+ class GetDeploymentTargetTagsRequest
+ {
+ .ctor()
+ IReadOnlyCollection MachineIds { get; set; }
+ Nullable Skip { get; set; }
+ String SpaceId { get; set; }
+ IReadOnlyCollection Tags { get; set; }
+ Nullable Take { get; set; }
+ }
+ class GetDeploymentTargetTagsResponse
+ {
+ .ctor()
+ Int32 Count { get; set; }
+ IReadOnlyCollection DeploymentTargetTags { get; set; }
+ }
+}
Octopus.Client.Model.Endpoints
{
AzureServiceFabricCredentialType
@@ -7819,6 +7881,15 @@ Octopus.Client.Repositories
Octopus.Client.Model.DeploymentFreezes.GetDeploymentFreezesResponse Get(Octopus.Client.Model.DeploymentFreezes.GetDeploymentFreezesRequest)
Octopus.Client.Model.DeploymentFreezes.ModifyDeploymentFreezeResponse Modify(Octopus.Client.Model.DeploymentFreezes.ModifyDeploymentFreezeCommand)
}
+ class DeploymentTargetTagsRepository
+ Octopus.Client.Repositories.IDeploymentTargetTagsRepository
+ {
+ .ctor(Octopus.Client.IOctopusClient)
+ Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagResponse Create(Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagCommand)
+ Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagResponse Delete(Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagCommand)
+ Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse)
+ Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsResponse Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsRequest)
+ }
interface IAccountRepository
Octopus.Client.Repositories.IResourceRepository
Octopus.Client.Repositories.ICreate
@@ -8011,6 +8082,13 @@ Octopus.Client.Repositories
Octopus.Client.Model.DeploymentSettingsResource Modify(Octopus.Client.Model.DeploymentSettingsResource)
Octopus.Client.Model.DeploymentSettingsResource Modify(Octopus.Client.Model.DeploymentSettingsResource, String)
}
+ interface IDeploymentTargetTagsRepository
+ {
+ Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagResponse Create(Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagCommand)
+ Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagResponse Delete(Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagCommand)
+ Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse)
+ Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsResponse Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsRequest)
+ }
interface IEnvironmentRepository
Octopus.Client.Repositories.IFindBySlug
Octopus.Client.Repositories.IPaginate
@@ -8572,6 +8650,15 @@ Octopus.Client.Repositories.Async
Task Get(Octopus.Client.Model.DeploymentFreezes.GetDeploymentFreezesRequest, CancellationToken)
Task Modify(Octopus.Client.Model.DeploymentFreezes.ModifyDeploymentFreezeCommand, CancellationToken)
}
+ class DeploymentTargetTagsRepository
+ Octopus.Client.Repositories.Async.IDeploymentTargetTagsRepository
+ {
+ .ctor(Octopus.Client.IOctopusAsyncClient)
+ Task Create(Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagCommand, CancellationToken)
+ Task Delete(Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagCommand, CancellationToken)
+ Task Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse, CancellationToken)
+ Task Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsRequest, CancellationToken)
+ }
interface IAccountRepository
Octopus.Client.Repositories.Async.IResourceRepository
Octopus.Client.Repositories.Async.ICreate
@@ -8778,6 +8865,13 @@ Octopus.Client.Repositories.Async
Task Modify(Octopus.Client.Model.DeploymentSettingsResource, String)
Task Modify(Octopus.Client.Model.DeploymentSettingsResource, String, CancellationToken)
}
+ interface IDeploymentTargetTagsRepository
+ {
+ Task Create(Octopus.Client.Model.DeploymentTargetTags.CreateDeploymentTargetTagCommand, CancellationToken)
+ Task Delete(Octopus.Client.Model.DeploymentTargetTags.DeleteDeploymentTargetTagCommand, CancellationToken)
+ Task Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagByTagResponse, CancellationToken)
+ Task Get(Octopus.Client.Model.DeploymentTargetTags.GetDeploymentTargetTagsRequest, CancellationToken)
+ }
interface IEnvironmentRepository
Octopus.Client.Repositories.Async.IFindBySlug
Octopus.Client.Repositories.Async.IPaginate
From 3ac11a52e2de8b5aa3a9ad640dc94243a5177549 Mon Sep 17 00:00:00 2001
From: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
Date: Tue, 23 Jul 2024 10:11:44 +1000
Subject: [PATCH 9/9] Inherit from `IHaveSpaceResource` for command and request
classes
---
.../DeploymentTargetTags/CreateDeploymentTargetTagCommand.cs | 3 ++-
.../DeploymentTargetTags/DeleteDeploymentTargetTagCommand.cs | 3 ++-
.../DeploymentTargetTags/GetDeploymentTargetTagByTagRequest.cs | 3 ++-
.../DeploymentTargetTags/GetDeploymentTargetTagsRequest.cs | 3 ++-
4 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagCommand.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagCommand.cs
index 0036d9cb..1df8d0e5 100644
--- a/source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagCommand.cs
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/CreateDeploymentTargetTagCommand.cs
@@ -1,8 +1,9 @@
using System.ComponentModel.DataAnnotations;
+using Octopus.Client.Extensibility;
namespace Octopus.Client.Model.DeploymentTargetTags;
-public class CreateDeploymentTargetTagCommand
+public class CreateDeploymentTargetTagCommand : IHaveSpaceResource
{
///
/// The name or tag of the DeploymentTargetTag
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagCommand.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagCommand.cs
index 35f91f10..3832713c 100644
--- a/source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagCommand.cs
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/DeleteDeploymentTargetTagCommand.cs
@@ -1,8 +1,9 @@
using System.ComponentModel.DataAnnotations;
+using Octopus.Client.Extensibility;
namespace Octopus.Client.Model.DeploymentTargetTags;
-public class DeleteDeploymentTargetTagCommand
+public class DeleteDeploymentTargetTagCommand : IHaveSpaceResource
{
///
/// The ID of the space containing the resource(s).
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagRequest.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagRequest.cs
index 5bc1e9bc..63006b24 100644
--- a/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagRequest.cs
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagByTagRequest.cs
@@ -1,8 +1,9 @@
using System.ComponentModel.DataAnnotations;
+using Octopus.Client.Extensibility;
namespace Octopus.Client.Model.DeploymentTargetTags;
-public class GetDeploymentTargetTagByTagRequest
+public class GetDeploymentTargetTagByTagRequest : IHaveSpaceResource
{
///
/// The ID of the space containing the resource(s).
diff --git a/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsRequest.cs b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsRequest.cs
index e99645d5..297cee13 100644
--- a/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsRequest.cs
+++ b/source/Octopus.Server.Client/Model/DeploymentTargetTags/GetDeploymentTargetTagsRequest.cs
@@ -1,11 +1,12 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
+using Octopus.Client.Extensibility;
using Octopus.Server.MessageContracts.Base.Attributes;
namespace Octopus.Client.Model.DeploymentTargetTags;
-public class GetDeploymentTargetTagsRequest
+public class GetDeploymentTargetTagsRequest : IHaveSpaceResource
{
///
/// The ID of the Space to which the DeploymentTargetTags belong.