using Core.Blueprint.External.Clients.Blueprint.Adapters; using Core.Blueprint.External.Clients.Blueprint.Requests.BlobStorage; using Core.Blueprint.External.Clients.Blueprint.Requests.KeyVault; using Core.Blueprint.External.Clients.Blueprint.Requests.Mongo; using Core.Blueprint.External.Clients.Blueprint.Requests.SQL; using Core.Blueprint.KeyVault; using Core.Blueprint.Storage; using Core.Blueprint.Storage.Adapters; using Microsoft.AspNetCore.Mvc; using Refit; namespace Core.Blueprint.External.Clients.Blueprint { public interface IBlueprintServiceClient { [Post("/v1/MongoBlueprint/Create")] Task> CreateBlueprintService([Body] CreateBlueprintRequest newBlueprint, CancellationToken cancellationToken = default); [Get("/v1/MongoBlueprint/GetAll")] Task>> GetAllBlueprintsService(CancellationToken cancellationToken = default); [Post("/v1/MongoBlueprint/GetById")] Task> GetBlueprintByIdService([Body] GetBlueprintRequest request, CancellationToken cancellationToken = default); [Put("/v1/MongoBlueprint/Update")] Task> UpdateBlueprintService([Body] UpdateBlueprintRequest entity, CancellationToken cancellationToken = default); [Delete("/v1/MongoBlueprint/Delete")] Task> DeleteBlueprintService([Body] DeleteBlueprintRequest request, CancellationToken cancellationToken = default); [Post("/v1/SQLUserProject/Create")] Task> CreateUserProjectService([Body] CreateUserProjectRequest newUserProject, CancellationToken cancellationToken = default); [Get("/v1/SQLUserProject/GetAll")] Task>> GetAllUserProjectsService(CancellationToken cancellationToken = default); [Post("/v1/SQLUserProject/GetById")] Task> GetUserProjectByIdService([Body] GetUserProjectRequest request, CancellationToken cancellationToken = default); [Put("/v1/SQLUserProject/Update")] Task> UpdateUserProjectService([Body] UpdateUserProjectRequest entity, CancellationToken cancellationToken = default); [Delete("/v1/SQLUserProject/Delete")] Task> DeleteUserProjectService([Body] DeleteUserProjectRequest request, CancellationToken cancellationToken = default); [Post("/v1/KeyVault/CreateSecret")] Task> CreateSecretService([Body] CreateSecretRequest newKeyVault, CancellationToken cancellationToken = default); [Post("/v1/KeyVault/GetSecretByName")] Task> GetSecretByNameService([Body] GetSecretRequest request, CancellationToken cancellationToken = default); [Put("/v1/KeyVault/UpdateSecret")] Task> UpdateSecretService([Body] UpdateSecretRequest entity, CancellationToken cancellationToken = default); [Delete("/v1/KeyVault/DeleteSecret")] Task> DeleteSecretService([Body] DeleteSecretRequest request, CancellationToken cancellationToken = default); [Post("/v1/BlobStorage/UploadBlob")] Task> UploadBlobService([Body] UploadBlobRequest request, CancellationToken cancellationToken = default); [Get("/v1/BlobStorage/GetBlobList")] Task>> GetBlobListAsync([FromQuery] string? prefix, CancellationToken cancellationToken = default); [Post("/v1/BlobStorage/DownloadBlob")] Task> DownloadBlobAsync([Body] DownloadBlobRequest request, CancellationToken cancellationToken = default); [Delete("/v1/BlobStorage/DeleteBlob")] Task> DeleteBlobService([Body] DeleteBlobRequest request, CancellationToken cancellationToken = default); } }