diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Culture/AllCultureController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Culture/AllCultureController.cs index eb5177996aab..be5c32863a4a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Culture/AllCultureController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Culture/AllCultureController.cs @@ -28,6 +28,8 @@ public AllCultureController(IUmbracoMapper umbracoMapper, ICultureService cultur [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of cultures available for creating languages.")] + [EndpointDescription("Gets a paginated collection containing the English and localized names of all available cultures.")] public Task> GetAll(CancellationToken cancellationToken, int skip = 0, int take = 100) { CultureInfo[] all = _cultureService.GetValidCultureInfos(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/ByKeyDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/ByKeyDataTypeController.cs index 5418f78a4968..2b4d04730cc3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/ByKeyDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/ByKeyDataTypeController.cs @@ -24,6 +24,8 @@ public ByKeyDataTypeController(IDataTypeService dataTypeService, IUmbracoMapper [MapToApiVersion("1.0")] [ProducesResponseType(typeof(DataTypeResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a datatype.")] + [EndpointDescription("Gets a datatype identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { IDataType? dataType = await _dataTypeService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/ConfigurationDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/ConfigurationDataTypeController.cs index f0039b94d6aa..bae092d6fd95 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/ConfigurationDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/ConfigurationDataTypeController.cs @@ -18,6 +18,8 @@ public class ConfigurationDataTypeController : DataTypeControllerBase [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(DatatypeConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the datatype configuration.")] + [EndpointDescription("Gets the configuration settings for datatypes.")] public Task Configuration(CancellationToken cancellationToken) { var responseModel = new DatatypeConfigurationResponseModel diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/CopyDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/CopyDataTypeController.cs index 6bf47269d5ce..f2b89d3c20b3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/CopyDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/CopyDataTypeController.cs @@ -29,6 +29,8 @@ public CopyDataTypeController(IDataTypeService dataTypeService, IBackOfficeSecur [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Copies a datatype.")] + [EndpointDescription("Creates a duplicate of an existing datatype identified by the provided Id.")] public async Task Copy(CancellationToken cancellationToken, Guid id, CopyDataTypeRequestModel copyDataTypeRequestModel) { IDataType? source = await _dataTypeService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/CreateDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/CreateDataTypeController.cs index 1acea3969626..0d6d00f80371 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/CreateDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/CreateDataTypeController.cs @@ -33,6 +33,8 @@ public CreateDataTypeController(IDataTypeService dataTypeService, IDataTypePrese [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new data type.")] + [EndpointDescription("Creates a new data type with the configuration specified in the request model.")] public async Task Create(CancellationToken cancellationToken, CreateDataTypeRequestModel createDataTypeRequestModel) { var attempt = await _dataTypePresentationFactory.CreateAsync(createDataTypeRequestModel); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/DeleteDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/DeleteDataTypeController.cs index ba6cb63d8f98..779cce57d2ce 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/DeleteDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/DeleteDataTypeController.cs @@ -29,6 +29,8 @@ public DeleteDataTypeController(IDataTypeService dataTypeService, IBackOfficeSec [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a datatype.")] + [EndpointDescription("Deletes a datatype identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { Attempt result = await _dataTypeService.DeleteAsync(id, CurrentUserKey(_backOfficeSecurityAccessor)); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Filter/FilterDataTypeFilterController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Filter/FilterDataTypeFilterController.cs index 5b73c7966477..7a5dd0ce478d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Filter/FilterDataTypeFilterController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Filter/FilterDataTypeFilterController.cs @@ -26,6 +26,8 @@ public FilterDataTypeFilterController(IDataTypeService dataTypeService, IUmbraco [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a filtered collection of data types.")] + [EndpointDescription("Filters data types based on the provided criteria with support for pagination.")] public async Task Filter( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/ByKeyDataTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/ByKeyDataTypeFolderController.cs index 50f71f7a080e..a06cebe71ba5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/ByKeyDataTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/ByKeyDataTypeFolderController.cs @@ -21,5 +21,7 @@ public ByKeyDataTypeFolderController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(FolderResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a datatype folder.")] + [EndpointDescription("Gets a datatype folder identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) => await GetFolderAsync(id); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/CreateDataTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/CreateDataTypeFolderController.cs index 9de52883003f..943c1793ea04 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/CreateDataTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/CreateDataTypeFolderController.cs @@ -22,6 +22,8 @@ public CreateDataTypeFolderController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a data type folder.")] + [EndpointDescription("Creates a new data type folder with the provided name and parent location.")] public async Task Create(CancellationToken cancellationToken, CreateFolderRequestModel createFolderRequestModel) => await CreateFolderAsync( createFolderRequestModel, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/DeleteDataTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/DeleteDataTypeFolderController.cs index 5b9848d6094c..fa13bdbc19ff 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/DeleteDataTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/DeleteDataTypeFolderController.cs @@ -21,5 +21,7 @@ public DeleteDataTypeFolderController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a datatype folder.")] + [EndpointDescription("Deletes a datatype folder identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) => await DeleteFolderAsync(id); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/UpdateDataTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/UpdateDataTypeFolderController.cs index fa3eba2feb5f..e3b944b11d8e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/UpdateDataTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Folder/UpdateDataTypeFolderController.cs @@ -22,6 +22,8 @@ public UpdateDataTypeFolderController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a datatype folder.")] + [EndpointDescription("Updates a datatype folder identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/IsUsedDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/IsUsedDataTypeController.cs index 0a9a048389b5..df9270a4daae 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/IsUsedDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/IsUsedDataTypeController.cs @@ -21,6 +21,8 @@ public IsUsedDataTypeController(IDataTypeUsageService dataTypeUsageService) [MapToApiVersion("1.0")] [ProducesResponseType(typeof(bool), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Checks if a datatype is used.")] + [EndpointDescription("Checks if the datatype identified by the provided Id is used in any content, media, or members.")] public async Task IsUsed(CancellationToken cancellationToken, Guid id) { Attempt result = await _dataTypeUsageService.HasSavedValuesAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Item/ItemDatatypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Item/ItemDatatypeItemController.cs index 2865badec04f..f59da129c4c7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Item/ItemDatatypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Item/ItemDatatypeItemController.cs @@ -23,6 +23,8 @@ public ItemDatatypeItemController(IDataTypeService dataTypeService, IUmbracoMapp [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of data type items.")] + [EndpointDescription("Gets a collection of data type items identified by the provided Ids.")] public async Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Item/SearchDataTypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Item/SearchDataTypeItemController.cs index 7e2ded6564f4..dd6093d2768f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Item/SearchDataTypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Item/SearchDataTypeItemController.cs @@ -26,6 +26,8 @@ public SearchDataTypeItemController(IEntitySearchService entitySearchService, ID [HttpGet("search")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] + [EndpointSummary("Searches datatype items.")] + [EndpointDescription("Searches datatype items by the provided query with pagination support.")] public async Task Search(CancellationToken cancellationToken, string query, int skip = 0, int take = 100) { PagedModel searchResult = _entitySearchService.Search(UmbracoObjectTypes.DataType, query, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/MoveDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/MoveDataTypeController.cs index e8f5230463a7..637f0527f06e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/MoveDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/MoveDataTypeController.cs @@ -29,6 +29,8 @@ public MoveDataTypeController(IDataTypeService dataTypeService, IBackOfficeSecur [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Moves a datatype.")] + [EndpointDescription("Moves a datatype identified by the provided Id to a different location.")] public async Task Move(CancellationToken cancellationToken, Guid id, MoveDataTypeRequestModel moveDataTypeRequestModel) { IDataType? source = await _dataTypeService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/References/ReferencedByDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/References/ReferencedByDataTypeController.cs index b36815d408ee..ba36ce99461b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/References/ReferencedByDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/References/ReferencedByDataTypeController.cs @@ -27,6 +27,8 @@ public ReferencedByDataTypeController(IDataTypeService dataTypeService, IRelatio [HttpGet("{id:guid}/referenced-by")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of items that reference datatypes.")] + [EndpointDescription("Gets a paginated collection of items that reference the datatypes identified by the provided Ids.")] public async Task>> ReferencedBy( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/AncestorsDataTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/AncestorsDataTypeTreeController.cs index 15a1c749f517..9a23948b6fb7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/AncestorsDataTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/AncestorsDataTypeTreeController.cs @@ -26,6 +26,8 @@ public AncestorsDataTypeTreeController(IEntityService entityService, FlagProvide [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor datatype items.")] + [EndpointDescription("Gets a collection of datatype items that are ancestors to the provided Id.")] public async Task>> Ancestors(CancellationToken cancellationToken, Guid descendantId) => await GetAncestors(descendantId); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs index 6b9e0611aace..2f6d09a6b2a7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs @@ -27,6 +27,8 @@ public ChildrenDataTypeTreeController(IEntityService entityService, FlagProvider [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of datatype tree child items.")] + [EndpointDescription("Gets a paginated collection of datatype tree items that are children of the provided parent Id.")] public async Task>> Children(CancellationToken cancellationToken, Guid parentId, int skip = 0, int take = 100, bool foldersOnly = false) { RenderFoldersOnly(foldersOnly); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs index d4b5e5ef8743..c2d402310995 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs @@ -27,6 +27,8 @@ public RootDataTypeTreeController(IEntityService entityService, FlagProviderColl [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of datatype items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of datatype items from the root of the tree with optional filtering.")] public async Task>> Root(CancellationToken cancellationToken, int skip = 0, int take = 100, bool foldersOnly = false) { RenderFoldersOnly(foldersOnly); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/SiblingsDataTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/SiblingsDataTypeTreeController.cs index 8cd7577a96eb..84222d83e719 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/SiblingsDataTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/SiblingsDataTypeTreeController.cs @@ -24,6 +24,8 @@ public SiblingsDataTypeTreeController(IEntityService entityService, FlagProvider [HttpGet("siblings")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of datatype tree sibling items.")] + [EndpointDescription("Gets a collection of datatype tree items that are siblings of the provided Id.")] public async Task>> Siblings(CancellationToken cancellationToken, Guid target, int before, int after, bool foldersOnly = false) { RenderFoldersOnly(foldersOnly); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/UpdateDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/UpdateDataTypeController.cs index 4b67b55653ce..832abc018ec7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/UpdateDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/UpdateDataTypeController.cs @@ -33,6 +33,8 @@ public UpdateDataTypeController(IDataTypeService dataTypeService, IBackOfficeSec [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a datatype.")] + [EndpointDescription("Updates a datatype identified by the provided Id with the details from the request model.")] public async Task Update(CancellationToken cancellationToken, Guid id, UpdateDataTypeRequestModel updateDataTypeViewModel) { IDataType? current = await _dataTypeService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/AllDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/AllDictionaryController.cs index a0e77472437a..64ff8b4c0b22 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/AllDictionaryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/AllDictionaryController.cs @@ -25,6 +25,8 @@ public AllDictionaryController(IDictionaryItemService dictionaryItemService, IUm [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of dictionary items.")] + [EndpointDescription("Gets a paginated collection of dictionary items with optional filtering by name.")] public async Task>> All( CancellationToken cancellationToken, string? filter = null, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ByKeyDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ByKeyDictionaryController.cs index b28db0cc8205..ed0e1750062e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ByKeyDictionaryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ByKeyDictionaryController.cs @@ -24,6 +24,8 @@ public ByKeyDictionaryController(IDictionaryItemService dictionaryItemService, I [MapToApiVersion("1.0")] [ProducesResponseType(typeof(DictionaryItemResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a dictionary.")] + [EndpointDescription("Gets a dictionary identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { IDictionaryItem? dictionary = await _dictionaryItemService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/CreateDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/CreateDictionaryController.cs index a67723e0a2b3..bc769b03e320 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/CreateDictionaryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/CreateDictionaryController.cs @@ -41,6 +41,8 @@ public CreateDictionaryController( [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status409Conflict)] + [EndpointSummary("Creates a new dictionary.")] + [EndpointDescription("Creates a new dictionary with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreateDictionaryItemRequestModel createDictionaryItemRequestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DeleteDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DeleteDictionaryController.cs index b426ff1daa02..932c577dfc65 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DeleteDictionaryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DeleteDictionaryController.cs @@ -26,6 +26,8 @@ public DeleteDictionaryController(IDictionaryItemService dictionaryItemService, [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a dictionary.")] + [EndpointDescription("Deletes a dictionary identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { Attempt result = await _dictionaryItemService.DeleteAsync(id, CurrentUserKey(_backOfficeSecurityAccessor)); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ExportDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ExportDictionaryController.cs index 07af84742ce8..e8d777fe17e5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ExportDictionaryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ExportDictionaryController.cs @@ -26,6 +26,8 @@ public ExportDictionaryController(IDictionaryItemService dictionaryItemService, [MapToApiVersion("1.0")] [ProducesResponseType(typeof(FileContentResult), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Exports a dictionary.")] + [EndpointDescription("Exports the dictionary identified by the provided Id to a downloadable format.")] public async Task Export(CancellationToken cancellationToken, Guid id, bool includeChildren = false) { IDictionaryItem? dictionaryItem = await _dictionaryItemService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ImportDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ImportDictionaryController.cs index 4f4954b87c02..53b457f36702 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ImportDictionaryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ImportDictionaryController.cs @@ -30,6 +30,8 @@ public ImportDictionaryController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Imports a dictionary.")] + [EndpointDescription("Imports a dictionary from the provided file upload.")] public async Task Import( CancellationToken cancellationToken, ImportDictionaryRequestModel importDictionaryRequestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Item/ItemDictionaryItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Item/ItemDictionaryItemController.cs index 67c54aac51b2..7623dad66cbb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Item/ItemDictionaryItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Item/ItemDictionaryItemController.cs @@ -23,6 +23,8 @@ public ItemDictionaryItemController(IDictionaryItemService dictionaryItemService [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of dictionary items.")] + [EndpointDescription("Gets a collection of dictionary items identified by the provided Ids.")] public async Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/MoveDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/MoveDictionaryController.cs index 6821d8242dbd..9886cf2e78af 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/MoveDictionaryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/MoveDictionaryController.cs @@ -27,6 +27,8 @@ public MoveDictionaryController(IDictionaryItemService dictionaryItemService, IB [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Moves a dictionary.")] + [EndpointDescription("Moves a dictionary identified by the provided Id to a different location.")] public async Task Move( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/AncestorsDictionaryTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/AncestorsDictionaryTreeController.cs index 49806ed81040..50d76aa489eb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/AncestorsDictionaryTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/AncestorsDictionaryTreeController.cs @@ -26,6 +26,8 @@ public AncestorsDictionaryTreeController(IEntityService entityService, FlagProvi [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor dictionary items.")] + [EndpointDescription("Gets a collection of dictionary items that are ancestors to the provided Id.")] public async Task>> Ancestors(CancellationToken cancellationToken, Guid descendantId) => await GetAncestors(descendantId); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs index 9db33dca66e0..6a4adaaeb0cb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs @@ -28,6 +28,8 @@ public ChildrenDictionaryTreeController(IEntityService entityService, FlagProvid [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of dictionary tree child items.")] + [EndpointDescription("Gets a paginated collection of dictionary tree items that are children of the provided parent Id.")] public async Task>> Children(CancellationToken cancellationToken, Guid parentId, int skip = 0, int take = 100) { PagedModel paginatedItems = await DictionaryItemService.GetPagedAsync(parentId, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs index e7b79b2fe268..3196d207d31a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs @@ -27,6 +27,8 @@ public RootDictionaryTreeController(IEntityService entityService, FlagProviderCo [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of dictionary items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of dictionary items from the root of the tree with optional filtering.")] public async Task>> Root(CancellationToken cancellationToken, int skip = 0, int take = 100) { PagedModel paginatedItems = await DictionaryItemService.GetPagedAsync(null, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UpdateDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UpdateDictionaryController.cs index aaade24f36e0..5795f75d78ae 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UpdateDictionaryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UpdateDictionaryController.cs @@ -41,6 +41,8 @@ public UpdateDictionaryController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a dictionary.")] + [EndpointDescription("Updates a dictionary identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/AvailableSegmentsController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/AvailableSegmentsController.cs index bb83d578c95f..691ecc56b15b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/AvailableSegmentsController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/AvailableSegmentsController.cs @@ -38,6 +38,8 @@ public AvailableSegmentsController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Gets available segments.")] + [EndpointDescription("Gets a collection of available content segments for the system.")] public async Task GetAvailableSegmentOptions( Guid id, CancellationToken cancellationToken, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/ByKeyDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/ByKeyDocumentController.cs index f61fa1540883..6128976814de 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/ByKeyDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/ByKeyDocumentController.cs @@ -33,6 +33,8 @@ public ByKeyDocumentController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(DocumentResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a document.")] + [EndpointDescription("Gets a document identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/ByKeyPublishedDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/ByKeyPublishedDocumentController.cs index 57710b472f7f..5e8b4a210813 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/ByKeyPublishedDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/ByKeyPublishedDocumentController.cs @@ -34,6 +34,8 @@ public ByKeyPublishedDocumentController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PublishedDocumentResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a document.")] + [EndpointDescription("Gets a document identified by the provided Id.")] public async Task ByKeyPublished(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Collection/ByKeyDocumentCollectionController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Collection/ByKeyDocumentCollectionController.cs index 612322ef3d5f..633fb146489d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Collection/ByKeyDocumentCollectionController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/Collection/ByKeyDocumentCollectionController.cs @@ -57,6 +57,8 @@ public ByKeyDocumentCollectionController( [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a document collection.")] + [EndpointDescription("Gets a document collection identified by the provided Id.")] public async Task ByKey( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/ConfigurationDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/ConfigurationDocumentController.cs index f50bc962629f..67bffb59a1dd 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/ConfigurationDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/ConfigurationDocumentController.cs @@ -18,6 +18,8 @@ public ConfigurationDocumentController( [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(DocumentConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the document configuration.")] + [EndpointDescription("Gets the configuration settings for documents.")] public Task Configuration(CancellationToken cancellationToken) { DocumentConfigurationResponseModel responseModel = _configurationPresentationFactory.CreateDocumentConfigurationResponseModel(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/CopyDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/CopyDocumentController.cs index 8d8c6fd57dbf..070a586797c5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/CopyDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/CopyDocumentController.cs @@ -37,6 +37,8 @@ public CopyDocumentController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Copies a document.")] + [EndpointDescription("Creates a duplicate of an existing document identified by the provided Id.")] public async Task Copy( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/CreateDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/CreateDocumentController.cs index f295a85b9db6..54729264ed8a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/CreateDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/CreateDocumentController.cs @@ -36,6 +36,8 @@ public CreateDocumentController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new document.")] + [EndpointDescription("Creates a new document with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreateDocumentRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/CreatePublicAccessDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/CreatePublicAccessDocumentController.cs index 6797ecc423c8..e3ee810b59c0 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/CreatePublicAccessDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/CreatePublicAccessDocumentController.cs @@ -37,6 +37,8 @@ public CreatePublicAccessDocumentController( [HttpPost("{id:guid}/public-access")] [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates public access rules for a document.")] + [EndpointDescription("Creates public access protection for the document identified by the provided Id.")] public async Task Create( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/DeleteDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/DeleteDocumentController.cs index 805f7ba1b4f5..e82ff964db48 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/DeleteDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/DeleteDocumentController.cs @@ -37,6 +37,8 @@ public DeleteDocumentController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a document.")] + [EndpointDescription("Deletes a document identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/DeletePublicAccessDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/DeletePublicAccessDocumentController.cs index e6faaae75eeb..104bf6865406 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/DeletePublicAccessDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/DeletePublicAccessDocumentController.cs @@ -29,6 +29,8 @@ public DeletePublicAccessDocumentController(IAuthorizationService authorizationS [HttpDelete("{id:guid}/public-access")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a document.")] + [EndpointDescription("Deletes a document identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/DocumentPreviewUrlController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/DocumentPreviewUrlController.cs index 5f90b174c788..ff4949479496 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/DocumentPreviewUrlController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/DocumentPreviewUrlController.cs @@ -28,6 +28,8 @@ public DocumentPreviewUrlController( [ProducesResponseType(typeof(DocumentUrlInfo), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets the preview URL for a document.")] + [EndpointDescription("Gets the preview URL for the document identified by the provided Id.")] public async Task GetPreviewUrl(Guid id, string providerAlias, string? culture, string? segment) { IContent? content = _contentService.GetById(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/DocumentUrlController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/DocumentUrlController.cs index 343e55b605ba..1af014661a71 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/DocumentUrlController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/DocumentUrlController.cs @@ -26,6 +26,8 @@ public DocumentUrlController( [MapToApiVersion("1.0")] [HttpGet("urls")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets URLs for a document.")] + [EndpointDescription("Gets the URLs for the document identified by the provided Id.")] public async Task GetUrls([FromQuery(Name = "id")] HashSet ids) { IEnumerable items = _contentService.GetByIds(ids); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/DomainsController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/DomainsController.cs index b74c99c35f64..073d10ef7218 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/DomainsController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/DomainsController.cs @@ -24,6 +24,8 @@ public DomainsController(IDomainService domainService, IUmbracoMapper umbracoMap [HttpGet("{id:guid}/domains")] [ProducesResponseType(typeof(DomainsResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets domains for a document.")] + [EndpointDescription("Gets the domains and culture settings assigned to the document identified by the provided Id.")] public async Task Domains(CancellationToken cancellationToken, Guid id) { IDomain[] assignedDomains = (await _domainService.GetAssignedDomainsAsync(id, true)) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/GetAuditLogDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/GetAuditLogDocumentController.cs index eedf1a9bf2f5..d7d6d200a09b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/GetAuditLogDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/GetAuditLogDocumentController.cs @@ -35,6 +35,8 @@ public GetAuditLogDocumentController( [MapToApiVersion("1.0")] [HttpGet("{id:guid}/audit-log")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the audit log for a document.")] + [EndpointDescription("Gets a paginated collection of audit log entries for the document identified by the provided Id.")] public async Task GetAuditLog(CancellationToken cancellationToken, Guid id, Direction orderDirection = Direction.Descending, DateTimeOffset? sinceDate = null, int skip = 0, int take = 100) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/GetPublicAccessDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/GetPublicAccessDocumentController.cs index cdcdc1c85cc1..723afb2d617c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/GetPublicAccessDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/GetPublicAccessDocumentController.cs @@ -36,6 +36,8 @@ public GetPublicAccessDocumentController( [HttpGet("{id:guid}/public-access")] [ProducesResponseType(typeof(PublicAccessResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets public access rules for a document.")] + [EndpointDescription("Gets the public access protection settings for the document identified by the provided Id.")] public async Task GetPublicAccess(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/ItemDocumentItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/ItemDocumentItemController.cs index fbe4e2f7d987..e897558a63f1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/ItemDocumentItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/ItemDocumentItemController.cs @@ -28,6 +28,8 @@ public ItemDocumentItemController( [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document items.")] + [EndpointDescription("Gets a collection of document items identified by the provided Ids.")] public async Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/SearchDocumentItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/SearchDocumentItemController.cs index c6628d49f013..ebba55216ca8 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/SearchDocumentItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/SearchDocumentItemController.cs @@ -66,6 +66,8 @@ public async Task SearchWithTrashed( [HttpGet("search")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] + [EndpointSummary("Searches document items.")] + [EndpointDescription("Searches document items by the provided query with pagination support.")] public async Task SearchWithTrashed( CancellationToken cancellationToken, string query, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/MoveDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/MoveDocumentController.cs index cdaafa904ab0..efca3dbc0808 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/MoveDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/MoveDocumentController.cs @@ -37,6 +37,8 @@ public MoveDocumentController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Moves a document.")] + [EndpointDescription("Moves a document identified by the provided Id to a different location.")] public async Task Move(CancellationToken cancellationToken, Guid id, MoveDocumentRequestModel moveDocumentRequestModel) { AuthorizationResult sourceAuthorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/MoveToRecycleBinDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/MoveToRecycleBinDocumentController.cs index c59aa5fc170e..c6c1714a91ee 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/MoveToRecycleBinDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/MoveToRecycleBinDocumentController.cs @@ -37,6 +37,8 @@ public MoveToRecycleBinDocumentController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Moves a document to the recycle bin.")] + [EndpointDescription("Moves a document identified by the provided Id to the recycle bin.")] public async Task MoveToRecycleBin(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/NotificationsController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/NotificationsController.cs index 72c9f18eb55c..da606d47a3cb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/NotificationsController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/NotificationsController.cs @@ -35,6 +35,8 @@ public NotificationsController( [HttpGet("{id:guid}/notifications")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets notifications for a document.")] + [EndpointDescription("Gets the notification settings for the document identified by the provided Id.")] public async Task Notifications(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentController.cs index fe29aa77cd34..83276e30d357 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentController.cs @@ -42,6 +42,8 @@ public PublishDocumentController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Publishes a document.")] + [EndpointDescription("Publishes a document identified by the provided Id.")] public async Task Publish(CancellationToken cancellationToken, Guid id, PublishDocumentRequestModel requestModel) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsController.cs index e39bebd6803c..1afad37ad082 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsController.cs @@ -38,6 +38,8 @@ public PublishDocumentWithDescendantsController( [ProducesResponseType(typeof(PublishWithDescendantsResultModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Publishes a document with its descendants.")] + [EndpointDescription("Publishes a document and its descendants identified by the provided Id.")] public async Task PublishWithDescendants(CancellationToken cancellationToken, Guid id, PublishDocumentWithDescendantsRequestModel requestModel) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsResultController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsResultController.cs index 7325fc1b4b73..f6a3c17c5739 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsResultController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsResultController.cs @@ -33,6 +33,8 @@ public PublishDocumentWithDescendantsResultController( [ProducesResponseType(typeof(PublishWithDescendantsResultModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets the result of publishing a document with descendants.")] + [EndpointDescription("Gets the status and result of a publish with descendants operation.")] public async Task PublishWithDescendantsResult(CancellationToken cancellationToken, Guid id, Guid taskId) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ChildrenDocumentRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ChildrenDocumentRecycleBinController.cs index a32a30b72b1b..6648ac3e98c4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ChildrenDocumentRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ChildrenDocumentRecycleBinController.cs @@ -19,6 +19,8 @@ public ChildrenDocumentRecycleBinController(IEntityService entityService, IDocum [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of documents in the recycle bin.")] + [EndpointDescription("Gets a paginated collection of documents that are children of the provided parent in the recycle bin.")] public async Task>> Children( CancellationToken cancellationToken, Guid parentId, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/DeleteDocumentRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/DeleteDocumentRecycleBinController.cs index 9a49e8b72c1d..4ed8592b4672 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/DeleteDocumentRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/DeleteDocumentRecycleBinController.cs @@ -41,6 +41,8 @@ public DeleteDocumentRecycleBinController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a document.")] + [EndpointDescription("Deletes a document identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/EmptyDocumentRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/EmptyDocumentRecycleBinController.cs index fe79511b29fb..324bce9634d7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/EmptyDocumentRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/EmptyDocumentRecycleBinController.cs @@ -37,6 +37,8 @@ public EmptyDocumentRecycleBinController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Empties the document recycle bin.")] + [EndpointDescription("Permanently deletes all documents in the recycle bin. This operation cannot be undone.")] public async Task EmptyRecycleBin(CancellationToken cancellationToken) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/OriginalParentDocumentRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/OriginalParentDocumentRecycleBinController.cs index 8852b1b0c8b2..ce3f93233108 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/OriginalParentDocumentRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/OriginalParentDocumentRecycleBinController.cs @@ -41,6 +41,8 @@ public OriginalParentDocumentRecycleBinController( [ProducesResponseType(typeof(ReferenceByIdModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Gets the original parent of a document in the recycle bin.")] + [EndpointDescription("Gets the original parent location of a document before it was moved to the recycle bin.")] public async Task OriginalParent(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ReferencedByDocumentRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ReferencedByDocumentRecycleBinController.cs index 2b94fb443f80..bbf1239eb736 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ReferencedByDocumentRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ReferencedByDocumentRecycleBinController.cs @@ -32,6 +32,8 @@ public ReferencedByDocumentRecycleBinController( [HttpGet("referenced-by")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets items referencing a document in the recycle bin.")] + [EndpointDescription("Gets a paginated collection of items that reference the document in the recycle bin.")] public async Task>> ReferencedBy( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RestoreDocumentRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RestoreDocumentRecycleBinController.cs index 1931159babc0..4809a472c683 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RestoreDocumentRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RestoreDocumentRecycleBinController.cs @@ -42,6 +42,8 @@ public RestoreDocumentRecycleBinController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Restores a document from the recycle bin.")] + [EndpointDescription("Restores a document from the recycle bin to its original location or a specified parent.")] public async Task Restore(CancellationToken cancellationToken, Guid id, MoveMediaRequestModel moveDocumentRequestModel) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RootDocumentRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RootDocumentRecycleBinController.cs index addff01824e5..526e5bd829c6 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RootDocumentRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RootDocumentRecycleBinController.cs @@ -19,6 +19,8 @@ public RootDocumentRecycleBinController(IEntityService entityService, IDocumentP [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets documents at the root of the recycle bin.")] + [EndpointDescription("Gets a paginated collection of documents at the root level of the recycle bin.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/SiblingsDocumentRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/SiblingsDocumentRecycleBinController.cs index 06f2f9284fc3..bd2e3b4b7857 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/SiblingsDocumentRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/SiblingsDocumentRecycleBinController.cs @@ -19,6 +19,8 @@ public SiblingsDocumentRecycleBinController(IEntityService entityService, IDocum [HttpGet("siblings")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets sibling documents in the recycle bin.")] + [EndpointDescription("Gets a collection of sibling documents in the recycle bin at the same level as the provided Id.")] public async Task>> Siblings(CancellationToken cancellationToken, Guid target, int before, int after, Guid? dataTypeId = null) => await GetSiblings(target, before, after); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/References/AreReferencedDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/References/AreReferencedDocumentController.cs index bc2353dc5592..60a6701d0375 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/References/AreReferencedDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/References/AreReferencedDocumentController.cs @@ -32,6 +32,8 @@ public AreReferencedDocumentController(ITrackedReferencesService trackedReferenc [HttpGet("are-referenced")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of items that reference documents.")] + [EndpointDescription("Gets a paginated collection of items that reference the documents identified by the provided Ids.")] public async Task>> GetPagedReferencedItems( CancellationToken cancellationToken, [FromQuery(Name="id")]HashSet ids, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/References/ReferencedByDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/References/ReferencedByDocumentController.cs index 6a1d9b282416..8da043433f00 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/References/ReferencedByDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/References/ReferencedByDocumentController.cs @@ -31,6 +31,8 @@ public ReferencedByDocumentController(ITrackedReferencesService trackedReference [HttpGet("{id:guid}/referenced-by")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of items that reference documents.")] + [EndpointDescription("Gets a paginated collection of items that reference the documents identified by the provided Ids.")] public async Task>> ReferencedBy( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/References/ReferencedDescendantsDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/References/ReferencedDescendantsDocumentController.cs index 138b9196287b..9da342912774 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/References/ReferencedDescendantsDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/References/ReferencedDescendantsDocumentController.cs @@ -32,6 +32,8 @@ public ReferencedDescendantsDocumentController(ITrackedReferencesService tracked [HttpGet("{id:guid}/referenced-descendants")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets document descendants that are referenced.")] + [EndpointDescription("Gets a paginated collection of descendant documents that are referenced by other content.")] public async Task>> ReferencedDescendants( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/SortDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/SortDocumentController.cs index ab5315093b5c..7204e95b6645 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/SortDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/SortDocumentController.cs @@ -37,6 +37,8 @@ public SortDocumentController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Sorts documents.")] + [EndpointDescription("Sorts documents in the specified parent container according to the provided sort order.")] public async Task Sort(CancellationToken cancellationToken, SortingRequestModel sortingRequestModel) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/AncestorsDocumentTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/AncestorsDocumentTreeController.cs index 1d0ab51402b7..51c56323ad69 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/AncestorsDocumentTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/AncestorsDocumentTreeController.cs @@ -60,6 +60,8 @@ public AncestorsDocumentTreeController( [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor document items.")] + [EndpointDescription("Gets a collection of document items that are ancestors to the provided Id.")] public async Task>> Ancestors(CancellationToken cancellationToken, Guid descendantId) => await GetAncestors(descendantId); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ChildrenDocumentTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ChildrenDocumentTreeController.cs index c124929ff110..71e27ec93ee0 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ChildrenDocumentTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ChildrenDocumentTreeController.cs @@ -61,6 +61,8 @@ public ChildrenDocumentTreeController( [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document tree child items.")] + [EndpointDescription("Gets a paginated collection of document tree items that are children of the provided parent Id.")] public async Task>> Children( CancellationToken cancellationToken, Guid parentId, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/RootDocumentTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/RootDocumentTreeController.cs index 42a9734a23d7..282ca4d1040b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/RootDocumentTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/RootDocumentTreeController.cs @@ -61,6 +61,8 @@ public RootDocumentTreeController( [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of document items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/SiblingsDocumentTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/SiblingsDocumentTreeController.cs index 088e778aeab6..02eb1f3b58e5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/SiblingsDocumentTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/SiblingsDocumentTreeController.cs @@ -61,6 +61,8 @@ public SiblingsDocumentTreeController( [HttpGet("siblings")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document tree sibling items.")] + [EndpointDescription("Gets a collection of document tree items that are siblings of the provided Id.")] public async Task>> Siblings(CancellationToken cancellationToken, Guid target, int before, int after, Guid? dataTypeId = null) { IgnoreUserStartNodesForDataType(dataTypeId); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/UnpublishDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/UnpublishDocumentController.cs index 7d26b5242261..043152972432 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/UnpublishDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/UnpublishDocumentController.cs @@ -37,6 +37,8 @@ public UnpublishDocumentController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Unpublishes a document.")] + [EndpointDescription("Unpublishes a document identified by the provided Id.")] public async Task Unpublish(CancellationToken cancellationToken, Guid id, UnpublishDocumentRequestModel requestModel) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateDocumentController.cs index c393aef44986..6b6798acca27 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateDocumentController.cs @@ -36,6 +36,8 @@ public UpdateDocumentController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a document.")] + [EndpointDescription("Updates a document identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateDomainsController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateDomainsController.cs index a44289b4c6f7..51f9644c92b9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateDomainsController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateDomainsController.cs @@ -32,6 +32,8 @@ public UpdateDomainsController(IDomainService domainService, IUmbracoMapper umbr [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status409Conflict)] + [EndpointSummary("Updates a document.")] + [EndpointDescription("Updates a document identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateNotificationsController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateNotificationsController.cs index 0d504b22a6d7..964433b324cd 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateNotificationsController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdateNotificationsController.cs @@ -26,6 +26,8 @@ public UpdateNotificationsController(IContentEditingService contentEditingServic [HttpPut("{id:guid}/notifications")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a document.")] + [EndpointDescription("Updates a document identified by the provided Id with the details from the request model.")] public async Task UpdateNotifications(CancellationToken cancellationToken, Guid id, UpdateDocumentNotificationsRequestModel updateModel) { IContent? content = await _contentEditingService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdatePublicAccessDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdatePublicAccessDocumentController.cs index d617f7df8d0f..23588363dedc 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdatePublicAccessDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/UpdatePublicAccessDocumentController.cs @@ -37,6 +37,8 @@ public UpdatePublicAccessDocumentController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a document.")] + [EndpointDescription("Updates a document identified by the provided Id with the details from the request model.")] public async Task Update(CancellationToken cancellationToken, Guid id, PublicAccessRequestModel requestModel) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/ValidateCreateDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/ValidateCreateDocumentController.cs index 2ba44b38ab77..b477ccdf8f68 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/ValidateCreateDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/ValidateCreateDocumentController.cs @@ -38,6 +38,8 @@ public ValidateCreateDocumentController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Validates creating a document.")] + [EndpointDescription("Validates the request model for creating a new document without actually creating it.")] public async Task Validate(CancellationToken cancellationToken, CreateDocumentRequestModel requestModel) => await HandleRequest(requestModel, async () => { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/ValidateUpdateDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/ValidateUpdateDocumentController.cs index e5470de907d5..8c707e90b47e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/ValidateUpdateDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/ValidateUpdateDocumentController.cs @@ -38,6 +38,8 @@ public ValidateUpdateDocumentController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Validates updating a document.")] + [EndpointDescription("Validates the request model for updating a document without actually updating it.")] public async Task ValidateV1_1(CancellationToken cancellationToken, Guid id, ValidateUpdateDocumentRequestModel requestModel) => await HandleRequest(id, requestModel, async () => { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/ByKeyDocumentBlueprintController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/ByKeyDocumentBlueprintController.cs index 4fa2428c5667..3adf7dcde364 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/ByKeyDocumentBlueprintController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/ByKeyDocumentBlueprintController.cs @@ -27,6 +27,8 @@ public ByKeyDocumentBlueprintController(IContentBlueprintEditingService contentB [MapToApiVersion("1.0")] [ProducesResponseType(typeof(DocumentBlueprintResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a document blueprint.")] + [EndpointDescription("Gets a document blueprint identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { IContent? blueprint = await _contentBlueprintEditingService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/CreateDocumentBlueprintController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/CreateDocumentBlueprintController.cs index fb160f21cee5..8735b72b2198 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/CreateDocumentBlueprintController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/CreateDocumentBlueprintController.cs @@ -36,6 +36,8 @@ public CreateDocumentBlueprintController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new documentblueprint.")] + [EndpointDescription("Creates a new documentblueprint with the configuration specified in the request model.")] public async Task Create(CancellationToken cancellationToken, CreateDocumentBlueprintRequestModel requestModel) { ContentBlueprintCreateModel model = _blueprintEditingPresentationFactory.MapCreateModel(requestModel); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/CreateDocumentBlueprintFromDocumentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/CreateDocumentBlueprintFromDocumentController.cs index 60ce59fe8a46..826104b5662f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/CreateDocumentBlueprintFromDocumentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/CreateDocumentBlueprintFromDocumentController.cs @@ -40,6 +40,8 @@ public CreateDocumentBlueprintFromDocumentController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a document blueprint from an existing document.")] + [EndpointDescription("Creates a new document blueprint based on an existing document identified by the provided Id.")] public async Task CreateFromDocument(CancellationToken cancellationToken, CreateDocumentBlueprintFromDocumentRequestModel fromDocumentRequestModel) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/DeleteDocumentBlueprintController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/DeleteDocumentBlueprintController.cs index 7e890c9d4cd2..9a565a1c8def 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/DeleteDocumentBlueprintController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/DeleteDocumentBlueprintController.cs @@ -29,6 +29,8 @@ public DeleteDocumentBlueprintController(IContentBlueprintEditingService content [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a document blueprint.")] + [EndpointDescription("Deletes a document blueprint identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { Attempt result = await _contentBlueprintEditingService.DeleteAsync(id, CurrentUserKey(_backOfficeSecurityAccessor)); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/ByKeyDocumentBlueprintFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/ByKeyDocumentBlueprintFolderController.cs index 45e5f46acf68..ffc6436b473d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/ByKeyDocumentBlueprintFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/ByKeyDocumentBlueprintFolderController.cs @@ -21,5 +21,7 @@ public ByKeyDocumentBlueprintFolderController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(FolderResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a document blueprint folder.")] + [EndpointDescription("Gets a document blueprint folder identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) => await GetFolderAsync(id); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/CreateDocumentBlueprintFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/CreateDocumentBlueprintFolderController.cs index 9e69f807ff83..12e5c8aae751 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/CreateDocumentBlueprintFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/CreateDocumentBlueprintFolderController.cs @@ -22,6 +22,8 @@ public CreateDocumentBlueprintFolderController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a documentblueprint folder.")] + [EndpointDescription("Creates a new documentblueprint folder with the provided name and parent location.")] public async Task Create(CancellationToken cancellationToken, CreateFolderRequestModel createFolderRequestModel) => await CreateFolderAsync( createFolderRequestModel, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/DeleteDocumentBlueprintFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/DeleteDocumentBlueprintFolderController.cs index a68f60cf9853..4adbfe0304b2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/DeleteDocumentBlueprintFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/DeleteDocumentBlueprintFolderController.cs @@ -21,5 +21,7 @@ public DeleteDocumentBlueprintFolderController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a document blueprint folder.")] + [EndpointDescription("Deletes a document blueprint folder identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) => await DeleteFolderAsync(id); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/UpdateDocumentBlueprintFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/UpdateDocumentBlueprintFolderController.cs index 94d1bf2ce126..84f8b4499eb1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/UpdateDocumentBlueprintFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Folder/UpdateDocumentBlueprintFolderController.cs @@ -22,6 +22,8 @@ public UpdateDocumentBlueprintFolderController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a document blueprint folder.")] + [EndpointDescription("Updates a document blueprint folder identified by the provided Id with the details from the request model.")] public async Task Update(CancellationToken cancellationToken, Guid id, UpdateFolderResponseModel updateFolderResponseModel) => await UpdateFolderAsync(id, updateFolderResponseModel); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Item/ItemDocumentBlueprintController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Item/ItemDocumentBlueprintController.cs index 551f6cc407b2..ad5dbafe2c10 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Item/ItemDocumentBlueprintController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Item/ItemDocumentBlueprintController.cs @@ -25,6 +25,8 @@ public ItemDocumentBlueprintController(IEntityService entityService, IDocumentPr [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document blueprint items.")] + [EndpointDescription("Gets a collection of document blueprint items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/MoveDocumentBlueprintController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/MoveDocumentBlueprintController.cs index 9adab9621fd3..d92451116e1a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/MoveDocumentBlueprintController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/MoveDocumentBlueprintController.cs @@ -28,6 +28,8 @@ public MoveDocumentBlueprintController(IContentBlueprintEditingService contentBl [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Moves a document blueprint.")] + [EndpointDescription("Moves a document blueprint identified by the provided Id to a different location.")] public async Task Move(CancellationToken cancellationToken, Guid id, MoveDocumentBlueprintRequestModel requestModel) { Attempt result = await _contentBlueprintEditingService.MoveAsync(id, requestModel.Target?.Id, CurrentUserKey(_backOfficeSecurityAccessor)); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/ScaffoldDocumentBlueprintController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/ScaffoldDocumentBlueprintController.cs index 219e41be2c95..ebef2786a933 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/ScaffoldDocumentBlueprintController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/ScaffoldDocumentBlueprintController.cs @@ -27,6 +27,8 @@ public ScaffoldDocumentBlueprintController(IContentBlueprintEditingService conte [MapToApiVersion("1.0")] [ProducesResponseType(typeof(DocumentBlueprintResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Scaffolds a document blueprint.")] + [EndpointDescription("Creates a scaffold for a new document blueprint with default values.")] public async Task Scaffold(CancellationToken cancellationToken, Guid id) { IContent? blueprint = await _contentBlueprintEditingService.GetScaffoldedAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/AncestorsDocumentBlueprintTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/AncestorsDocumentBlueprintTreeController.cs index 060efbdc7d4e..b228d3759504 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/AncestorsDocumentBlueprintTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/AncestorsDocumentBlueprintTreeController.cs @@ -27,6 +27,8 @@ public AncestorsDocumentBlueprintTreeController(IEntityService entityService, Fl [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor document blueprint items.")] + [EndpointDescription("Gets a collection of document blueprint items that are ancestors to the provided Id.")] public async Task>> Ancestors(CancellationToken cancellationToken, Guid descendantId) => await GetAncestors(descendantId); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/ChildrenDocumentBlueprintTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/ChildrenDocumentBlueprintTreeController.cs index eea5bbf488f8..81b6fccd6258 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/ChildrenDocumentBlueprintTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/ChildrenDocumentBlueprintTreeController.cs @@ -28,6 +28,8 @@ public ChildrenDocumentBlueprintTreeController(IEntityService entityService, Fla [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document blueprint tree child items.")] + [EndpointDescription("Gets a paginated collection of document blueprint tree items that are children of the provided parent Id.")] public async Task>> Children(CancellationToken cancellationToken, Guid parentId, int skip = 0, int take = 100, bool foldersOnly = false) { RenderFoldersOnly(foldersOnly); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/RootDocumentBlueprintTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/RootDocumentBlueprintTreeController.cs index ee533399f011..3a7fda1d4f48 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/RootDocumentBlueprintTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/RootDocumentBlueprintTreeController.cs @@ -28,6 +28,8 @@ public RootDocumentBlueprintTreeController(IEntityService entityService, FlagPro [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document blueprint items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of document blueprint items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/SiblingsDocumentBlueprintTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/SiblingsDocumentBlueprintTreeController.cs index 43feb758c898..0a7bb3e70d0f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/SiblingsDocumentBlueprintTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/SiblingsDocumentBlueprintTreeController.cs @@ -25,6 +25,8 @@ public SiblingsDocumentBlueprintTreeController(IEntityService entityService, Fla [HttpGet("siblings")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document blueprint tree sibling items.")] + [EndpointDescription("Gets a collection of document blueprint tree items that are siblings of the provided Id.")] public async Task>> Siblings( CancellationToken cancellationToken, Guid target, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/UpdateDocumentBlueprintController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/UpdateDocumentBlueprintController.cs index b1007a87df83..1e0cc69a800f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/UpdateDocumentBlueprintController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/UpdateDocumentBlueprintController.cs @@ -36,6 +36,8 @@ public UpdateDocumentBlueprintController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a document blueprint.")] + [EndpointDescription("Updates a document blueprint identified by the provided Id with the details from the request model.")] public async Task Update(CancellationToken cancellationToken, Guid id, UpdateDocumentBlueprintRequestModel requestModel) { ContentBlueprintUpdateModel model = _blueprintEditingPresentationFactory.MapUpdateModel(requestModel); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AllowedAtRootDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AllowedAtRootDocumentTypeController.cs index 0dd74ad58504..56f4e161dacd 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AllowedAtRootDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AllowedAtRootDocumentTypeController.cs @@ -26,6 +26,8 @@ public AllowedAtRootDocumentTypeController(IContentTypeService contentTypeServic [HttpGet("allowed-at-root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets document types allowed at root.")] + [EndpointDescription("Gets a collection of document types that are allowed to be created at the root level.")] public async Task AllowedAtRoot(CancellationToken cancellationToken, int skip = 0, int take = 100) { PagedModel result = await _contentTypeService.GetAllAllowedAsRootAsync(skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AllowedChildrenDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AllowedChildrenDocumentTypeController.cs index d44bd7ffd0e0..86eca874d3a9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AllowedChildrenDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AllowedChildrenDocumentTypeController.cs @@ -27,6 +27,8 @@ public AllowedChildrenDocumentTypeController(IContentTypeService contentTypeServ [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets allowed child document types.")] + [EndpointDescription("Gets a collection of document types that are allowed as children of the specified parent document type.")] public async Task AllowedChildrenByKey( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AvailableCompositionDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AvailableCompositionDocumentTypeController.cs index 3b616a610d80..29122518787b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AvailableCompositionDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/AvailableCompositionDocumentTypeController.cs @@ -26,6 +26,8 @@ public AvailableCompositionDocumentTypeController(IContentTypeEditingService con [HttpPost("available-compositions")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets available compositions.")] + [EndpointDescription("Gets a collection of document types that are available to use as compositions for the specified document type.")] public async Task AvailableCompositions( CancellationToken cancellationToken, DocumentTypeCompositionRequestModel compositionModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ByKeyDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ByKeyDocumentTypeController.cs index d51f915e7d76..eee2272e93b5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ByKeyDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ByKeyDocumentTypeController.cs @@ -25,6 +25,8 @@ public ByKeyDocumentTypeController(IContentTypeService contentTypeService, IUmbr [MapToApiVersion("1.0")] [ProducesResponseType(typeof(DocumentTypeResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a document type.")] + [EndpointDescription("Gets a document type identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { IContentType? contentType = await _contentTypeService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CompositionReferenceDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CompositionReferenceDocumentTypeController.cs index 88eeeca45d3c..f8030255ead8 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CompositionReferenceDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CompositionReferenceDocumentTypeController.cs @@ -29,6 +29,8 @@ public CompositionReferenceDocumentTypeController(IContentTypeService contentTyp [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets composition references.")] + [EndpointDescription("Gets a collection of document types that reference the specified document type as a composition.")] public async Task CompositionReferences(CancellationToken cancellationToken, Guid id) { var contentType = await _contentTypeService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ConfigurationDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ConfigurationDocumentTypeController.cs index 74c5c589468f..321c46c7707f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ConfigurationDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ConfigurationDocumentTypeController.cs @@ -20,6 +20,8 @@ public ConfigurationDocumentTypeController(IConfigurationPresentationFactory con [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(DocumentTypeConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the document type configuration.")] + [EndpointDescription("Gets the configuration settings for document types.")] public Task Configuration(CancellationToken cancellationToken) { DocumentTypeConfigurationResponseModel responseModel = _configurationPresentationFactory.CreateDocumentTypeConfigurationResponseModel(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CopyDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CopyDocumentTypeController.cs index 7a206882e044..f0552de2bcf1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CopyDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CopyDocumentTypeController.cs @@ -25,6 +25,8 @@ public CopyDocumentTypeController(IContentTypeService contentTypeService) [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Copies a document type.")] + [EndpointDescription("Creates a duplicate of an existing document type identified by the provided Id.")] public async Task Copy( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CreateDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CreateDocumentTypeController.cs index 5cc2a661514b..e7c6ce5755d2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CreateDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/CreateDocumentTypeController.cs @@ -37,6 +37,8 @@ public CreateDocumentTypeController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new document type.")] + [EndpointDescription("Creates a new document type with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreateDocumentTypeRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DeleteDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DeleteDocumentTypeController.cs index 664242401847..106b58df457d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DeleteDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DeleteDocumentTypeController.cs @@ -27,6 +27,8 @@ public DeleteDocumentTypeController(IContentTypeService contentTypeService, IBac [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a document type.")] + [EndpointDescription("Deletes a document type identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { ContentTypeOperationStatus status = await _contentTypeService.DeleteAsync(id, CurrentUserKey(_backOfficeSecurityAccessor)); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DocumentBlueprintForDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DocumentBlueprintForDocumentTypeController.cs index 158e8062dbfe..ef25a88ba6c8 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DocumentBlueprintForDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DocumentBlueprintForDocumentTypeController.cs @@ -31,6 +31,8 @@ public DocumentBlueprintForDocumentTypeController(IContentBlueprintEditingServic [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets document blueprints for a document type.")] + [EndpointDescription("Gets a collection of document blueprints available for the specified document type.")] public async Task DocumentBlueprintByDocumentTypeKey( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ExportDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ExportDocumentTypeController.cs index 4d2eba27eb84..82282ae20327 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ExportDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ExportDocumentTypeController.cs @@ -29,6 +29,8 @@ public ExportDocumentTypeController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(FileContentResult), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Exports a document type.")] + [EndpointDescription("Exports the document type identified by the provided Id to a downloadable format.")] public IActionResult Export( CancellationToken cancellationToken, Guid id) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/ByKeyDocumentTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/ByKeyDocumentTypeFolderController.cs index 7ac5b08bd9bf..7b3606a9cc1c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/ByKeyDocumentTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/ByKeyDocumentTypeFolderController.cs @@ -21,5 +21,7 @@ public ByKeyDocumentTypeFolderController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(FolderResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a document type folder.")] + [EndpointDescription("Gets a document type folder identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) => await GetFolderAsync(id); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/CreateDocumentTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/CreateDocumentTypeFolderController.cs index c14ae37aa55e..48695fc470d4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/CreateDocumentTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/CreateDocumentTypeFolderController.cs @@ -22,6 +22,8 @@ public CreateDocumentTypeFolderController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a document type folder.")] + [EndpointDescription("Creates a new document type folder with the provided name and parent location.")] public async Task Create( CancellationToken cancellationToken, CreateFolderRequestModel createFolderRequestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/DeleteDocumentTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/DeleteDocumentTypeFolderController.cs index 82cf09a4207c..6dd9165254e9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/DeleteDocumentTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/DeleteDocumentTypeFolderController.cs @@ -21,5 +21,7 @@ public DeleteDocumentTypeFolderController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a document type folder.")] + [EndpointDescription("Deletes a document type folder identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) => await DeleteFolderAsync(id); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/UpdateDocumentTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/UpdateDocumentTypeFolderController.cs index f259935f2b91..0ca41d53e8bf 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/UpdateDocumentTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Folder/UpdateDocumentTypeFolderController.cs @@ -22,6 +22,8 @@ public UpdateDocumentTypeFolderController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a document type folder.")] + [EndpointDescription("Updates a document type folder identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportExistingDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportExistingDocumentTypeController.cs index 46f28d366520..c3337bb92fe7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportExistingDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportExistingDocumentTypeController.cs @@ -32,6 +32,8 @@ public ImportExistingDocumentTypeController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Imports a document type.")] + [EndpointDescription("Imports a document type from the provided file upload.")] public async Task Import( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportNewDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportNewDocumentTypeController.cs index 9b0cb2af0d76..bde41c956d27 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportNewDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportNewDocumentTypeController.cs @@ -32,6 +32,8 @@ public ImportNewDocumentTypeController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Imports a document type.")] + [EndpointDescription("Imports a document type from the provided file upload.")] public async Task Import( CancellationToken cancellationToken, ImportDocumentTypeRequestModel model) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Item/ItemDocumentTypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Item/ItemDocumentTypeItemController.cs index a4ed4eaa29cc..f45bde60b9ff 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Item/ItemDocumentTypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Item/ItemDocumentTypeItemController.cs @@ -23,6 +23,8 @@ public ItemDocumentTypeItemController(IContentTypeService contentTypeService, IU [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document type items.")] + [EndpointDescription("Gets a collection of document type items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Item/SearchDocumentTypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Item/SearchDocumentTypeItemController.cs index 5e9ceb568a70..985a0a30c02a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Item/SearchDocumentTypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Item/SearchDocumentTypeItemController.cs @@ -25,6 +25,8 @@ public SearchDocumentTypeItemController(IUmbracoMapper mapper, IContentTypeSearc [HttpGet("search")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] + [EndpointSummary("Searches document type items.")] + [EndpointDescription("Searches document type items by the provided query with pagination support.")] public async Task SearchDocumentType(CancellationToken cancellationToken, string query, bool? isElement = null, int skip = 0, int take = 100) { PagedModel contentTypes = await _contentTypeSearchService.SearchAsync(query, isElement, cancellationToken, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/MoveDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/MoveDocumentTypeController.cs index ed59a0d16b53..956be8d74381 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/MoveDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/MoveDocumentTypeController.cs @@ -25,6 +25,8 @@ public MoveDocumentTypeController(IContentTypeService contentTypeService) [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Moves a document type.")] + [EndpointDescription("Moves a document type identified by the provided Id to a different location.")] public async Task Move( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/AncestorsDocumentTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/AncestorsDocumentTypeTreeController.cs index 5d3598fa5036..86500cc39517 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/AncestorsDocumentTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/AncestorsDocumentTypeTreeController.cs @@ -26,6 +26,8 @@ public AncestorsDocumentTypeTreeController(IEntityService entityService, FlagPro [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor document type items.")] + [EndpointDescription("Gets a collection of document type items that are ancestors to the provided Id.")] public async Task>> Ancestors(CancellationToken cancellationToken, Guid descendantId) => await GetAncestors(descendantId); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ChildrenDocumentTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ChildrenDocumentTypeTreeController.cs index 950f5c73d28c..6da572173c03 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ChildrenDocumentTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ChildrenDocumentTypeTreeController.cs @@ -27,6 +27,8 @@ public ChildrenDocumentTypeTreeController(IEntityService entityService, FlagProv [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document type tree child items.")] + [EndpointDescription("Gets a paginated collection of document type tree items that are children of the provided parent Id.")] public async Task>> Children( CancellationToken cancellationToken, Guid parentId, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/RootDocumentTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/RootDocumentTypeTreeController.cs index d8a0e7c3d1cb..05a2da8c29b7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/RootDocumentTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/RootDocumentTypeTreeController.cs @@ -27,6 +27,8 @@ public RootDocumentTypeTreeController(IEntityService entityService, FlagProvider [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document type items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of document type items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/SiblingsDocumentTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/SiblingsDocumentTypeTreeController.cs index 0a930e434e1e..343e360ee16b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/SiblingsDocumentTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/SiblingsDocumentTypeTreeController.cs @@ -24,6 +24,8 @@ public SiblingsDocumentTypeTreeController(IEntityService entityService, FlagProv [HttpGet("siblings")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of document type tree sibling items.")] + [EndpointDescription("Gets a collection of document type tree items that are siblings of the provided Id.")] public async Task>> Siblings( CancellationToken cancellationToken, Guid target, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/UpdateDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/UpdateDocumentTypeController.cs index da246d9390f1..ebb311272477 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/UpdateDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/UpdateDocumentTypeController.cs @@ -41,6 +41,8 @@ public UpdateDocumentTypeController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a document type.")] + [EndpointDescription("Updates a document type identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/AllDocumentVersionController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/AllDocumentVersionController.cs index a09554756e77..6dad57d9b233 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/AllDocumentVersionController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/AllDocumentVersionController.cs @@ -31,6 +31,8 @@ public AllDocumentVersionController( [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Gets a paginated collection of document versions.")] + [EndpointDescription("Gets a paginated collection of document versions.")] public async Task All( CancellationToken cancellationToken, [Required] Guid documentId, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/ByKeyDocumentVersionController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/ByKeyDocumentVersionController.cs index fa44d7a61ce1..7f041475a6ef 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/ByKeyDocumentVersionController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/ByKeyDocumentVersionController.cs @@ -29,6 +29,8 @@ public ByKeyDocumentVersionController( [ProducesResponseType(typeof(DocumentVersionResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Gets a document version.")] + [EndpointDescription("Gets a document version identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { Attempt attempt = diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/RollbackDocumentVersionController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/RollbackDocumentVersionController.cs index 64f2f09bb3b5..4357cf7c90b1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/RollbackDocumentVersionController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/RollbackDocumentVersionController.cs @@ -36,6 +36,8 @@ public RollbackDocumentVersionController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Rolls back a document to a previous version.")] + [EndpointDescription("Rolls back a document to the version identified by the provided Id.")] public async Task Rollback(CancellationToken cancellationToken, Guid id, string? culture) { Attempt getContentAttempt = diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/UpdatePreventCleanupDocumentVersionController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/UpdatePreventCleanupDocumentVersionController.cs index 68f4a15b821f..a2db79dc94ed 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/UpdatePreventCleanupDocumentVersionController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentVersion/UpdatePreventCleanupDocumentVersionController.cs @@ -27,6 +27,8 @@ public UpdatePreventCleanupDocumentVersionController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Updates a document version.")] + [EndpointDescription("Updates a document version identified by the provided Id with the details from the request model.")] public async Task Set(CancellationToken cancellationToken, Guid id, bool preventCleanup) { Attempt attempt = diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DynamicRoot/GetDynamicRootController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DynamicRoot/GetDynamicRootController.cs index 9772b55e336a..45895cb251ff 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DynamicRoot/GetDynamicRootController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DynamicRoot/GetDynamicRootController.cs @@ -28,6 +28,8 @@ public GetRootsController(IDynamicRootService dynamicRootService, IUmbracoMapper [HttpPost("query")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(DynamicRootResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets dynamic roots.")] + [EndpointDescription("Gets a collection of dynamic root items based on the provided query configuration.")] public async Task GetRoots(CancellationToken cancellationToken, DynamicRootRequestModel model) { _backOfficeVariationContextAccessor.VariationContext = new BackOfficeVariationContext(model.Context.Culture, model.Context.Segment); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DynamicRoot/GetQueryStepsController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DynamicRoot/GetQueryStepsController.cs index 5dc68f4522d0..da1d9df0328d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DynamicRoot/GetQueryStepsController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DynamicRoot/GetQueryStepsController.cs @@ -21,6 +21,8 @@ public GetQueryStepsController(DynamicRootQueryStepCollection dynamicRootQuerySt [HttpGet($"steps")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets dynamic root query steps.")] + [EndpointDescription("Gets a collection of available query steps for configuring dynamic root queries.")] public Task GetQuerySteps(CancellationToken cancellationToken) { IEnumerable querySteps = _dynamicRootQueryStepCollection.Select(x => x.SupportedDirectionAlias); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/ExecuteActionHealthCheckController.cs b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/ExecuteActionHealthCheckController.cs index 4a8583f4fddb..7c38d2984455 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/ExecuteActionHealthCheckController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/ExecuteActionHealthCheckController.cs @@ -38,6 +38,8 @@ public ExecuteActionHealthCheckController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(HealthCheckResultResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Executes a health check action.")] + [EndpointDescription("Executes a specific action to fix or address a health check issue.")] public async Task> ExecuteAction( CancellationToken cancellationToken, HealthCheckActionRequestModel action) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/AllHealthCheckGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/AllHealthCheckGroupController.cs index f41f352cc76d..cea743f3e1bc 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/AllHealthCheckGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/AllHealthCheckGroupController.cs @@ -31,6 +31,8 @@ public AllHealthCheckGroupController( [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of health check groups.")] + [EndpointDescription("Gets a collection of health check groups with their associated health checks.")] public Task>> All( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/ByNameHealthCheckGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/ByNameHealthCheckGroupController.cs index 6ffa173e9b5e..9705bce47618 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/ByNameHealthCheckGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/ByNameHealthCheckGroupController.cs @@ -31,6 +31,8 @@ public ByNameHealthCheckGroupController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(HealthCheckGroupPresentationModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a health check group by name.")] + [EndpointDescription("Gets a health check group and all its associated health checks identified by the provided group name.")] public Task ByName( CancellationToken cancellationToken, string name) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/CheckHealthCheckGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/CheckHealthCheckGroupController.cs index 40075c074ed3..e7db6134cdea 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/CheckHealthCheckGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/CheckHealthCheckGroupController.cs @@ -25,6 +25,8 @@ public CheckHealthCheckGroupController(IHealthCheckGroupPresentationFactory heal [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(HealthCheckGroupWithResultResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Executes all health checks in a group.")] + [EndpointDescription("Runs all health checks in the group identified by the provided name and returns the results.")] public async Task ByNameWithResult( CancellationToken cancellationToken, string name) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Help/GetHelpController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Help/GetHelpController.cs index 9c8b4a8c4374..9390e8aee96d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Help/GetHelpController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Help/GetHelpController.cs @@ -36,6 +36,8 @@ public GetHelpController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets help information.")] + [EndpointDescription("Gets help information and documentation resources for the Umbraco back office.")] public async Task Get( CancellationToken cancellationToken, string section, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Import/AnalyzeImportController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Import/AnalyzeImportController.cs index 5f9a98df981b..80718841f609 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Import/AnalyzeImportController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Import/AnalyzeImportController.cs @@ -28,6 +28,8 @@ public AnalyzeImportController( [ProducesResponseType(typeof(EntityImportAnalysisResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Imports a import.")] + [EndpointDescription("Imports a import from the provided file upload.")] public async Task Analyze(CancellationToken cancellationToken, Guid temporaryFileId) { Attempt analyzeResult = await _temporaryFileToXmlImportService.AnalyzeAsync(temporaryFileId); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/AllIndexerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Indexer/AllIndexerController.cs index 768389b56d0b..a1df07b14260 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/AllIndexerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Indexer/AllIndexerController.cs @@ -30,6 +30,8 @@ public AllIndexerController( [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of indexers.")] + [EndpointDescription("Gets a collection of configured search indexers in the Umbraco installation.")] public Task> All( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/DetailsIndexerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Indexer/DetailsIndexerController.cs index 0eee31be10d1..f9a000b4bf05 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/DetailsIndexerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Indexer/DetailsIndexerController.cs @@ -34,6 +34,8 @@ public DetailsIndexerController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(IndexResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets indexer details.")] + [EndpointDescription("Gets detailed information about the indexer identified by the provided name.")] public Task> Details(CancellationToken cancellationToken, string indexName) { if (_examineManager.TryGetIndex(indexName, out IIndex? index)) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/RebuildIndexerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Indexer/RebuildIndexerController.cs index f9093ffd3bfa..931eb97c06ff 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/RebuildIndexerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Indexer/RebuildIndexerController.cs @@ -36,6 +36,8 @@ public RebuildIndexerController( [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status409Conflict)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Rebuilds an indexer.")] + [EndpointDescription("Rebuilds the search index for the indexer identified by the provided name.")] public async Task Rebuild(CancellationToken cancellationToken, string indexName) { if (!_examineManager.TryGetIndex(indexName, out IIndex? index)) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Install/SettingsInstallController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Install/SettingsInstallController.cs index 518edb9afe8f..acbded7701a1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Install/SettingsInstallController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Install/SettingsInstallController.cs @@ -30,6 +30,8 @@ public SettingsInstallController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)] [ProducesResponseType(typeof(InstallSettingsResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets install settings.")] + [EndpointDescription("Gets the current installation settings and status.")] public async Task Settings(CancellationToken cancellationToken) { // Register that the install has started diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Install/SetupInstallController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Install/SetupInstallController.cs index 9120a83a1e2c..cd93982b62c3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Install/SetupInstallController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Install/SetupInstallController.cs @@ -28,6 +28,8 @@ public SetupInstallController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Performs installation setup.")] + [EndpointDescription("Performs the initial setup and installation of Umbraco.")] public async Task Setup(CancellationToken cancellationToken, InstallRequestModel installData) { InstallData data = _mapper.Map(installData)!; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Install/ValidateDatabaseInstallController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Install/ValidateDatabaseInstallController.cs index 53cb090fd552..d8d9b503cb0a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Install/ValidateDatabaseInstallController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Install/ValidateDatabaseInstallController.cs @@ -28,6 +28,8 @@ public ValidateDatabaseInstallController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Validates database connection.")] + [EndpointDescription("Validates the database connection settings provided during installation.")] public async Task ValidateDatabase( CancellationToken cancellationToken, DatabaseInstallRequestModel viewModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/AllLanguageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/AllLanguageController.cs index 935a9c3d03d8..d156c617bc34 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/AllLanguageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Language/AllLanguageController.cs @@ -24,6 +24,8 @@ public AllLanguageController(ILanguageService languageService, IUmbracoMapper um [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of languages.")] + [EndpointDescription("Gets a paginated collection of languages.")] public async Task>> All( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/ByIsoCodeLanguageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/ByIsoCodeLanguageController.cs index e1fb1f444915..267b5cce1da8 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/ByIsoCodeLanguageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Language/ByIsoCodeLanguageController.cs @@ -24,6 +24,8 @@ public ByIsoCodeLanguageController(ILanguageService languageService, IUmbracoMap [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(LanguageResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a language by ISO code.")] + [EndpointDescription("Gets a language identified by the provided ISO code.")] public async Task ByIsoCode(CancellationToken cancellationToken, string isoCode) { ILanguage? language = await _languageService.GetAsync(isoCode); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/CreateLanguageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/CreateLanguageController.cs index 80c9a4c9c013..f179a049cc41 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/CreateLanguageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Language/CreateLanguageController.cs @@ -36,6 +36,8 @@ public CreateLanguageController( [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status201Created)] + [EndpointSummary("Creates a new language.")] + [EndpointDescription("Creates a new language with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreateLanguageRequestModel createLanguageRequestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/DeleteLanguageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/DeleteLanguageController.cs index a074b65445c6..1730796548a5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/DeleteLanguageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Language/DeleteLanguageController.cs @@ -29,6 +29,8 @@ public DeleteLanguageController(ILanguageService languageService, IBackOfficeSec [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Deletes a language.")] + [EndpointDescription("Deletes a language identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, string isoCode) { Attempt result = await _languageService.DeleteAsync(isoCode, CurrentUserKey(_backOfficeSecurityAccessor)); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/Item/DefaultLanguageEntityController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/Item/DefaultLanguageEntityController.cs index 11a0ffff2ec2..cb92f1ec440f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/Item/DefaultLanguageEntityController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Language/Item/DefaultLanguageEntityController.cs @@ -24,6 +24,8 @@ public DefaultLanguageEntityController(ILanguageService languageService, IUmbrac [HttpGet("default")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(LanguageItemResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the default language.")] + [EndpointDescription("Gets the default language configured for the Umbraco installation.")] public async Task Default(CancellationToken cancellationToken) { ILanguage? language = await _languageService.GetDefaultLanguageAsync(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/Item/ItemLanguageItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/Item/ItemLanguageItemController.cs index aa7e412251f7..1ee90650e677 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/Item/ItemLanguageItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Language/Item/ItemLanguageItemController.cs @@ -23,6 +23,8 @@ public ItemLanguageItemController(ILanguageService languageService, IUmbracoMapp [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of language items.")] + [EndpointDescription("Gets a collection of language items identified by the provided Ids.")] public async Task Item( CancellationToken cancellationToken, [FromQuery(Name = "isoCode")] HashSet isoCodes) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/UpdateLanguageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/UpdateLanguageController.cs index a74f9e299e9d..b434f96a6af2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/UpdateLanguageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Language/UpdateLanguageController.cs @@ -36,6 +36,8 @@ public UpdateLanguageController( [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Updates a language.")] + [EndpointDescription("Updates a language identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, string isoCode, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllLogViewerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllLogViewerController.cs index d341361da264..6fffd3db3094 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllLogViewerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllLogViewerController.cs @@ -41,6 +41,8 @@ public AllLogViewerController(ILogViewerService logViewerService, IUmbracoMapper [HttpGet("log")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of log entries.")] + [EndpointDescription("Gets a paginated collection of log entries with optional filtering and date range.")] public async Task AllLogs( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllMessageTemplateLogViewerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllMessageTemplateLogViewerController.cs index 92f5c9d970da..4ad2e7abfcbd 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllMessageTemplateLogViewerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllMessageTemplateLogViewerController.cs @@ -36,6 +36,8 @@ public AllMessageTemplateLogViewerController(ILogViewerService logViewerService, [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of log message templates.")] + [EndpointDescription("Gets a paginated collection of unique message templates found in the logs.")] public async Task AllMessageTemplates( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllSinkLevelLogViewerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllSinkLevelLogViewerController.cs index e3bd05292266..0f5695f3f40c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllSinkLevelLogViewerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/AllSinkLevelLogViewerController.cs @@ -30,6 +30,8 @@ public AllSinkLevelLogViewerController(ILogViewerService logViewerService, IUmbr [HttpGet("level")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of log sink levels.")] + [EndpointDescription("Gets a collection of configured log sinks with their minimum log levels.")] public Task>> AllLogLevels( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/LogLevelCountLogViewerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/LogLevelCountLogViewerController.cs index 4e7095b9ef23..d22becf6b9f0 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/LogLevelCountLogViewerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/LogLevelCountLogViewerController.cs @@ -32,6 +32,8 @@ public LogLevelCountLogViewerController(ILogViewerService logViewerService, IUmb [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(LogLevelCountsReponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets log level counts.")] + [EndpointDescription("Gets the count of log entries for each log level within the specified date range.")] public async Task LogLevelCounts( CancellationToken cancellationToken, DateTimeOffset? startDate = null, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/AllSavedSearchLogViewerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/AllSavedSearchLogViewerController.cs index ec4256364329..2699df339ff4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/AllSavedSearchLogViewerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/AllSavedSearchLogViewerController.cs @@ -30,6 +30,8 @@ public AllSavedSearchLogViewerController(ILogViewerService logViewerService, IUm [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of saved log searches.")] + [EndpointDescription("Gets a collection of saved log searches defined in the Umbraco installation.")] public async Task>> AllSavedSearches( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/ByNameSavedSearchLogViewerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/ByNameSavedSearchLogViewerController.cs index 92a4a17add10..e3247cb7ee4b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/ByNameSavedSearchLogViewerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/ByNameSavedSearchLogViewerController.cs @@ -29,6 +29,8 @@ public ByNameSavedSearchLogViewerController(ILogViewerService logViewerService, [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(SavedLogSearchResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a saved log search by name.")] + [EndpointDescription("Gets a saved log search identified by the provided name.")] public async Task ByName( CancellationToken cancellationToken, string name) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/CreateSavedSearchLogViewerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/CreateSavedSearchLogViewerController.cs index 39d165f63558..e841bd47dbd0 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/CreateSavedSearchLogViewerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/CreateSavedSearchLogViewerController.cs @@ -25,6 +25,8 @@ public class CreateSavedSearchLogViewerController : SavedSearchLogViewerControll [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status201Created)] + [EndpointSummary("Creates a saved log search.")] + [EndpointDescription("Creates a new saved log search with the provided name and query configuration.")] public async Task Create(CancellationToken cancellationToken, SavedLogSearchRequestModel savedSearch) { Attempt result = diff --git a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/DeleteSavedSearchLogViewerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/DeleteSavedSearchLogViewerController.cs index 961e5c4aae52..d291f9df6b9f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/DeleteSavedSearchLogViewerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/SavedSearch/DeleteSavedSearchLogViewerController.cs @@ -24,6 +24,8 @@ public class DeleteSavedSearchLogViewerController : SavedSearchLogViewerControll [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Deletes a log.")] + [EndpointDescription("Deletes a log identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, string name) { Attempt result = await _logViewerService.DeleteSavedLogQueryAsync(name); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/ValidateLogFileSizeLogViewerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/ValidateLogFileSizeLogViewerController.cs index 6b42892f2dfe..d598762adb60 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/ValidateLogFileSizeLogViewerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/LogViewer/ValidateLogFileSizeLogViewerController.cs @@ -24,6 +24,8 @@ public class ValidateLogFileSizeLogViewerController : LogViewerControllerBase [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Validates if logs can be viewed.")] + [EndpointDescription("Checks if the log files are within the size limit and can be viewed.")] public async Task CanViewLogs( CancellationToken cancellationToken, DateTimeOffset? startDate = null, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Manifest/AllManifestController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Manifest/AllManifestController.cs index f351cbe682ee..6408a7a5cf22 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Manifest/AllManifestController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Manifest/AllManifestController.cs @@ -26,6 +26,8 @@ public AllManifestController(IPackageManifestService packageManifestService, IUm [HttpGet("manifest")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets all manifests.")] + [EndpointDescription("Gets a collection of all package manifests including both public and private manifests.")] public async Task AllManifests(CancellationToken cancellationToken) { IEnumerable packageManifests = await _packageManifestService.GetAllPackageManifestsAsync(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Manifest/PrivateManifestManifestController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Manifest/PrivateManifestManifestController.cs index 0045cb193127..5d6b1139269c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Manifest/PrivateManifestManifestController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Manifest/PrivateManifestManifestController.cs @@ -26,6 +26,8 @@ public PrivateManifestManifestController(IPackageManifestService packageManifest [HttpGet("manifest/private")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets private manifests.")] + [EndpointDescription("Gets a collection of private package manifests specific to the current user.")] public async Task PrivateManifests() { IEnumerable packageManifests = await _packageManifestService.GetPrivatePackageManifestsAsync(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Manifest/PublicManifestManifestController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Manifest/PublicManifestManifestController.cs index 72196bb96a95..81e07320e1bc 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Manifest/PublicManifestManifestController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Manifest/PublicManifestManifestController.cs @@ -25,6 +25,8 @@ public PublicManifestManifestController(IPackageManifestService packageManifestS [HttpGet("manifest/public")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets public manifests.")] + [EndpointDescription("Gets a collection of public package manifests available to all users.")] public async Task PublicManifests(CancellationToken cancellationToken) { IEnumerable packageManifests = await _packageManifestService.GetPublicPackageManifestsAsync(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/ByKeyMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/ByKeyMediaController.cs index 35d2468e39fe..fe1043bb2c19 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/ByKeyMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/ByKeyMediaController.cs @@ -34,6 +34,8 @@ public ByKeyMediaController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(MediaResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a media.")] + [EndpointDescription("Gets a media identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Collection/ByKeyMediaCollectionController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Collection/ByKeyMediaCollectionController.cs index acb8d075ff7c..ef8d58923f07 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Collection/ByKeyMediaCollectionController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Collection/ByKeyMediaCollectionController.cs @@ -57,6 +57,8 @@ public ByKeyMediaCollectionController( [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a media.")] + [EndpointDescription("Gets a media identified by the provided Id.")] public async Task ByKey( CancellationToken cancellationToken, Guid? id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/ConfigurationMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/ConfigurationMediaController.cs index 9d61eac439b3..123788af444f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/ConfigurationMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/ConfigurationMediaController.cs @@ -19,6 +19,8 @@ public ConfigurationMediaController(IConfigurationPresentationFactory configurat [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(MediaConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the media configuration.")] + [EndpointDescription("Gets the configuration settings for medias.")] public Task Configuration(CancellationToken cancellationToken) { MediaConfigurationResponseModel responseModel = _configurationPresentationFactory.CreateMediaConfigurationResponseModel(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/CreateMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/CreateMediaController.cs index 60a68a7ba3fe..26e35711a672 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/CreateMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/CreateMediaController.cs @@ -36,6 +36,8 @@ public CreateMediaController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new media.")] + [EndpointDescription("Creates a new media with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreateMediaRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/DeleteMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/DeleteMediaController.cs index 8f9e9f570cc4..02dadd42a513 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/DeleteMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/DeleteMediaController.cs @@ -36,6 +36,8 @@ public DeleteMediaController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a media.")] + [EndpointDescription("Deletes a media identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/GetAuditLogMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/GetAuditLogMediaController.cs index bd99aa27ad88..007131160d63 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/GetAuditLogMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/GetAuditLogMediaController.cs @@ -34,6 +34,8 @@ public GetAuditLogMediaController( [MapToApiVersion("1.0")] [HttpGet("{id:guid}/audit-log")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the audit log for a media.")] + [EndpointDescription("Gets a paginated collection of audit log entries for the media identified by the provided Id.")] public async Task GetAuditLog(CancellationToken cancellationToken, Guid id, Direction orderDirection = Direction.Descending, DateTimeOffset? sinceDate = null, int skip = 0, int take = 100) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/ItemMediaItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/ItemMediaItemController.cs index 056377a015bc..3354c994c0ae 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/ItemMediaItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/ItemMediaItemController.cs @@ -41,6 +41,8 @@ public ItemMediaItemController(IEntityService entityService, IMediaPresentationF [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of media items.")] + [EndpointDescription("Gets a collection of media items identified by the provided Ids.")] public async Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/SearchMediaItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/SearchMediaItemController.cs index 2e346b52edc5..f84da7678fef 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/SearchMediaItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/SearchMediaItemController.cs @@ -66,6 +66,8 @@ public async Task SearchFromParentWithAllowedTypes( [HttpGet("search")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] + [EndpointSummary("Searches media items.")] + [EndpointDescription("Searches media items by the provided query with pagination support.")] public async Task SearchFromParentWithAllowedTypes( CancellationToken cancellationToken, string query, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/MediaUrlController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/MediaUrlController.cs index 1db1a3c1be9d..46f76d78b1a8 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/MediaUrlController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/MediaUrlController.cs @@ -25,6 +25,8 @@ public MediaUrlController( [MapToApiVersion("1.0")] [HttpGet("urls")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets URLs for a document.")] + [EndpointDescription("Gets the URLs for the document identified by the provided Id.")] public Task GetUrls([FromQuery(Name = "id")] HashSet ids) { IEnumerable items = _mediaService.GetByIds(ids); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/MoveMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/MoveMediaController.cs index 3de4f760fe40..06a8ad582e36 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/MoveMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/MoveMediaController.cs @@ -36,6 +36,8 @@ public MoveMediaController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Moves a media.")] + [EndpointDescription("Moves a media identified by the provided Id to a different location.")] public async Task Move( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/MoveToRecycleBinMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/MoveToRecycleBinMediaController.cs index d8f41c1acc89..c82a55ac6d4d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/MoveToRecycleBinMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/MoveToRecycleBinMediaController.cs @@ -36,6 +36,8 @@ public MoveToRecycleBinMediaController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Moves a media to the recycle bin.")] + [EndpointDescription("Moves a media identified by the provided Id to the recycle bin.")] public async Task MoveToRecycleBin(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ChildrenMediaRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ChildrenMediaRecycleBinController.cs index f8450e4504ef..16859be8a307 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ChildrenMediaRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ChildrenMediaRecycleBinController.cs @@ -19,6 +19,8 @@ public ChildrenMediaRecycleBinController(IEntityService entityService, IMediaPre [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of medias in the recycle bin.")] + [EndpointDescription("Gets a paginated collection of medias that are children of the provided parent in the recycle bin.")] public async Task>> Children( CancellationToken cancellationToken, Guid parentId, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/DeleteMediaRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/DeleteMediaRecycleBinController.cs index 454b5c22b3b4..c617cd60372d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/DeleteMediaRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/DeleteMediaRecycleBinController.cs @@ -40,6 +40,8 @@ public DeleteMediaRecycleBinController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a media.")] + [EndpointDescription("Deletes a media identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/EmptyMediaRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/EmptyMediaRecycleBinController.cs index 944fc475f43b..2270e1c194f2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/EmptyMediaRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/EmptyMediaRecycleBinController.cs @@ -37,6 +37,8 @@ public EmptyMediaRecycleBinController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Empties the media recycle bin.")] + [EndpointDescription("Permanently deletes all medias in the recycle bin. This operation cannot be undone.")] public async Task EmptyRecycleBin(CancellationToken cancellationToken) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/OriginalParentMediaRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/OriginalParentMediaRecycleBinController.cs index c2f22d04c3d5..a774a8053f96 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/OriginalParentMediaRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/OriginalParentMediaRecycleBinController.cs @@ -40,6 +40,8 @@ public OriginalParentMediaRecycleBinController( [ProducesResponseType(typeof(ReferenceByIdModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Gets the original parent of a media in the recycle bin.")] + [EndpointDescription("Gets the original parent location of a media before it was moved to the recycle bin.")] public async Task OriginalParent( CancellationToken cancellationToken, Guid id) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ReferencedByMediaRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ReferencedByMediaRecycleBinController.cs index a3c72184d7eb..1dc00277262e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ReferencedByMediaRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ReferencedByMediaRecycleBinController.cs @@ -32,6 +32,8 @@ public ReferencedByMediaRecycleBinController( [HttpGet("referenced-by")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets items referencing media in the recycle bin.")] + [EndpointDescription("Gets a paginated collection of items that reference the media in the recycle bin.")] public async Task>> ReferencedBy( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RestoreMediaRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RestoreMediaRecycleBinController.cs index d295e8daa8b4..7f545d14718f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RestoreMediaRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RestoreMediaRecycleBinController.cs @@ -41,6 +41,8 @@ public RestoreMediaRecycleBinController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Restores a media from the recycle bin.")] + [EndpointDescription("Restores a media from the recycle bin to its original location or a specified parent.")] public async Task Restore( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RootMediaRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RootMediaRecycleBinController.cs index b265fa9db422..546937e62092 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RootMediaRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RootMediaRecycleBinController.cs @@ -19,6 +19,8 @@ public RootMediaRecycleBinController(IEntityService entityService, IMediaPresent [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets media at the root of the recycle bin.")] + [EndpointDescription("Gets a paginated collection of media items at the root level of the recycle bin.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/SiblingsMediaRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/SiblingsMediaRecycleBinController.cs index 5628aa551e8a..32b919f312f6 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/SiblingsMediaRecycleBinController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/SiblingsMediaRecycleBinController.cs @@ -19,6 +19,8 @@ public SiblingsMediaRecycleBinController(IEntityService entityService, IMediaPre [HttpGet("siblings")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets sibling media in the recycle bin.")] + [EndpointDescription("Gets a collection of sibling media items in the recycle bin at the same level as the provided Id.")] public async Task>> Siblings(CancellationToken cancellationToken, Guid target, int before, int after, Guid? dataTypeId = null) => await GetSiblings(target, before, after); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/References/AreReferencedMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/References/AreReferencedMediaController.cs index d10bdb962740..4c76a4858dea 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/References/AreReferencedMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/References/AreReferencedMediaController.cs @@ -33,6 +33,8 @@ public AreReferencedMediaController(ITrackedReferencesService trackedReferencesS [HttpGet("are-referenced")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of items that reference medias.")] + [EndpointDescription("Gets a paginated collection of items that reference the medias identified by the provided Ids.")] public async Task>> GetPagedReferencedItems( CancellationToken cancellationToken, [FromQuery(Name="id")] HashSet ids, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/References/ReferencedByMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/References/ReferencedByMediaController.cs index e9e62504edba..f95f6823200b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/References/ReferencedByMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/References/ReferencedByMediaController.cs @@ -31,6 +31,8 @@ public ReferencedByMediaController(ITrackedReferencesService trackedReferencesSe [HttpGet("{id:guid}/referenced-by")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of items that reference medias.")] + [EndpointDescription("Gets a paginated collection of items that reference the medias identified by the provided Ids.")] public async Task>> ReferencedBy( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/References/ReferencedDescendantsMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/References/ReferencedDescendantsMediaController.cs index c6c16cb222d5..60430a74d215 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/References/ReferencedDescendantsMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/References/ReferencedDescendantsMediaController.cs @@ -32,6 +32,8 @@ public ReferencedDescendantsMediaController(ITrackedReferencesService trackedRef [HttpGet("{id:guid}/referenced-descendants")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets media descendants that are referenced.")] + [EndpointDescription("Gets a paginated collection of descendant media items that are referenced by other content.")] public async Task>> ReferencedDescendants( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/SortMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/SortMediaController.cs index b4cc34f5078b..b87cf87d1ad3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/SortMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/SortMediaController.cs @@ -36,6 +36,8 @@ public SortMediaController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Sorts media items.")] + [EndpointDescription("Sorts media items in the specified parent container according to the provided sort order.")] public async Task Sort(CancellationToken cancellationToken, SortingRequestModel sortingRequestModel) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/AncestorsMediaTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/AncestorsMediaTreeController.cs index 80c38d7bd725..3e93599f2aec 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/AncestorsMediaTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/AncestorsMediaTreeController.cs @@ -43,6 +43,8 @@ public AncestorsMediaTreeController( [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor media items.")] + [EndpointDescription("Gets a collection of media items that are ancestors to the provided Id.")] public async Task>> Ancestors( CancellationToken cancellationToken, Guid descendantId) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs index d6e243d2c3cf..3752bf3f725f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs @@ -44,6 +44,8 @@ public ChildrenMediaTreeController( [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of media tree child items.")] + [EndpointDescription("Gets a paginated collection of media tree items that are children of the provided parent Id.")] public async Task>> Children( CancellationToken cancellationToken, Guid parentId, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs index 1e01cab22b29..549dd4ec43d8 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs @@ -44,6 +44,8 @@ public RootMediaTreeController( [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of media items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of media items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/SiblingsMediaTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/SiblingsMediaTreeController.cs index 22f62d04fa87..f4782efc9da1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/SiblingsMediaTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/SiblingsMediaTreeController.cs @@ -41,6 +41,8 @@ public SiblingsMediaTreeController( [HttpGet("siblings")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of media tree sibling items.")] + [EndpointDescription("Gets a collection of media tree items that are siblings of the provided Id.")] public async Task>> Siblings(CancellationToken cancellationToken, Guid target, int before, int after, Guid? dataTypeId = null) { IgnoreUserStartNodesForDataType(dataTypeId); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/UpdateMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/UpdateMediaController.cs index d315072a591e..c69e35c611b2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/UpdateMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/UpdateMediaController.cs @@ -36,6 +36,8 @@ public UpdateMediaController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a media.")] + [EndpointDescription("Updates a media identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/ValidateCreateMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/ValidateCreateMediaController.cs index adebeb5a076c..4064696a8151 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/ValidateCreateMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/ValidateCreateMediaController.cs @@ -32,6 +32,8 @@ public ValidateCreateMediaController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Validates creating a media.")] + [EndpointDescription("Validates the request model for creating a new media without actually creating it.")] public async Task Validate(CancellationToken cancellationToken, CreateMediaRequestModel requestModel) => await HandleRequest(requestModel.Parent?.Id, async () => { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/ValidateUpdateMediaController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/ValidateUpdateMediaController.cs index 14902fbe9fc1..7ec827ee8b0c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/ValidateUpdateMediaController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/ValidateUpdateMediaController.cs @@ -32,6 +32,8 @@ public ValidateUpdateMediaController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Validates updating a media.")] + [EndpointDescription("Validates the request model for updating a media without actually updating it.")] public async Task Validate(CancellationToken cancellationToken, Guid id, UpdateMediaRequestModel requestModel) => await HandleRequest(id, async () => { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AllowedAtRootMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AllowedAtRootMediaTypeController.cs index 3644b3ad045f..09616f293881 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AllowedAtRootMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AllowedAtRootMediaTypeController.cs @@ -24,6 +24,8 @@ public AllowedAtRootMediaTypeController(IMediaTypeService mediaTypeService, IUmb [HttpGet("allowed-at-root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets media types allowed at root.")] + [EndpointDescription("Gets a collection of media types that are allowed to be created at the root level.")] public async Task AllowedAtRoot(CancellationToken cancellationToken, int skip = 0, int take = 100) { PagedModel result = await _mediaTypeService.GetAllAllowedAsRootAsync(skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AllowedChildrenMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AllowedChildrenMediaTypeController.cs index 1981332c684a..0c5589f11727 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AllowedChildrenMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AllowedChildrenMediaTypeController.cs @@ -27,6 +27,8 @@ public AllowedChildrenMediaTypeController(IMediaTypeService mediaTypeService, IU [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets allowed child media types.")] + [EndpointDescription("Gets a collection of media types that are allowed as children of the specified parent media type.")] public async Task AllowedChildrenByKey( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AvailableCompositionMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AvailableCompositionMediaTypeController.cs index 5c3a4d8e1c8b..dedfc55f2a34 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AvailableCompositionMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/AvailableCompositionMediaTypeController.cs @@ -23,6 +23,8 @@ public AvailableCompositionMediaTypeController(IMediaTypeEditingService mediaTyp [HttpPost("available-compositions")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets available compositions.")] + [EndpointDescription("Gets a collection of media types that are available to use as compositions for the specified media type.")] public async Task AvailableCompositions( CancellationToken cancellationToken, MediaTypeCompositionRequestModel compositionModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ByKeyMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ByKeyMediaTypeController.cs index 75a32569bd52..326f248fef64 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ByKeyMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ByKeyMediaTypeController.cs @@ -25,6 +25,8 @@ public ByKeyMediaTypeController(IMediaTypeService mediaTypeService, IUmbracoMapp [MapToApiVersion("1.0")] [ProducesResponseType(typeof(MediaTypeResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a media type.")] + [EndpointDescription("Gets a media type identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { IMediaType? mediaType = await _mediaTypeService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CompositionReferenceMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CompositionReferenceMediaTypeController.cs index 2a097f02ff59..3f8c0faf01cf 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CompositionReferenceMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CompositionReferenceMediaTypeController.cs @@ -26,6 +26,8 @@ public CompositionReferenceMediaTypeController(IMediaTypeService mediaTypeServic [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets composition references.")] + [EndpointDescription("Gets a collection of media types that reference the specified media type as a composition.")] public async Task CompositionReferences(CancellationToken cancellationToken, Guid id) { var mediaType = await _mediaTypeService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ConfigurationMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ConfigurationMediaTypeController.cs index 25447c60a1ad..5d03dd357d8f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ConfigurationMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ConfigurationMediaTypeController.cs @@ -22,6 +22,8 @@ public ConfigurationMediaTypeController(IConfigurationPresentationFactory config [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(MediaTypeConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the media type configuration.")] + [EndpointDescription("Gets the configuration settings for media types.")] public Task Configuration(CancellationToken cancellationToken) { MediaTypeConfigurationResponseModel responseModel = _configurationPresentationFactory.CreateMediaTypeConfigurationResponseModel(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CopyMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CopyMediaTypeController.cs index 1794b0d434f2..a351b2f7f96e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CopyMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CopyMediaTypeController.cs @@ -25,6 +25,8 @@ public CopyMediaTypeController(IMediaTypeService mediaTypeService) [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Copies a media type.")] + [EndpointDescription("Creates a duplicate of an existing media type identified by the provided Id.")] public async Task Copy( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CreateMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CreateMediaTypeController.cs index 7235e054dfc8..da7dc30aa4a7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CreateMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/CreateMediaTypeController.cs @@ -37,6 +37,8 @@ public CreateMediaTypeController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new media type.")] + [EndpointDescription("Creates a new media type with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreateMediaTypeRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/DeleteMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/DeleteMediaTypeController.cs index 19038e961672..e7eca8326f61 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/DeleteMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/DeleteMediaTypeController.cs @@ -26,6 +26,8 @@ public DeleteMediaTypeController(IMediaTypeService mediaTypeService, IBackOffice [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a media type.")] + [EndpointDescription("Deletes a media type identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { ContentTypeOperationStatus status = await _mediaTypeService.DeleteAsync(id, CurrentUserKey(_backOfficeSecurityAccessor)); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ExportMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ExportMediaTypeController.cs index 40423c3b1d73..2ac35f7bac88 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ExportMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ExportMediaTypeController.cs @@ -29,6 +29,8 @@ public ExportMediaTypeController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(FileContentResult), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Exports a media type.")] + [EndpointDescription("Exports the media type identified by the provided Id to a downloadable format.")] public IActionResult Export( CancellationToken cancellationToken, Guid id) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/ByKeyMediaTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/ByKeyMediaTypeFolderController.cs index 60a1738c5b95..69179ef02359 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/ByKeyMediaTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/ByKeyMediaTypeFolderController.cs @@ -21,5 +21,7 @@ public ByKeyMediaTypeFolderController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(FolderResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a media type folder.")] + [EndpointDescription("Gets a media type folder identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) => await GetFolderAsync(id); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/CreateMediaTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/CreateMediaTypeFolderController.cs index 383ab9c5d975..6f7cae8bc4cb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/CreateMediaTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/CreateMediaTypeFolderController.cs @@ -22,6 +22,8 @@ public CreateMediaTypeFolderController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a media type folder.")] + [EndpointDescription("Creates a new media type folder with the provided name and parent location.")] public async Task Create( CancellationToken cancellationToken, CreateFolderRequestModel createFolderRequestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/DeleteMediaTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/DeleteMediaTypeFolderController.cs index 5884a6382006..c790e7ea2ef5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/DeleteMediaTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/DeleteMediaTypeFolderController.cs @@ -21,6 +21,8 @@ public DeleteMediaTypeFolderController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a media type folder.")] + [EndpointDescription("Deletes a media type folder identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) => await DeleteFolderAsync(id); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/UpdateMediaTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/UpdateMediaTypeFolderController.cs index 0523a22d7075..4c1e3ecf95fc 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/UpdateMediaTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Folder/UpdateMediaTypeFolderController.cs @@ -22,6 +22,8 @@ public UpdateMediaTypeFolderController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a media type folder.")] + [EndpointDescription("Updates a media type folder identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportExistingMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportExistingMediaTypeController.cs index 9aedac01e48a..39bd634975bd 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportExistingMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportExistingMediaTypeController.cs @@ -32,6 +32,8 @@ public ImportExistingMediaTypeController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Imports a media type.")] + [EndpointDescription("Imports a media type from the provided file upload.")] public async Task Import( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportNewMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportNewMediaTypeController.cs index e71e2b2abb72..d466dc644ffa 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportNewMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportNewMediaTypeController.cs @@ -32,6 +32,8 @@ public ImportNewMediaTypeController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Imports a media type.")] + [EndpointDescription("Imports a media type from the provided file upload.")] public async Task Import( CancellationToken cancellationToken, ImportMediaTypeRequestModel model) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/AllowedMediaTypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/AllowedMediaTypeItemController.cs index 937c08997e13..f2d90ab46beb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/AllowedMediaTypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/AllowedMediaTypeItemController.cs @@ -23,6 +23,8 @@ public AllowedMediaTypeItemController(IMediaTypeEditingService mediaTypeEditingS [HttpGet("allowed")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of media type items.")] + [EndpointDescription("Gets a collection of media type items identified by the provided Ids.")] public async Task Item(CancellationToken cancellationToken, string fileExtension, int skip = 0, int take = 100) { PagedModel mediaTypes = await _mediaTypeEditingService.GetMediaTypesForFileExtensionAsync(fileExtension, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/FolderMediaTypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/FolderMediaTypeItemController.cs index 970ed0af2809..b40d31c1a60d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/FolderMediaTypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/FolderMediaTypeItemController.cs @@ -23,6 +23,8 @@ public FolderMediaTypeItemController(IMediaTypeEditingService mediaTypeEditingSe [HttpGet("folders")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of media type folder items.")] + [EndpointDescription("Gets a collection of media type folder items identified by the provided Ids.")] public async Task Folders(CancellationToken cancellationToken, int skip = 0, int take = 100) { PagedModel mediaTypes = await _mediaTypeEditingService.GetFolderMediaTypes(skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/ItemMediaTypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/ItemMediaTypeItemController.cs index 92133d280868..608d41becf06 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/ItemMediaTypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/ItemMediaTypeItemController.cs @@ -23,6 +23,8 @@ public ItemMediaTypeItemController(IMediaTypeService mediaTypeService, IUmbracoM [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of media type items.")] + [EndpointDescription("Gets a collection of media type items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/SearchMediaTypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/SearchMediaTypeItemController.cs index a6fbade1c77a..09255dc44022 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/SearchMediaTypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Item/SearchMediaTypeItemController.cs @@ -27,6 +27,8 @@ public SearchMediaTypeItemController(IEntitySearchService entitySearchService, I [HttpGet("search")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] + [EndpointSummary("Searches media type items.")] + [EndpointDescription("Searches media type items by the provided query with pagination support.")] public Task Search(CancellationToken cancellationToken, string query, int skip = 0, int take = 100) { PagedModel searchResult = _entitySearchService.Search(UmbracoObjectTypes.MediaType, query, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/MoveMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/MoveMediaTypeController.cs index 9c747cbd2f8a..d5fc94692a33 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/MoveMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/MoveMediaTypeController.cs @@ -25,6 +25,8 @@ public MoveMediaTypeController(IMediaTypeService mediaTypeService) [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Moves a media type.")] + [EndpointDescription("Moves a media type identified by the provided Id to a different location.")] public async Task Move( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/AncestorsMediaTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/AncestorsMediaTypeTreeController.cs index 0df58fc62519..eaa81d42a93c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/AncestorsMediaTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/AncestorsMediaTypeTreeController.cs @@ -26,6 +26,8 @@ public AncestorsMediaTypeTreeController(IEntityService entityService, FlagProvid [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor media type items.")] + [EndpointDescription("Gets a collection of media type items that are ancestors to the provided Id.")] public async Task>> Ancestors( CancellationToken cancellationToken, Guid descendantId) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs index 7eef92411c27..17e9676515ea 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs @@ -27,6 +27,8 @@ public ChildrenMediaTypeTreeController(IEntityService entityService, FlagProvide [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of media type tree child items.")] + [EndpointDescription("Gets a paginated collection of media type tree items that are children of the provided parent Id.")] public async Task>> Children( CancellationToken cancellationToken, Guid parentId, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs index f8b78a6f40c1..fad663ccc408 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs @@ -27,6 +27,8 @@ public RootMediaTypeTreeController(IEntityService entityService, FlagProviderCol [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of media type items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of media type items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/SiblingsMediaTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/SiblingsMediaTypeTreeController.cs index 61686ee5cb9d..da0d52eb6660 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/SiblingsMediaTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/SiblingsMediaTypeTreeController.cs @@ -24,6 +24,8 @@ public SiblingsMediaTypeTreeController(IEntityService entityService, FlagProvide [HttpGet("siblings")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of media type tree sibling items.")] + [EndpointDescription("Gets a collection of media type tree items that are siblings of the provided Id.")] public async Task>> Siblings( CancellationToken cancellationToken, Guid target, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/UpdateMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/UpdateMediaTypeController.cs index 96bd65f46488..4948ce74974d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/UpdateMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/UpdateMediaTypeController.cs @@ -41,6 +41,8 @@ public UpdateMediaTypeController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a media type.")] + [EndpointDescription("Updates a media type identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/ByKeyMemberController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/ByKeyMemberController.cs index f70afe5e4056..5655c8510feb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/ByKeyMemberController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/ByKeyMemberController.cs @@ -30,6 +30,8 @@ public ByKeyMemberController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(MemberResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a member.")] + [EndpointDescription("Gets a member identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { IMember? member = await _memberEditingService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/ConfigurationMemberController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/ConfigurationMemberController.cs index 688e8392f7c4..3ba7ccc6e1ac 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/ConfigurationMemberController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/ConfigurationMemberController.cs @@ -18,6 +18,8 @@ public ConfigurationMemberController( [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(MemberConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the member configuration.")] + [EndpointDescription("Gets the configuration settings for members.")] public Task Configuration(CancellationToken cancellationToken) { MemberConfigurationResponseModel responseModel = _configurationPresentationFactory.CreateMemberConfigurationResponseModel(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/CreateMemberController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/CreateMemberController.cs index ebf0b5d824c2..028c45bdce53 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/CreateMemberController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/CreateMemberController.cs @@ -34,6 +34,8 @@ public CreateMemberController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Creates a new member.")] + [EndpointDescription("Creates a new member with the configuration specified in the request model.")] public async Task Create(CancellationToken cancellationToken, CreateMemberRequestModel createRequestModel) { MemberCreateModel model = _memberEditingPresentationFactory.MapCreateModel(createRequestModel); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/DeleteMemberController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/DeleteMemberController.cs index f11e7bd0b4c9..7fa3415f4183 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/DeleteMemberController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/DeleteMemberController.cs @@ -26,6 +26,8 @@ public DeleteMemberController(IMemberEditingService memberEditingService, IBackO [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a member.")] + [EndpointDescription("Deletes a member identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { Attempt result = await _memberEditingService.DeleteAsync(id, CurrentUserKey(_backOfficeSecurityAccessor)); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/Filter/FilterMemberFilterController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/Filter/FilterMemberFilterController.cs index 8ea4a50eb259..bff3007b6b00 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/Filter/FilterMemberFilterController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/Filter/FilterMemberFilterController.cs @@ -33,6 +33,8 @@ public FilterMemberFilterController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a filtered collection of members.")] + [EndpointDescription("Filters members based on the provided criteria with support for pagination.")] public async Task Filter( CancellationToken cancellationToken, Guid? memberTypeId = null, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/ItemMemberItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/ItemMemberItemController.cs index 8e2e73538cae..178a398b363c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/ItemMemberItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/ItemMemberItemController.cs @@ -25,6 +25,8 @@ public ItemMemberItemController(IEntityService entityService, IMemberPresentatio [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of member items.")] + [EndpointDescription("Gets a collection of member items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/SearchMemberItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/SearchMemberItemController.cs index 78917f49ce0f..81faafab83f2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/SearchMemberItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/SearchMemberItemController.cs @@ -24,6 +24,8 @@ public SearchMemberItemController(IIndexedEntitySearchService indexedEntitySearc [HttpGet("search")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] + [EndpointSummary("Searches member items.")] + [EndpointDescription("Searches member items by the provided query with pagination support.")] public async Task SearchWithAllowedTypes(CancellationToken cancellationToken, string query, int skip = 0, int take = 100, [FromQuery]IEnumerable? allowedMemberTypes = null) { PagedModel searchResult = await _indexedEntitySearchService.SearchAsync(UmbracoObjectTypes.Member, query, null, allowedMemberTypes, false, "*", skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/References/AreReferencedMemberController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/References/AreReferencedMemberController.cs index 1b46a981ce86..bb453ef28899 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/References/AreReferencedMemberController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/References/AreReferencedMemberController.cs @@ -33,6 +33,8 @@ public AreReferencedMemberController(ITrackedReferencesService trackedReferences [HttpGet("are-referenced")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of items that reference members.")] + [EndpointDescription("Gets a paginated collection of items that reference the members identified by the provided Ids.")] public async Task>> GetPagedReferencedItems( CancellationToken cancellationToken, [FromQuery(Name="id")] HashSet ids, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/References/ReferencedByMemberController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/References/ReferencedByMemberController.cs index 69237278a549..417650df4c85 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/References/ReferencedByMemberController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/References/ReferencedByMemberController.cs @@ -31,6 +31,8 @@ public ReferencedByMemberController(ITrackedReferencesService trackedReferencesS [HttpGet("{id:guid}/referenced-by")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of items that reference members.")] + [EndpointDescription("Gets a paginated collection of items that reference the members identified by the provided Ids.")] public async Task>> ReferencedBy( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/References/ReferencedDescendantsMemberController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/References/ReferencedDescendantsMemberController.cs index aa86950e6e62..c91a933ef187 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/References/ReferencedDescendantsMemberController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/References/ReferencedDescendantsMemberController.cs @@ -32,6 +32,8 @@ public ReferencedDescendantsMemberController(ITrackedReferencesService trackedRe [HttpGet("{id:guid}/referenced-descendants")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of referenced descendant members.")] + [EndpointDescription("Gets a paginated collection of descendant members that are referenced in relations for the member identified by the provided Id.")] public async Task>> ReferencedDescendants( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/UpdateMemberController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/UpdateMemberController.cs index 8d7d83859b99..32e20acbfc8c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/UpdateMemberController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/UpdateMemberController.cs @@ -33,6 +33,8 @@ public UpdateMemberController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a member.")] + [EndpointDescription("Updates a member identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/ValidateCreateMemberController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/ValidateCreateMemberController.cs index 7528988d0434..457f45edaaf0 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/ValidateCreateMemberController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/ValidateCreateMemberController.cs @@ -29,6 +29,8 @@ public ValidateCreateMemberController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Validates creating a member.")] + [EndpointDescription("Validates the request model for creating a new member without actually creating it.")] public async Task Validate( CancellationToken cancellationToken, CreateMemberRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/ValidateUpdateMemberController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/ValidateUpdateMemberController.cs index 8c5fe877c005..bb7101283a9b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/ValidateUpdateMemberController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/ValidateUpdateMemberController.cs @@ -29,6 +29,8 @@ public ValidateUpdateMemberController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Validates updating a member.")] + [EndpointDescription("Validates the request model for updating a member without actually updating it.")] public async Task Validate( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/AllMemberGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/AllMemberGroupController.cs index 0f5b3384ba37..df36e01c7df9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/AllMemberGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/AllMemberGroupController.cs @@ -24,6 +24,8 @@ public AllMemberGroupController(IMemberGroupService memberGroupService, IUmbraco [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of member groups.")] + [EndpointDescription("Gets a paginated collection of member groups.")] public async Task>> All( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/ByKeyMemberGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/ByKeyMemberGroupController.cs index 65fb21fa27d0..1e1a052dab14 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/ByKeyMemberGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/ByKeyMemberGroupController.cs @@ -24,6 +24,8 @@ public ByKeyMemberGroupController(IMemberGroupService memberGroupService, IUmbra [MapToApiVersion("1.0")] [ProducesResponseType(typeof(MemberGroupResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a member group.")] + [EndpointDescription("Gets a member group identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { IMemberGroup? memberGroup = await _memberGroupService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/CreateMemberGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/CreateMemberGroupController.cs index d6780149db7e..5f05bb7b3ff1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/CreateMemberGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/CreateMemberGroupController.cs @@ -26,6 +26,8 @@ public CreateMemberGroupController(IMemberGroupService memberGroupService, IUmbr [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Creates a new membergroup.")] + [EndpointDescription("Creates a new membergroup with the configuration specified in the request model.")] public async Task Create(CancellationToken cancellationToken, CreateMemberGroupRequestModel model) { IMemberGroup? memberGroup = _mapper.Map(model); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/DeleteMemberGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/DeleteMemberGroupController.cs index d73f4a55a56b..309c8d2eaaaf 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/DeleteMemberGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/DeleteMemberGroupController.cs @@ -20,6 +20,8 @@ public class DeleteMemberGroupController : MemberGroupControllerBase [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Deletes a member group.")] + [EndpointDescription("Deletes a member group identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { Attempt result = await _memberGroupService.DeleteAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Item/ItemMemberGroupItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Item/ItemMemberGroupItemController.cs index 479a8c561704..e10e47ac1ba5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Item/ItemMemberGroupItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Item/ItemMemberGroupItemController.cs @@ -25,6 +25,8 @@ public ItemMemberGroupItemController(IEntityService entityService, IUmbracoMappe [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of member group items.")] + [EndpointDescription("Gets a collection of member group items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/RootMemberGroupTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/RootMemberGroupTreeController.cs index 59a5dbb8b716..cdda99656d4e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/RootMemberGroupTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/RootMemberGroupTreeController.cs @@ -27,6 +27,8 @@ public RootMemberGroupTreeController(IEntityService entityService, FlagProviderC [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of member group items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of member group items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/UpdateMemberGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/UpdateMemberGroupController.cs index b8fb0a4bb871..9022b0939996 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/UpdateMemberGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/UpdateMemberGroupController.cs @@ -27,6 +27,8 @@ public UpdateMemberGroupController(IUmbracoMapper mapper, IMemberGroupService me [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a member group.")] + [EndpointDescription("Updates a member group identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/AvailableCompositionMemberTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/AvailableCompositionMemberTypeController.cs index a43e662b76c9..c66c8cfedef3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/AvailableCompositionMemberTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/AvailableCompositionMemberTypeController.cs @@ -26,6 +26,8 @@ public AvailableCompositionMemberTypeController(IMemberTypeEditingService member [HttpPost("available-compositions")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets available compositions.")] + [EndpointDescription("Gets a collection of member types that are available to use as compositions for the specified member type.")] public async Task AvailableCompositions( CancellationToken cancellationToken, MemberTypeCompositionRequestModel compositionModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/ByKeyMemberTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/ByKeyMemberTypeController.cs index 1dc7d7703718..0efd5935c0b7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/ByKeyMemberTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/ByKeyMemberTypeController.cs @@ -25,6 +25,8 @@ public ByKeyMemberTypeController(IMemberTypeService memberTypeService, IMemberTy [MapToApiVersion("1.0")] [ProducesResponseType(typeof(MemberTypeResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a member type.")] + [EndpointDescription("Gets a member type identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { IMemberType? memberType = await _memberTypeService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CompositionReferenceMemberTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CompositionReferenceMemberTypeController.cs index c20037319a8a..ab68e2b8dea9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CompositionReferenceMemberTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CompositionReferenceMemberTypeController.cs @@ -29,6 +29,8 @@ public CompositionReferenceMemberTypeController(IMemberTypeService memberTypeSer [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets composition references.")] + [EndpointDescription("Gets a collection of member types that reference the specified member type as a composition.")] public async Task CompositionReferences(CancellationToken cancellationToken, Guid id) { var memberType = await _memberTypeService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/ConfigurationMemberTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/ConfigurationMemberTypeController.cs index 2dacf50fef45..b7e3d086917c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/ConfigurationMemberTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/ConfigurationMemberTypeController.cs @@ -22,6 +22,8 @@ public ConfigurationMemberTypeController(IConfigurationPresentationFactory confi [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(MemberTypeConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the member type configuration.")] + [EndpointDescription("Gets the configuration settings for member types.")] public Task Configuration(CancellationToken cancellationToken) { MemberTypeConfigurationResponseModel responseModel = _configurationPresentationFactory.CreateMemberTypeConfigurationResponseModel(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CopyMemberTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CopyMemberTypeController.cs index e0d24d0973c7..f4d4bb96ea66 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CopyMemberTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CopyMemberTypeController.cs @@ -24,6 +24,8 @@ public CopyMemberTypeController(IMemberTypeService memberTypeService) [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Copies a member type.")] + [EndpointDescription("Creates a duplicate of an existing member type identified by the provided Id.")] public async Task Copy(CancellationToken cancellationToken, Guid id) { Attempt result = await _memberTypeService.CopyAsync(id, containerKey: null); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CreateMemberTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CreateMemberTypeController.cs index 8ab82ecb07ae..aed2fdfccc88 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CreateMemberTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/CreateMemberTypeController.cs @@ -37,6 +37,8 @@ public CreateMemberTypeController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new member type.")] + [EndpointDescription("Creates a new member type with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreateMemberTypeRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/DeleteMemberTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/DeleteMemberTypeController.cs index a79bb4c2a3ad..4a5ddeb2e4c1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/DeleteMemberTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/DeleteMemberTypeController.cs @@ -26,6 +26,8 @@ public DeleteMemberTypeController(IMemberTypeService memberTypeService, IBackOff [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a member type.")] + [EndpointDescription("Deletes a member type identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { ContentTypeOperationStatus status = await _memberTypeService.DeleteAsync(id, CurrentUserKey(_backOfficeSecurityAccessor)); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/ByKeyMemberTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/ByKeyMemberTypeFolderController.cs index 81ba0fcbb9e5..8073b53c9f81 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/ByKeyMemberTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/ByKeyMemberTypeFolderController.cs @@ -21,5 +21,7 @@ public ByKeyMemberTypeFolderController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(FolderResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a member type folder.")] + [EndpointDescription("Gets a member type folder identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) => await GetFolderAsync(id); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/CreateMemberTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/CreateMemberTypeFolderController.cs index 3379cb2e9b0e..fb7ee751ebe3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/CreateMemberTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/CreateMemberTypeFolderController.cs @@ -22,6 +22,8 @@ public CreateMemberTypeFolderController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a member type folder.")] + [EndpointDescription("Creates a new member type folder with the provided name and parent location.")] public async Task Create( CancellationToken cancellationToken, CreateFolderRequestModel createFolderRequestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/DeleteMemberTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/DeleteMemberTypeFolderController.cs index 6bdc679e2d70..3866ff819418 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/DeleteMemberTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/DeleteMemberTypeFolderController.cs @@ -21,5 +21,7 @@ public DeleteMemberTypeFolderController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a member type folder.")] + [EndpointDescription("Deletes a member type folder identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) => await DeleteFolderAsync(id); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/UpdateMemberTypeFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/UpdateMemberTypeFolderController.cs index acc0acab5b78..5e90694eb1a3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/UpdateMemberTypeFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Folder/UpdateMemberTypeFolderController.cs @@ -22,6 +22,8 @@ public UpdateMemberTypeFolderController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a member type folder.")] + [EndpointDescription("Updates a member type folder identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Item/ItemMemberTypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Item/ItemMemberTypeItemController.cs index 8aa28468b1df..e1c775b288b5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Item/ItemMemberTypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Item/ItemMemberTypeItemController.cs @@ -23,6 +23,8 @@ public ItemMemberTypeItemController(IUmbracoMapper mapper, IMemberTypeService me [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of member type items.")] + [EndpointDescription("Gets a collection of member type items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Item/SearchMemberTypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Item/SearchMemberTypeItemController.cs index 0d211bad43ba..488c910281ad 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Item/SearchMemberTypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Item/SearchMemberTypeItemController.cs @@ -26,6 +26,8 @@ public SearchMemberTypeItemController(IEntitySearchService entitySearchService, [HttpGet("search")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] + [EndpointSummary("Searches member type items.")] + [EndpointDescription("Searches member type items by the provided query with pagination support.")] public Task Search(CancellationToken cancellationToken, string query, int skip = 0, int take = 100) { PagedModel searchResult = _entitySearchService.Search(UmbracoObjectTypes.MemberType, query, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/RootMemberTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/RootMemberTypeTreeController.cs index 2b4e89e17595..4ccb4c321b22 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/RootMemberTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/RootMemberTypeTreeController.cs @@ -27,6 +27,8 @@ public RootMemberTypeTreeController(IEntityService entityService, FlagProviderCo [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of member type items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of member type items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/SiblingMemberTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/SiblingMemberTypeTreeController.cs index 4ed8e9f949e3..4a215b7bb058 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/SiblingMemberTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/SiblingMemberTypeTreeController.cs @@ -19,6 +19,8 @@ public SiblingMemberTypeTreeController( [HttpGet("siblings")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets sibling member types in the tree.")] + [EndpointDescription("Gets a collection of member type tree items that are siblings of the provided Id.")] public async Task>> Siblings( CancellationToken cancellationToken, Guid target, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/UpdateMemberTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/UpdateMemberTypeController.cs index f3be972803de..f84873af5921 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/UpdateMemberTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/UpdateMemberTypeController.cs @@ -41,6 +41,8 @@ public UpdateMemberTypeController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a member type.")] + [EndpointDescription("Updates a member type identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs index 4282de369790..c5154fd3e94d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs @@ -35,6 +35,8 @@ public BuildModelsBuilderController( [HttpPost("build")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)] + [EndpointSummary("Builds models.")] + [EndpointDescription("Triggers the models builder to generate strongly-typed models for content types.")] [MapToApiVersion("1.0")] public Task BuildModels(CancellationToken cancellationToken) { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/GetModelsBuilderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/GetModelsBuilderController.cs index 492ad23c6399..2d7f4c5dc9ff 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/GetModelsBuilderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/GetModelsBuilderController.cs @@ -15,6 +15,8 @@ public class GetModelsBuilderController : ModelsBuilderControllerBase [HttpGet("dashboard")] [ProducesResponseType(typeof(ModelsBuilderResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets models builder dashboard data.")] + [EndpointDescription("Gets the dashboard data and current state of the models builder.")] [MapToApiVersion("1.0")] public Task> GetDashboard(CancellationToken cancellationToken) => Task.FromResult>(Ok(_modelsBuilderPresentationFactory.Create())); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/StatusModelsBuilderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/StatusModelsBuilderController.cs index f49b16b8517f..5046182bcc80 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/StatusModelsBuilderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/StatusModelsBuilderController.cs @@ -17,6 +17,8 @@ public class StatusModelsBuilderController : ModelsBuilderControllerBase [HttpGet("status")] [ProducesResponseType(typeof(OutOfDateStatusResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets models builder status.")] + [EndpointDescription("Gets the current status and configuration of the models builder.")] [MapToApiVersion("1.0")] public Task> GetModelsOutOfDateStatus(CancellationToken cancellationToken) { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/NewsDashboard/NewsDashboardController.cs b/src/Umbraco.Cms.Api.Management/Controllers/NewsDashboard/NewsDashboardController.cs index 583a8323b45d..8252e67da5aa 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/NewsDashboard/NewsDashboardController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/NewsDashboard/NewsDashboardController.cs @@ -13,6 +13,8 @@ public class NewsDashboardController : NewsDashboardControllerBase [HttpGet] [ProducesResponseType(typeof(NewsDashboardResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets news dashboard content.")] + [EndpointDescription("Gets the news dashboard content including recent news items and updates for the Umbraco back office.")] public async Task GetDashboard() { NewsDashboardResponseModel content = await _newsDashboardService.GetItemsAsync(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/OEmbed/QueryOEmbedController.cs b/src/Umbraco.Cms.Api.Management/Controllers/OEmbed/QueryOEmbedController.cs index ba9c621912b2..cf854d45a8c2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/OEmbed/QueryOEmbedController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/OEmbed/QueryOEmbedController.cs @@ -24,6 +24,8 @@ public QueryOEmbedController(IOEmbedService oEmbedService) [HttpGet("query")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(OEmbedResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Queries OEmbed information.")] + [EndpointDescription("Queries OEmbed information for the specified URL.")] public async Task Query(CancellationToken cancellationToken, Uri url, int? maxWidth = null, int? maxHeight = null) { Attempt result = await _oEmbedService.GetMarkupAsync(url, maxWidth, maxHeight, cancellationToken); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/ObjectTypes/AllowedObjectTypesController.cs b/src/Umbraco.Cms.Api.Management/Controllers/ObjectTypes/AllowedObjectTypesController.cs index 7b5687971d68..bc87766a1ee0 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/ObjectTypes/AllowedObjectTypesController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/ObjectTypes/AllowedObjectTypesController.cs @@ -17,6 +17,8 @@ public class AllowedObjectTypesController : ObjectTypesControllerBase [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of allowed object types.")] + [EndpointDescription("Gets a paginated collection of allowed object types.")] public Task Allowed(CancellationToken cancellationToken, int skip = 0, int take = 100) { ObjectTypeResponseModel[] objectTypes = _objectTypePresentationFactory.Create().ToArray(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Package/AllMigrationStatusPackageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Package/AllMigrationStatusPackageController.cs index 0bb2f830dc84..125db99e08f7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Package/AllMigrationStatusPackageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Package/AllMigrationStatusPackageController.cs @@ -47,6 +47,8 @@ public AllMigrationStatusPackageController(IPackagingService packagingService, I [HttpGet("migration-status")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets all package migration statuses.")] + [EndpointDescription("Gets a paginated collection of migration status for all installed packages.")] public async Task>> AllMigrationStatuses( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Package/ConfigurationPackageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Package/ConfigurationPackageController.cs index 9ad8c1a20ee3..e1dd25f4e85a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Package/ConfigurationPackageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Package/ConfigurationPackageController.cs @@ -16,6 +16,8 @@ public class ConfigurationPackageController : PackageControllerBase [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PackageConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the package configuration.")] + [EndpointDescription("Gets the configuration settings for packages.")] public Task Configuration(CancellationToken cancellationToken) { PackageConfigurationResponseModel responseModel = _packagePresentationFactory.CreateConfigurationResponseModel(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/AllCreatedPackageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/AllCreatedPackageController.cs index 73ef8030115f..160d94fc00d4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/AllCreatedPackageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/AllCreatedPackageController.cs @@ -31,6 +31,8 @@ public AllCreatedPackageController(IPackagingService packagingService, IUmbracoM [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of packages.")] + [EndpointDescription("Gets a paginated collection of packages.")] public async Task>> All( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/ByKeyCreatedPackageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/ByKeyCreatedPackageController.cs index a0fa1ae497c3..156073fc9dcc 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/ByKeyCreatedPackageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/ByKeyCreatedPackageController.cs @@ -29,6 +29,8 @@ public ByKeyCreatedPackageController(IPackagingService packagingService, IUmbrac [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(PackageDefinitionResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a package.")] + [EndpointDescription("Gets a package identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { PackageDefinition? package = await _packagingService.GetCreatedPackageByKeyAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/CreateCreatedPackageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/CreateCreatedPackageController.cs index be19a8e6e1af..6ab83b80adbd 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/CreateCreatedPackageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/CreateCreatedPackageController.cs @@ -38,6 +38,8 @@ public CreateCreatedPackageController( [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status201Created)] + [EndpointSummary("Creates a new package.")] + [EndpointDescription("Creates a new package with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreatePackageRequestModel createPackageRequestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/DeleteCreatedPackageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/DeleteCreatedPackageController.cs index 6561472bd330..6db95709da7f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/DeleteCreatedPackageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/DeleteCreatedPackageController.cs @@ -30,6 +30,8 @@ public DeleteCreatedPackageController(IPackagingService packagingService, IBackO [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Deletes a package.")] + [EndpointDescription("Deletes a package identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { Attempt result = diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/DownloadCreatedPackageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/DownloadCreatedPackageController.cs index 007e13b76959..e50c709574cd 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/DownloadCreatedPackageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/DownloadCreatedPackageController.cs @@ -27,6 +27,8 @@ public class DownloadCreatedPackageController : CreatedPackageControllerBase [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(FileContentResult), StatusCodes.Status200OK)] + [EndpointSummary("Downloads a created package.")] + [EndpointDescription("Downloads the package file for the created package identified by the provided Id.")] public async Task Download(CancellationToken cancellationToken, Guid id) { PackageDefinition? package = await _packagingService.GetCreatedPackageByKeyAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/UpdateCreatedPackageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/UpdateCreatedPackageController.cs index b22e63ccc4d8..628b837c4637 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/UpdateCreatedPackageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Package/Created/UpdateCreatedPackageController.cs @@ -38,6 +38,8 @@ public UpdateCreatedPackageController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Updates a package.")] + [EndpointDescription("Updates a package identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Package/RunMigrationPackageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Package/RunMigrationPackageController.cs index 56d7a4279493..980be53fde48 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Package/RunMigrationPackageController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Package/RunMigrationPackageController.cs @@ -25,6 +25,8 @@ public RunMigrationPackageController(PackageMigrationRunner packageMigrationRunn [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status409Conflict)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Runs pending package migrations.")] + [EndpointDescription("Executes all pending package migrations to update the database schema.")] public async Task RunMigrations(CancellationToken cancellationToken, string name) { Attempt result = await _packageMigrationRunner.RunPendingPackageMigrations(name); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/ByPathPartialViewController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/ByPathPartialViewController.cs index bbf1dec98fcd..394705c246fb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/ByPathPartialViewController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/ByPathPartialViewController.cs @@ -27,6 +27,8 @@ public ByPathPartialViewController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PartialViewResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a partialview by path.")] + [EndpointDescription("Gets a partialview identified by the provided file path.")] public async Task ByPath(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/CreatePartialViewController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/CreatePartialViewController.cs index 61bf11008e4b..6e5202c82332 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/CreatePartialViewController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/CreatePartialViewController.cs @@ -34,6 +34,8 @@ public CreatePartialViewController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new partialview.")] + [EndpointDescription("Creates a new partialview with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreatePartialViewRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/DeletePartialViewController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/DeletePartialViewController.cs index b44990b41e2c..24625d00c4c1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/DeletePartialViewController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/DeletePartialViewController.cs @@ -27,6 +27,8 @@ public DeletePartialViewController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a partial view.")] + [EndpointDescription("Deletes a partial view identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/ByPathPartialViewFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/ByPathPartialViewFolderController.cs index 727f4d1d68d1..ee20ab2f13d4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/ByPathPartialViewFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/ByPathPartialViewFolderController.cs @@ -26,6 +26,8 @@ public ByPathPartialViewFolderController(IPartialViewFolderService partialViewFo [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PartialViewFolderResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a partialviewfolder by path.")] + [EndpointDescription("Gets a partialviewfolder identified by the provided file path.")] public async Task ByPath(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/CreatePartialViewFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/CreatePartialViewFolderController.cs index f260fe232989..ef129a0e3f6e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/CreatePartialViewFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/CreatePartialViewFolderController.cs @@ -29,6 +29,8 @@ public CreatePartialViewFolderController(IPartialViewFolderService partialViewFo [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a partialview folder.")] + [EndpointDescription("Creates a new partialview folder with the provided name and parent location.")] public async Task Create( CancellationToken cancellationToken, CreatePartialViewFolderRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/DeletePartialViewFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/DeletePartialViewFolderController.cs index 41cf9548d58b..4f4549916560 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/DeletePartialViewFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Folder/DeletePartialViewFolderController.cs @@ -20,6 +20,8 @@ public DeletePartialViewFolderController(IPartialViewFolderService partialViewFo [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a partial view folder.")] + [EndpointDescription("Deletes a partial view folder identified by the provided Id.")] public async Task Delete( CancellationToken cancellationToken, string path) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Item/ItemPartialViewItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Item/ItemPartialViewItemController.cs index 27f09cb4d40e..94088820ec25 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Item/ItemPartialViewItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Item/ItemPartialViewItemController.cs @@ -18,6 +18,8 @@ public ItemPartialViewItemController(IFileItemPresentationFactory fileItemPresen [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of partialview items.")] + [EndpointDescription("Gets a collection of partialview items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "path")] HashSet paths) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/RenamePartialViewController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/RenamePartialViewController.cs index bb3cea933c77..5124930ad642 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/RenamePartialViewController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/RenamePartialViewController.cs @@ -31,6 +31,8 @@ public RenamePartialViewController(IPartialViewService partialViewService, IBack [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Renames a partialview.")] + [EndpointDescription("Renames a partialview file to the specified new name.")] public async Task Rename( CancellationToken cancellationToken, string path, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Snippet/ByIdController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Snippet/ByIdController.cs index 53b4cce0e516..5e958b45c227 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Snippet/ByIdController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Snippet/ByIdController.cs @@ -24,6 +24,8 @@ public ByIdController(IPartialViewService partialViewService, IUmbracoMapper umb [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PartialViewSnippetResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a partial view snippet.")] + [EndpointDescription("Gets a partial view snippet identified by the provided Id.")] public async Task GetById( CancellationToken cancellationToken, string id) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Snippet/GetAllController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Snippet/GetAllController.cs index 300c210fef2b..180021d1447b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Snippet/GetAllController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Snippet/GetAllController.cs @@ -25,6 +25,8 @@ public GetAllController(IPartialViewService partialViewService, IUmbracoMapper u [HttpGet("snippet")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of partial view snippets.")] + [EndpointDescription("Gets a paginated collection of partial view snippets.")] public async Task GetAll(CancellationToken cancellationToken, int skip = 0, int take = 100) { PagedModel snippets = await _partialViewService.GetSnippetsAsync(skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/AncestorsPartialViewTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/AncestorsPartialViewTreeController.cs index 6f30a7268482..c11b04d844ff 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/AncestorsPartialViewTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/AncestorsPartialViewTreeController.cs @@ -33,6 +33,8 @@ public AncestorsPartialViewTreeController(FileSystems fileSystems) [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor partial view items.")] + [EndpointDescription("Gets a collection of partial view items that are ancestors to the provided Id.")] public async Task>> Ancestors( CancellationToken cancellationToken, string descendantPath) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ChildrenPartialViewTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ChildrenPartialViewTreeController.cs index 9c70e7acbed4..8f1a2c5dd7ec 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ChildrenPartialViewTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ChildrenPartialViewTreeController.cs @@ -34,6 +34,8 @@ public ChildrenPartialViewTreeController(FileSystems fileSystems) [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of partial view tree child items.")] + [EndpointDescription("Gets a paginated collection of partial view tree items that are children of the provided parent Id.")] public async Task>> Children( CancellationToken cancellationToken, string parentPath, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/RootPartialViewTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/RootPartialViewTreeController.cs index 0a7d95627f87..0c8549acee52 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/RootPartialViewTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/RootPartialViewTreeController.cs @@ -34,6 +34,8 @@ public RootPartialViewTreeController(FileSystems fileSystems) [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of partial view items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of partial view items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/SiblingsPartialViewTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/SiblingsPartialViewTreeController.cs index 8b3354d0f663..4d3f5f53bce7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/SiblingsPartialViewTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/SiblingsPartialViewTreeController.cs @@ -31,6 +31,8 @@ public SiblingsPartialViewTreeController(FileSystems fileSystems) [HttpGet("siblings")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of partial view tree sibling items.")] + [EndpointDescription("Gets a collection of partial view tree items that are siblings of the provided Id.")] public async Task>> Siblings( CancellationToken cancellationToken, string path, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/UpdatePartialViewController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/UpdatePartialViewController.cs index e460b0adf0ae..b54f29af054b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/UpdatePartialViewController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/UpdatePartialViewController.cs @@ -34,6 +34,8 @@ public UpdatePartialViewController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a partial view.")] + [EndpointDescription("Updates a partial view identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, string path, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Preview/EndPreviewController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Preview/EndPreviewController.cs index f7b333a2ad72..519ac1172685 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Preview/EndPreviewController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Preview/EndPreviewController.cs @@ -16,6 +16,8 @@ public class EndPreviewController : PreviewControllerBase [HttpDelete] [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Exits preview mode.")] + [EndpointDescription("Exits preview mode and returns to the normal back office viewing experience.")] [AllowAnonymous] // It's okay the client can do this from the website without having a token public async Task End(CancellationToken cancellationToken) { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Preview/EnterPreviewController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Preview/EnterPreviewController.cs index 65d600ca5c93..b28fe4b7360d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Preview/EnterPreviewController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Preview/EnterPreviewController.cs @@ -22,6 +22,8 @@ public EnterPreviewController(IPreviewService previewService, IBackOfficeSecurit [HttpPost] [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Enters preview mode.")] + [EndpointDescription("Enters preview mode for the specified document, allowing viewing of unpublished content.")] public async Task Enter(CancellationToken cancellationToken) { return await _previewService.TryEnterPreviewAsync(CurrentUser(_backOfficeSecurityAccessor)) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Profiling/GetStatusProfilingController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Profiling/GetStatusProfilingController.cs index 6dae531f5cdf..b7b43196b37a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Profiling/GetStatusProfilingController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Profiling/GetStatusProfilingController.cs @@ -18,6 +18,8 @@ public class GetStatusProfilingController : ProfilingControllerBase [HttpGet("status")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProfilingStatusResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets profiling status.")] + [EndpointDescription("Gets the current status of the MiniProfiler profiling tool.")] public async Task Status(CancellationToken cancellationToken) { Attempt result = await _webProfilerService.GetStatus(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Profiling/UpdateStatusProfilingController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Profiling/UpdateStatusProfilingController.cs index b90a976c7644..06126551e978 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Profiling/UpdateStatusProfilingController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Profiling/UpdateStatusProfilingController.cs @@ -18,6 +18,8 @@ public class UpdateStatusProfilingController : ProfilingControllerBase [HttpPut("status")] [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Updates a profiling.")] + [EndpointDescription("Updates a profiling identified by the provided Id with the details from the request model.")] public async Task Status( CancellationToken cancellationToken, ProfilingStatusRequestModel model) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PropertyType/IsUsedPropertyTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PropertyType/IsUsedPropertyTypeController.cs index 8db2363d07b2..5bde63381991 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PropertyType/IsUsedPropertyTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PropertyType/IsUsedPropertyTypeController.cs @@ -22,6 +22,8 @@ public IsUsedPropertyTypeController(IPropertyTypeUsageService propertyTypeUsageS [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(bool), StatusCodes.Status200OK)] + [EndpointSummary("Checks if a propertytype is used.")] + [EndpointDescription("Checks if the propertytype identified by the provided Id is used in any content, media, or members.")] public async Task Get(CancellationToken cancellationToken, Guid contentTypeId, string propertyAlias) { Attempt result = await _propertyTypeUsageService.HasSavedPropertyValuesAsync(contentTypeId, propertyAlias); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheController.cs index f716058fc4e7..30daba922cf9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheController.cs @@ -17,6 +17,8 @@ public class RebuildPublishedCacheController : PublishedCacheControllerBase [HttpPost("rebuild")] [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Rebuilds the published content cache.")] + [EndpointDescription("Rebuilds the entire published content cache from scratch.")] public async Task Rebuild(CancellationToken cancellationToken) { Attempt attempt = await _databaseCacheRebuilder.RebuildAsync(true); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheStatusController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheStatusController.cs index e924116751a3..9e287dbb5484 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheStatusController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheStatusController.cs @@ -16,6 +16,8 @@ public class RebuildPublishedCacheStatusController : PublishedCacheControllerBas [HttpGet("rebuild/status")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(RebuildStatusModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the rebuild cache status.")] + [EndpointDescription("Gets the current status of the published content cache rebuild operation.")] public async Task Status(CancellationToken cancellationToken) { var isRebuilding = await _databaseCacheRebuilder.IsRebuildingAsync(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/ReloadPublishedCacheController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/ReloadPublishedCacheController.cs index e147c9f7752a..79c0603a6789 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/ReloadPublishedCacheController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/ReloadPublishedCacheController.cs @@ -16,6 +16,8 @@ public class ReloadPublishedCacheController : PublishedCacheControllerBase [HttpPost("reload")] [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Reloads the published content cache.")] + [EndpointDescription("Reloads the published content cache from the database.")] public Task Reload(CancellationToken cancellationToken) { _distributedCache.RefreshAllPublishedSnapshot(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/ByKeyRedirectUrlManagementController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/ByKeyRedirectUrlManagementController.cs index c8470ddc320f..f345399fcf32 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/ByKeyRedirectUrlManagementController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/ByKeyRedirectUrlManagementController.cs @@ -26,6 +26,8 @@ public ByKeyRedirectUrlManagementController( [MapToApiVersion("1.0")] [HttpGet("{id:guid}")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a redirect URL.")] + [EndpointDescription("Gets a redirect URL identified by the provided Id.")] public Task>> ByKey( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/DeleteByKeyRedirectUrlManagementController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/DeleteByKeyRedirectUrlManagementController.cs index 6f33b166996b..088a4e174647 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/DeleteByKeyRedirectUrlManagementController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/DeleteByKeyRedirectUrlManagementController.cs @@ -18,6 +18,8 @@ public DeleteByKeyRedirectUrlManagementController(IRedirectUrlService redirectUr [MapToApiVersion("1.0")] [HttpDelete("{id:guid}")] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Deletes a redirect URL.")] + [EndpointDescription("Deletes a redirect URL identified by the provided Id.")] public Task DeleteByKey(CancellationToken cancellationToken, Guid id) { _redirectUrlService.Delete(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetAllRedirectUrlManagementController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetAllRedirectUrlManagementController.cs index bd3449679ee9..925d1d171c24 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetAllRedirectUrlManagementController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetAllRedirectUrlManagementController.cs @@ -27,6 +27,8 @@ public GetAllRedirectUrlManagementController( [HttpGet] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of redirect URLs.")] + [EndpointDescription("Gets a paginated collection of redirect URLs with support for filtering and sorting.")] public Task>> GetAll( CancellationToken cancellationToken, string? filter, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetStatusRedirectUrlManagementController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetStatusRedirectUrlManagementController.cs index 1500df85adc7..374d198e8577 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetStatusRedirectUrlManagementController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetStatusRedirectUrlManagementController.cs @@ -1,4 +1,5 @@ using Asp.Versioning; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.Factories; using Umbraco.Cms.Api.Management.ViewModels.RedirectUrlManagement; @@ -17,6 +18,8 @@ public GetStatusRedirectUrlManagementController( [MapToApiVersion("1.0")] [HttpGet("status")] [ProducesResponseType(typeof(RedirectUrlStatusResponseModel), 200)] + [EndpointSummary("Gets URLs for a document.")] + [EndpointDescription("Gets the URLs for the document identified by the provided Id.")] public Task> GetStatus(CancellationToken cancellationToken) => Task.FromResult>(_redirectUrlStatusPresentationFactory.CreateViewModel()); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/SetStatusRedirectUrlManagementController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/SetStatusRedirectUrlManagementController.cs index 5f7e1a9a9f87..f62849c3b132 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/SetStatusRedirectUrlManagementController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/SetStatusRedirectUrlManagementController.cs @@ -1,4 +1,5 @@ using Asp.Versioning; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core.Configuration; using Umbraco.Cms.Core.Models.RedirectUrlManagement; @@ -24,6 +25,8 @@ public SetStatusRedirectUrlManagementController( // We generally don't want to edit the appsettings from our code. // But maybe there is a valid use case for doing it on the fly. [HttpPost("status")] + [EndpointSummary("Gets URLs for a document.")] + [EndpointDescription("Gets the URLs for the document identified by the provided Id.")] [MapToApiVersion("1.0")] public async Task SetStatus(CancellationToken cancellationToken, [FromQuery] RedirectStatus status) { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Relation/ByRelationTypeKeyRelationController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Relation/ByRelationTypeKeyRelationController.cs index 189019cc85dd..ebf7ec67be1b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Relation/ByRelationTypeKeyRelationController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Relation/ByRelationTypeKeyRelationController.cs @@ -33,6 +33,8 @@ public ByRelationTypeKeyRelationController(IRelationService relationService, IRe [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets relations by relation type.")] + [EndpointDescription("Gets a collection of relations filtered by the specified relation type key.")] public async Task ByRelationTypeKey( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/AllRelationTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/AllRelationTypeController.cs index 337a7ba93b6f..4e96b6855937 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/AllRelationTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/AllRelationTypeController.cs @@ -26,6 +26,8 @@ public AllRelationTypeController( [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of relation types.")] + [EndpointDescription("Gets a paginated collection of relation types.")] public async Task>> Get( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/ByKeyRelationTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/ByKeyRelationTypeController.cs index 691c6ae0ef9b..a85e3258c124 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/ByKeyRelationTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/ByKeyRelationTypeController.cs @@ -24,6 +24,8 @@ public ByKeyRelationTypeController(IRelationService relationService, IUmbracoMap [MapToApiVersion("1.0")] [ProducesResponseType(typeof(RelationTypeResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a relation type.")] + [EndpointDescription("Gets a relation type identified by the provided Id.")] public Task ByKey(CancellationToken cancellationToken, Guid id) { IRelationType? relationType = _relationService.GetRelationTypeById(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Item/ItemRelationTypeItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Item/ItemRelationTypeItemController.cs index 6ba42c15795f..2b14c6aa31e1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Item/ItemRelationTypeItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Item/ItemRelationTypeItemController.cs @@ -23,6 +23,8 @@ public ItemRelationTypeItemController(IRelationService relationService, IUmbraco [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of relation type items.")] + [EndpointDescription("Gets a collection of relation type items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/ByPathScriptController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/ByPathScriptController.cs index 60c5fe644a19..d78bf178b6d9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/ByPathScriptController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/ByPathScriptController.cs @@ -27,6 +27,8 @@ public ByPathScriptController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ScriptResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a script by path.")] + [EndpointDescription("Gets a script identified by the provided file path.")] public async Task ByPath(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/CreateScriptController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/CreateScriptController.cs index 624b79b8c7b9..a3e22e59b3b7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/CreateScriptController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/CreateScriptController.cs @@ -34,6 +34,8 @@ public CreateScriptController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new script.")] + [EndpointDescription("Creates a new script with the configuration specified in the request model.")] public async Task Create(CancellationToken cancellationToken, CreateScriptRequestModel requestModel) { ScriptCreateModel createModel = _umbracoMapper.Map(requestModel)!; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/DeleteScriptController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/DeleteScriptController.cs index 94c2e0a1c0ed..c64dfc4d55aa 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/DeleteScriptController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/DeleteScriptController.cs @@ -27,6 +27,8 @@ public DeleteScriptController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a script.")] + [EndpointDescription("Deletes a script identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/ByPathScriptFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/ByPathScriptFolderController.cs index 698c94f685a2..5116498159ee 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/ByPathScriptFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/ByPathScriptFolderController.cs @@ -26,6 +26,8 @@ public ByPathScriptFolderController(IScriptFolderService scriptFolderService, IU [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ScriptFolderResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a scriptfolder by path.")] + [EndpointDescription("Gets a scriptfolder identified by the provided file path.")] public async Task ByPath(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/CreateScriptFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/CreateScriptFolderController.cs index 53c015e548e9..4f10751ff1d2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/CreateScriptFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/CreateScriptFolderController.cs @@ -29,6 +29,8 @@ public CreateScriptFolderController(IScriptFolderService scriptFolderService, IU [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a script folder.")] + [EndpointDescription("Creates a new script folder with the provided name and parent location.")] public async Task Create( CancellationToken cancellationToken, CreateScriptFolderRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/DeleteScriptFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/DeleteScriptFolderController.cs index 48d97e9b4b97..59fcc08a9368 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/DeleteScriptFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/Folder/DeleteScriptFolderController.cs @@ -20,6 +20,8 @@ public DeleteScriptFolderController(IScriptFolderService scriptFolderService) [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a script folder.")] + [EndpointDescription("Deletes a script folder identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Item/ItemScriptItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Item/ItemScriptItemController.cs index e18eda31a7d9..efe3c53ce8e5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Item/ItemScriptItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/Item/ItemScriptItemController.cs @@ -18,6 +18,8 @@ public ItemScriptItemController(IFileItemPresentationFactory fileItemPresentatio [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of script items.")] + [EndpointDescription("Gets a collection of script items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "path")] HashSet paths) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/RenameScriptController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/RenameScriptController.cs index 7c45eac8514f..7959c24aa220 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/RenameScriptController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/RenameScriptController.cs @@ -31,6 +31,8 @@ public RenameScriptController(IScriptService scriptService, IBackOfficeSecurityA [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Renames a script.")] + [EndpointDescription("Renames a script file to the specified new name.")] public async Task Rename( CancellationToken cancellationToken, string path, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/AncestorsScriptTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/AncestorsScriptTreeController.cs index 0aef76c5b782..5683965f9a53 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/AncestorsScriptTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/AncestorsScriptTreeController.cs @@ -33,6 +33,8 @@ public AncestorsScriptTreeController(FileSystems fileSystems) [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor script items.")] + [EndpointDescription("Gets a collection of script items that are ancestors to the provided Id.")] public async Task>> Ancestors( CancellationToken cancellationToken, string descendantPath) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ChildrenScriptTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ChildrenScriptTreeController.cs index 8313b6294139..cca4cf299f64 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ChildrenScriptTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ChildrenScriptTreeController.cs @@ -34,6 +34,8 @@ public ChildrenScriptTreeController(FileSystems fileSystems) [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of script tree child items.")] + [EndpointDescription("Gets a paginated collection of script tree items that are children of the provided parent Id.")] public async Task>> Children( CancellationToken cancellationToken, string parentPath, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/RootScriptTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/RootScriptTreeController.cs index dcb5e2479ced..ad156fe04404 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/RootScriptTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/RootScriptTreeController.cs @@ -34,6 +34,8 @@ public RootScriptTreeController(FileSystems fileSystems) [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of script items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of script items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/SiblingsScriptTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/SiblingsScriptTreeController.cs index fa53cfa77473..9e203ddae060 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/SiblingsScriptTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/SiblingsScriptTreeController.cs @@ -31,6 +31,8 @@ public SiblingsScriptTreeController(FileSystems fileSystems) [HttpGet("siblings")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of script tree sibling items.")] + [EndpointDescription("Gets a collection of script tree items that are siblings of the provided Id.")] public async Task>> Siblings( CancellationToken cancellationToken, string path, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/UpdateScriptController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/UpdateScriptController.cs index a18f82ebc861..ea175d2ff60e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/UpdateScriptController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/UpdateScriptController.cs @@ -34,6 +34,8 @@ public UpdateScriptController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a script.")] + [EndpointDescription("Updates a script identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, string path, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Searcher/AllSearcherController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Searcher/AllSearcherController.cs index 60ee9f22b7e5..7da88a1b325f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Searcher/AllSearcherController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Searcher/AllSearcherController.cs @@ -22,6 +22,8 @@ public class AllSearcherController : SearcherControllerBase [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of searchers.")] + [EndpointDescription("Gets a collection of configured searchers in the Umbraco installation.")] public Task>> All( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeController.cs index 1ce0d361cd02..2e131a2d196f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeController.cs @@ -73,6 +73,8 @@ public BackOfficeController( } [HttpPost("login")] + [EndpointSummary("Authenticates a user.")] + [EndpointDescription("Authenticates a user with the provided credentials and returns authentication tokens.")] [MapToApiVersion("1.0")] [Authorize(Policy = AuthorizationPolicies.DenyLocalLoginIfConfigured)] public async Task Login(CancellationToken cancellationToken, LoginRequestModel model) @@ -140,6 +142,8 @@ await _backOfficeUserManager.CheckPasswordAsync(user, model.Password)) [AllowAnonymous] [HttpPost("verify-2fa")] + [EndpointSummary("Verifies two-factor authentication.")] + [EndpointDescription("Verifies the two-factor authentication code for the user.")] [MapToApiVersion("1.0")] public async Task Verify2FACode(CancellationToken cancellationToken, Verify2FACodeModel model) { @@ -184,6 +188,8 @@ public async Task Verify2FACode(CancellationToken cancellationTok [AllowAnonymous] [HttpGet("authorize")] + [EndpointSummary("Authorizes the current request.")] + [EndpointDescription("Validates and authorizes the OAuth authorization request.")] [MapToApiVersion("1.0")] public async Task Authorize(CancellationToken cancellationToken) { @@ -215,6 +221,8 @@ public async Task Authorize(CancellationToken cancellationToken) [AllowAnonymous] [HttpPost("token")] + [EndpointSummary("Issues access tokens.")] + [EndpointDescription("Issues or refreshes access tokens for authenticated users.")] [MapToApiVersion("1.0")] public async Task Token() { @@ -272,6 +280,8 @@ public async Task Token() [AllowAnonymous] [HttpGet("signout")] + [EndpointSummary("Signs out the current user.")] + [EndpointDescription("Signs out the currently authenticated user and ends their session.")] [MapToApiVersion("1.0")] public async Task Signout(CancellationToken cancellationToken) { @@ -295,6 +305,8 @@ public async Task Signout(CancellationToken cancellationToken) // Creates and retains a short lived secret to use in the link-login // endpoint because we can not protect that method with a bearer token for reasons explained there [HttpGet("link-login-key")] + [EndpointSummary("Authenticates a user.")] + [EndpointDescription("Authenticates a user with the provided credentials and returns authentication tokens.")] [MapToApiVersion("1.0")] public async Task LinkLoginKey(string provider) { @@ -322,6 +334,8 @@ public async Task LinkLoginKey(string provider) // can't set a bearer token header. // we are forcing form usage here for the whole model so the secret does not end up in url logs. [HttpPost("link-login")] + [EndpointSummary("Authenticates a user.")] + [EndpointDescription("Authenticates a user with the provided credentials and returns authentication tokens.")] [AllowAnonymous] [MapToApiVersion("1.0")] public async Task LinkLogin([FromForm] LinkLoginRequestModel requestModel) @@ -363,6 +377,8 @@ public async Task LinkLogin([FromForm] LinkLoginRequestModel requ /// which this is based on /// [HttpGet("ExternalLinkLoginCallback")] + [EndpointSummary("Authenticates a user.")] + [EndpointDescription("Authenticates a user with the provided credentials and returns authentication tokens.")] [AllowAnonymous] [MapToApiVersion("1.0")] public async Task ExternalLinkLoginCallback() @@ -388,6 +404,8 @@ RedirectResult RedirectWithStatus(string status) } [HttpPost("unlink-login")] + [EndpointSummary("Authenticates a user.")] + [EndpointDescription("Authenticates a user with the provided credentials and returns authentication tokens.")] [MapToApiVersion("1.0")] public async Task PostUnLinkLogin(UnLinkLoginRequestModel unlinkLoginRequestModel) { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeDefaultController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeDefaultController.cs index 195963ff8e1f..0567e6763191 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeDefaultController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeDefaultController.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.DependencyInjection; using Umbraco.Cms.Core; @@ -19,6 +20,8 @@ public BackOfficeDefaultController(IRuntime umbracoRuntime) [HttpGet] [AllowAnonymous] + [EndpointSummary("Gets the back office default configuration.")] + [EndpointDescription("Gets the default configuration and settings for the Umbraco back office.")] public async Task Index(CancellationToken cancellationToken) { // force authentication to occur since this is not an authorized endpoint diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeGraphicsController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeGraphicsController.cs index 3dc491b714e8..ebc67f3b7e5a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeGraphicsController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeGraphicsController.cs @@ -36,26 +36,36 @@ public BackOfficeGraphicsController(IOptions contentSettings, I } [HttpGet("login-background", Name = LoginBackGroundRouteName)] + [EndpointSummary("Authenticates a user.")] + [EndpointDescription("Authenticates a user with the provided credentials and returns authentication tokens.")] [AllowAnonymous] [MapToApiVersion("1.0")] public IActionResult LoginBackground() => HandleFileRequest(_contentSettings.Value.LoginBackgroundImage); [HttpGet("logo", Name = LogoRouteName)] + [EndpointSummary("Gets the login logo image.")] + [EndpointDescription("Gets the custom login logo image if configured.")] [AllowAnonymous] [MapToApiVersion("1.0")] public IActionResult Logo() => HandleFileRequest(_contentSettings.Value.BackOfficeLogo); [HttpGet("logo-alternative", Name = LogoAlternativeRouteName)] + [EndpointSummary("Gets the login logo image.")] + [EndpointDescription("Gets the custom login logo image if configured.")] [AllowAnonymous] [MapToApiVersion("1.0")] public IActionResult LogoAlternative() => HandleFileRequest(_contentSettings.Value.BackOfficeLogoAlternative); [HttpGet("login-logo", Name = LoginLogoRouteName)] + [EndpointSummary("Authenticates a user.")] + [EndpointDescription("Authenticates a user with the provided credentials and returns authentication tokens.")] [AllowAnonymous] [MapToApiVersion("1.0")] public IActionResult LoginLogo() => HandleFileRequest(_contentSettings.Value.LoginLogoImage); [HttpGet("login-logo-alternative", Name = LoginLogoAlternativeRouteName)] + [EndpointSummary("Authenticates a user.")] + [EndpointDescription("Authenticates a user with the provided credentials and returns authentication tokens.")] [AllowAnonymous] [MapToApiVersion("1.0")] public IActionResult LoginLogoAlternative() => HandleFileRequest(_contentSettings.Value.LoginLogoImageAlternative); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Security/ConfigurationSecurityController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Security/ConfigurationSecurityController.cs index c96f4a2bcff7..4065e343649d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Security/ConfigurationSecurityController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Security/ConfigurationSecurityController.cs @@ -20,6 +20,8 @@ public ConfigurationSecurityController(IPasswordConfigurationPresentationFactory [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(SecurityConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the security configuration.")] + [EndpointDescription("Gets the configuration settings for securitys.")] public Task Configuration(CancellationToken cancellationToken) { var viewModel = new SecurityConfigurationResponseModel diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Security/ResetPasswordController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Security/ResetPasswordController.cs index fb70ad89f6cb..8491d320642f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Security/ResetPasswordController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Security/ResetPasswordController.cs @@ -24,6 +24,8 @@ public class ResetPasswordController : SecurityControllerBase [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Requests a password reset.")] + [EndpointDescription("Initiates a password reset process by sending a reset link to the specified email address.")] [UserPasswordEnsureMinimumResponseTime] public async Task RequestPasswordReset(CancellationToken cancellationToken, ResetPasswordRequestModel model) { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Security/ResetPasswordTokenController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Security/ResetPasswordTokenController.cs index 7d5549220640..2a42442f416e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Security/ResetPasswordTokenController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Security/ResetPasswordTokenController.cs @@ -33,6 +33,8 @@ public ResetPasswordTokenController(IUserService userService, IOpenIddictTokenMa [ProducesResponseType(StatusCodes.Status204NoContent)] [ProducesResponseType(typeof(ProblemDetailsBuilder), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetailsBuilder), StatusCodes.Status404NotFound)] + [EndpointSummary("Initiates password reset.")] + [EndpointDescription("Initiates a password reset process for the user with the provided email.")] [UserPasswordEnsureMinimumResponseTime] public async Task ResetPasswordToken(CancellationToken cancellationToken, ResetPasswordTokenRequestModel model) { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Security/VerifyResetPasswordTokenController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Security/VerifyResetPasswordTokenController.cs index 560977722479..8e452103b8e4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Security/VerifyResetPasswordTokenController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Security/VerifyResetPasswordTokenController.cs @@ -30,6 +30,8 @@ public VerifyResetPasswordTokenController(IUserService userService, IPasswordCon [ProducesResponseType(typeof(VerifyResetPasswordResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetailsBuilder), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetailsBuilder), StatusCodes.Status404NotFound)] + [EndpointSummary("Initiates password reset.")] + [EndpointDescription("Initiates a password reset process for the user with the provided email.")] [UserPasswordEnsureMinimumResponseTime] public async Task VerifyResetPasswordToken( CancellationToken cancellationToken, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Segment/AllSegmentController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Segment/AllSegmentController.cs index c97e6c8d9003..9618abe1095f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Segment/AllSegmentController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Segment/AllSegmentController.cs @@ -29,6 +29,8 @@ public AllSegmentController(ISegmentService segmentService, IUmbracoMapper umbra [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Gets a paginated collection of segments.")] + [EndpointDescription("Gets a paginated collection of segments with support for filtering and pagination.")] public async Task GetAll(CancellationToken cancellationToken, int skip = 0, int take = 100) { Attempt?, SegmentOperationStatus> pagedAttempt = await _segmentService.GetPagedSegmentsAsync(skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Server/ConfigurationServerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Server/ConfigurationServerController.cs index 48a5c7d28828..90374c96c998 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Server/ConfigurationServerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Server/ConfigurationServerController.cs @@ -27,6 +27,8 @@ public ConfigurationServerController(IOptions securitySettings [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ServerConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the server configuration.")] + [EndpointDescription("Gets the configuration settings for servers.")] public Task Configuration(CancellationToken cancellationToken) { var responseModel = new ServerConfigurationResponseModel diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Server/InformationServerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Server/InformationServerController.cs index 54ef1224aa51..87e729ab32fb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Server/InformationServerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Server/InformationServerController.cs @@ -22,6 +22,8 @@ public InformationServerController(IServerInformationService serverInformationSe [HttpGet("information")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ServerInformationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets server information.")] + [EndpointDescription("Gets detailed information about the server environment and configuration.")] public Task Information(CancellationToken cancellationToken) { ServerInformationResponseModel responseModel = _umbracoMapper.Map(_serverInformationService.GetServerInformation())!; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Server/StatusServerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Server/StatusServerController.cs index 4a9afe24ec71..b82c4ec2a9cb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Server/StatusServerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Server/StatusServerController.cs @@ -19,6 +19,8 @@ public class StatusServerController : ServerControllerBase [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ServerStatusResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets server status.")] + [EndpointDescription("Gets the current operational status of the Umbraco server.")] public Task> Get(CancellationToken cancellationToken) => Task.FromResult>(new ServerStatusResponseModel { ServerStatus = _runtimeState.Level }); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Server/TroubleshootingServerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Server/TroubleshootingServerController.cs index 470e0b5b8c3d..b83bd5990ace 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Server/TroubleshootingServerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Server/TroubleshootingServerController.cs @@ -22,6 +22,8 @@ public TroubleshootingServerController(ISystemTroubleshootingInformationService [HttpGet("troubleshooting")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ServerTroubleshootingResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets server troubleshooting information.")] + [EndpointDescription("Gets troubleshooting information and diagnostics for the server.")] public Task GetTroubleshooting(CancellationToken cancellationToken) { ServerTroubleshootingResponseModel responseModel = _mapper.Map(_systemTroubleshootingInformationService.GetTroubleshootingInformation())!; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Server/UpgradeCheckServerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Server/UpgradeCheckServerController.cs index 10a38944574a..5d54f5ea3f6d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Server/UpgradeCheckServerController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Server/UpgradeCheckServerController.cs @@ -27,6 +27,8 @@ public UpgradeCheckServerController(IUpgradeService upgradeService, IUmbracoVers [HttpGet("upgrade-check")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(UpgradeCheckResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Checks for available upgrades.")] + [EndpointDescription("Checks if there are any available upgrades for the Umbraco installation.")] public async Task UpgradeCheck(CancellationToken cancellationToken) { UpgradeResult upgradeResult = await _upgradeService.CheckUpgrade(_umbracoVersion.SemanticVersion); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Item/ItemStaticFileItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Item/ItemStaticFileItemController.cs index 600499c8a1b0..716426e1a119 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Item/ItemStaticFileItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Item/ItemStaticFileItemController.cs @@ -18,6 +18,8 @@ public ItemStaticFileItemController(IFileItemPresentationFactory fileItemPresent [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of staticfile items.")] + [EndpointDescription("Gets a collection of staticfile items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "path")] HashSet paths) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/AncestorsStaticFileTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/AncestorsStaticFileTreeController.cs index 83c9e9f37177..ba0bc16b9bb6 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/AncestorsStaticFileTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/AncestorsStaticFileTreeController.cs @@ -26,6 +26,8 @@ public AncestorsStaticFileTreeController(IPhysicalFileSystem physicalFileSystem, [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor static file items.")] + [EndpointDescription("Gets a collection of static file items that are ancestors to the provided Id.")] public async Task>> Ancestors( CancellationToken cancellationToken, string descendantPath) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ChildrenStaticFileTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ChildrenStaticFileTreeController.cs index b99cd783feb7..e296c87807b2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ChildrenStaticFileTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ChildrenStaticFileTreeController.cs @@ -27,6 +27,8 @@ public ChildrenStaticFileTreeController(IPhysicalFileSystem physicalFileSystem, [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of static file tree child items.")] + [EndpointDescription("Gets a paginated collection of static file tree items that are children of the provided parent Id.")] public async Task>> Children( CancellationToken cancellationToken, string parentPath, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/RootStaticFileTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/RootStaticFileTreeController.cs index bbb7f6c9c4f4..74b288a1554a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/RootStaticFileTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/RootStaticFileTreeController.cs @@ -27,6 +27,8 @@ public RootStaticFileTreeController(IPhysicalFileSystem physicalFileSystem, IPhy [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of static file items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of static file items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/ByPathStylesheetController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/ByPathStylesheetController.cs index 87aec60133e7..bb05d01c44b1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/ByPathStylesheetController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/ByPathStylesheetController.cs @@ -27,6 +27,8 @@ public ByPathStylesheetController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(StylesheetResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a stylesheet by path.")] + [EndpointDescription("Gets a stylesheet identified by the provided file path.")] public async Task ByPath(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/CreateStylesheetController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/CreateStylesheetController.cs index 165533f28706..a31855937856 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/CreateStylesheetController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/CreateStylesheetController.cs @@ -37,6 +37,8 @@ public CreateStylesheetController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new stylesheet.")] + [EndpointDescription("Creates a new stylesheet with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreateStylesheetRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/DeleteStylesheetController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/DeleteStylesheetController.cs index 9996ddeae0e1..a2963a131bdc 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/DeleteStylesheetController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/DeleteStylesheetController.cs @@ -30,6 +30,8 @@ public DeleteStylesheetController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a stylesheet.")] + [EndpointDescription("Deletes a stylesheet identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/ByPathStylesheetFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/ByPathStylesheetFolderController.cs index 95c7d853abf4..a6afbe680032 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/ByPathStylesheetFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/ByPathStylesheetFolderController.cs @@ -28,6 +28,8 @@ public ByPathStylesheetFolderController(IStylesheetFolderService stylesheetFolde [MapToApiVersion("1.0")] [ProducesResponseType(typeof(StylesheetFolderResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a stylesheetfolder by path.")] + [EndpointDescription("Gets a stylesheetfolder identified by the provided file path.")] public async Task ByPath(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/CreateStylesheetFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/CreateStylesheetFolderController.cs index f5ed46e0cffe..867a8db9eb04 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/CreateStylesheetFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/CreateStylesheetFolderController.cs @@ -29,6 +29,8 @@ public CreateStylesheetFolderController(IStylesheetFolderService stylesheetFolde [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a stylesheet folder.")] + [EndpointDescription("Creates a new stylesheet folder with the provided name and parent location.")] public async Task Create( CancellationToken cancellationToken, CreateStylesheetFolderRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/DeleteStylesheetFolderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/DeleteStylesheetFolderController.cs index deb38f086594..8d84b62f986d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/DeleteStylesheetFolderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Folder/DeleteStylesheetFolderController.cs @@ -20,6 +20,8 @@ public DeleteStylesheetFolderController(IStylesheetFolderService stylesheetFolde [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a stylesheet folder.")] + [EndpointDescription("Deletes a stylesheet folder identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, string path) { path = DecodePath(path).VirtualPathToSystemPath(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Item/ItemStylesheetItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Item/ItemStylesheetItemController.cs index f5e6d71adb39..d639e106c5d9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Item/ItemStylesheetItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Item/ItemStylesheetItemController.cs @@ -18,6 +18,8 @@ public ItemStylesheetItemController(IFileItemPresentationFactory fileItemPresent [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of stylesheet items.")] + [EndpointDescription("Gets a collection of stylesheet items identified by the provided Ids.")] public Task Item( CancellationToken cancellationToken, [FromQuery(Name = "path")] HashSet paths) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/RenameStylesheetController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/RenameStylesheetController.cs index e1ce77717de9..672fdb8847e8 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/RenameStylesheetController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/RenameStylesheetController.cs @@ -34,6 +34,8 @@ public RenameStylesheetController(IStylesheetService stylesheetService, IBackOff [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Renames a stylesheet.")] + [EndpointDescription("Renames a stylesheet file to the specified new name.")] public async Task Rename( CancellationToken cancellationToken, string path, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/AncestorsStylesheetTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/AncestorsStylesheetTreeController.cs index 2663152f4c6a..c20b935e8abb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/AncestorsStylesheetTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/AncestorsStylesheetTreeController.cs @@ -33,6 +33,8 @@ public AncestorsStylesheetTreeController(FileSystems fileSystems) [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor stylesheet items.")] + [EndpointDescription("Gets a collection of stylesheet items that are ancestors to the provided Id.")] public async Task>> Ancestors( CancellationToken cancellationToken, string descendantPath) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ChildrenStylesheetTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ChildrenStylesheetTreeController.cs index bf016b54e39f..32cac494a9f0 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ChildrenStylesheetTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ChildrenStylesheetTreeController.cs @@ -34,6 +34,8 @@ public ChildrenStylesheetTreeController(FileSystems fileSystems) [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of stylesheet tree child items.")] + [EndpointDescription("Gets a paginated collection of stylesheet tree items that are children of the provided parent Id.")] public async Task>> Children( CancellationToken cancellationToken, string parentPath, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/RootStylesheetTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/RootStylesheetTreeController.cs index c47828d09228..31bab91f4125 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/RootStylesheetTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/RootStylesheetTreeController.cs @@ -34,6 +34,8 @@ public RootStylesheetTreeController(FileSystems fileSystems) [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of stylesheet items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of stylesheet items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/SiblingsStylesheetTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/SiblingsStylesheetTreeController.cs index b56afe70b775..50dacdb1c321 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/SiblingsStylesheetTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/SiblingsStylesheetTreeController.cs @@ -31,6 +31,8 @@ public SiblingsStylesheetTreeController(FileSystems fileSystems) [HttpGet("siblings")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of stylesheet tree sibling items.")] + [EndpointDescription("Gets a collection of stylesheet tree items that are siblings of the provided Id.")] public async Task>> Siblings( CancellationToken cancellationToken, string path, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/UpdateStylesheetController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/UpdateStylesheetController.cs index 7000ca7b402d..ee17987b270a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/UpdateStylesheetController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/UpdateStylesheetController.cs @@ -37,6 +37,8 @@ public UpdateStylesheetController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a stylesheet.")] + [EndpointDescription("Updates a stylesheet identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, string path, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Tag/ByQueryTagController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Tag/ByQueryTagController.cs index 368d90859836..c56f0a354713 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Tag/ByQueryTagController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Tag/ByQueryTagController.cs @@ -24,6 +24,8 @@ public ByQueryTagController(ITagService tagService, IUmbracoMapper mapper) [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of tags.")] + [EndpointDescription("Gets a collection of tags filtered by the provided query string.")] public async Task>> ByQuery( CancellationToken cancellationToken, string? query, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/AllTelemetryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/AllTelemetryController.cs index df18521fbc6b..ae777cc45794 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/AllTelemetryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/AllTelemetryController.cs @@ -13,6 +13,8 @@ public class AllTelemetryController : TelemetryControllerBase [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets telemetry data.")] + [EndpointDescription("Gets telemetry data and statistics for the Umbraco installation.")] public Task> GetAll( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/GetTelemetryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/GetTelemetryController.cs index c442e6727b8f..49b9eea1c086 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/GetTelemetryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/GetTelemetryController.cs @@ -16,6 +16,8 @@ public class GetTelemetryController : TelemetryControllerBase [HttpGet("level")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(TelemetryResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets telemetry information.")] + [EndpointDescription("Gets the current telemetry configuration and consent level.")] public Task Get(CancellationToken cancellationToken) => Task.FromResult(new TelemetryResponseModel { TelemetryLevel = _metricsConsentService.GetConsentLevel() }); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/SetTelemetryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/SetTelemetryController.cs index f48abbc11d37..ffe748a3786b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/SetTelemetryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/SetTelemetryController.cs @@ -17,6 +17,8 @@ public class SetTelemetryController : TelemetryControllerBase [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Sets telemetry consent level.")] + [EndpointDescription("Sets the telemetry consent level for anonymous usage data collection.")] public async Task SetConsentLevel( CancellationToken cancellationToken, TelemetryRequestModel telemetryRepresentationBase) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/ByKeyTemplateController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/ByKeyTemplateController.cs index 0e5fe2e77158..397d1ac64ad3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/ByKeyTemplateController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/ByKeyTemplateController.cs @@ -26,6 +26,8 @@ public ByKeyTemplateController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(TemplateResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a template.")] + [EndpointDescription("Gets a template identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { ITemplate? template = await _templateService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/ConfigurationTemplateController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/ConfigurationTemplateController.cs index 8108b4a72f4a..f3e90efa267c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/ConfigurationTemplateController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/ConfigurationTemplateController.cs @@ -16,6 +16,8 @@ public class ConfigurationTemplateController : TemplateControllerBase [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(TemplateConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the template configuration.")] + [EndpointDescription("Gets the configuration settings for templates.")] public Task Configuration(CancellationToken cancellationToken) { var responseModel = new TemplateConfigurationResponseModel diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/CreateTemplateController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/CreateTemplateController.cs index 38ff0571917f..702f80de3f2d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/CreateTemplateController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/CreateTemplateController.cs @@ -29,6 +29,8 @@ public CreateTemplateController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new template.")] + [EndpointDescription("Creates a new template with the configuration specified in the request model.")] public async Task Create(CancellationToken cancellationToken, CreateTemplateRequestModel requestModel) { Attempt result = await _templateService.CreateAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/DeleteTemplateController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/DeleteTemplateController.cs index 7b9444b3529e..7c68bfe53f82 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/DeleteTemplateController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/DeleteTemplateController.cs @@ -26,6 +26,8 @@ public DeleteTemplateController(ITemplateService templateService, IBackOfficeSec [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a template.")] + [EndpointDescription("Deletes a template identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { Attempt result = await _templateService.DeleteAsync(id, CurrentUserKey(_backOfficeSecurityAccessor)); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Item/ItemTemplateItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Item/ItemTemplateItemController.cs index af609347c7a2..bf3cf4d57c19 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Item/ItemTemplateItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/Item/ItemTemplateItemController.cs @@ -23,6 +23,8 @@ public ItemTemplateItemController(IUmbracoMapper mapper, ITemplateService templa [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of template items.")] + [EndpointDescription("Gets a collection of template items identified by the provided Ids.")] public async Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Item/SearchTemplateItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Item/SearchTemplateItemController.cs index 27c5cff113af..45f7dcc84002 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Item/SearchTemplateItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/Item/SearchTemplateItemController.cs @@ -26,6 +26,8 @@ public SearchTemplateItemController(IEntitySearchService entitySearchService, IT [HttpGet("search")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] + [EndpointSummary("Searches template items.")] + [EndpointDescription("Searches template items by the provided query with pagination support.")] public async Task Search(CancellationToken cancellationToken, string query, int skip = 0, int take = 100) { PagedModel searchResult = _entitySearchService.Search(UmbracoObjectTypes.Template, query, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Query/ExecuteTemplateQueryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Query/ExecuteTemplateQueryController.cs index 7e1fa743fb42..ff707ca6948e 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Query/ExecuteTemplateQueryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/Query/ExecuteTemplateQueryController.cs @@ -46,6 +46,8 @@ public ExecuteTemplateQueryController( [HttpPost("execute")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(TemplateQueryResultResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Executes a template query.")] + [EndpointDescription("Executes a template query with the provided parameters and returns the matching content results with execution metrics.")] public Task> Execute( CancellationToken cancellationToken, TemplateQueryExecuteModel query) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Query/SettingsTemplateQueryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Query/SettingsTemplateQueryController.cs index 868bd8baa37a..3f9c091a5f80 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Query/SettingsTemplateQueryController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/Query/SettingsTemplateQueryController.cs @@ -17,6 +17,8 @@ public SettingsTemplateQueryController(IContentTypeService contentTypeService) [HttpGet("settings")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(TemplateQuerySettingsResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets template query settings.")] + [EndpointDescription("Gets the available configuration settings for template queries including document type aliases, properties, and operators.")] public Task> Settings(CancellationToken cancellationToken) { var contentTypeAliases = _contentTypeService diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/AncestorsTemplateTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/AncestorsTemplateTreeController.cs index ea1e5fd6ffa4..9c3c02a1be42 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/AncestorsTemplateTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/AncestorsTemplateTreeController.cs @@ -26,6 +26,8 @@ public AncestorsTemplateTreeController(IEntityService entityService, FlagProvide [HttpGet("ancestors")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of ancestor template items.")] + [EndpointDescription("Gets a collection of template items that are ancestors to the provided Id.")] public async Task>> Ancestors( CancellationToken cancellationToken, Guid descendantId) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ChildrenTemplateTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ChildrenTemplateTreeController.cs index 3a98881af9bb..40d4eda2cbcf 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ChildrenTemplateTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ChildrenTemplateTreeController.cs @@ -27,6 +27,8 @@ public ChildrenTemplateTreeController(IEntityService entityService, FlagProvider [HttpGet("children")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of template tree child items.")] + [EndpointDescription("Gets a paginated collection of template tree items that are children of the provided parent Id.")] public async Task>> Children( CancellationToken cancellationToken, Guid parentId, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/RootTemplateTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/RootTemplateTreeController.cs index 4118cd261a82..ba8db11214b1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/RootTemplateTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/RootTemplateTreeController.cs @@ -27,6 +27,8 @@ public RootTemplateTreeController(IEntityService entityService, FlagProviderColl [HttpGet("root")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of template items from the root of the tree.")] + [EndpointDescription("Gets a paginated collection of template items from the root of the tree with optional filtering.")] public async Task>> Root( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/SiblingsTemplateTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/SiblingsTemplateTreeController.cs index 336f94997adb..9347745606c5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/SiblingsTemplateTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/SiblingsTemplateTreeController.cs @@ -25,6 +25,8 @@ public SiblingsTemplateTreeController(IEntityService entityService, FlagProvider [HttpGet("siblings")] [ProducesResponseType(typeof(SubsetViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of template tree sibling items.")] + [EndpointDescription("Gets a collection of template tree items that are siblings of the provided Id.")] public async Task>> Siblings( CancellationToken cancellationToken, Guid target, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/UpdateTemplateController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/UpdateTemplateController.cs index 23717b397f72..d63fe8f38faa 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/UpdateTemplateController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/UpdateTemplateController.cs @@ -33,6 +33,8 @@ public UpdateTemplateController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a template.")] + [EndpointDescription("Updates a template identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/ByKeyTemporaryFileController.cs b/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/ByKeyTemporaryFileController.cs index b3783eef84b2..c4b17eb4ee45 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/ByKeyTemporaryFileController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/ByKeyTemporaryFileController.cs @@ -27,6 +27,8 @@ public ByKeyTemporaryFileController(ITemporaryFileService temporaryFileService, [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(TemporaryFileResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a temporary file.")] + [EndpointDescription("Gets a temporary file identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { TemporaryFileModel? model = await _temporaryFileService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/ConfigurationTemporaryFileController.cs b/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/ConfigurationTemporaryFileController.cs index d2a620cd16d7..7267855e03c1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/ConfigurationTemporaryFileController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/ConfigurationTemporaryFileController.cs @@ -18,6 +18,8 @@ public ConfigurationTemporaryFileController( [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(TemporaryFileConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the temporary file configuration.")] + [EndpointDescription("Gets the configuration settings for temporary files.")] public Task Configuration(CancellationToken cancellationToken) { TemporaryFileConfigurationResponseModel responseModel = _temporaryFileConfigurationPresentationFactory.Create(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/CreateTemporaryFileController.cs b/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/CreateTemporaryFileController.cs index 2eae45b94098..0bae6688d4c9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/CreateTemporaryFileController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/CreateTemporaryFileController.cs @@ -26,6 +26,8 @@ public CreateTemporaryFileController(ITemporaryFileService temporaryFileService, [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Creates a temporary file.")] + [EndpointDescription("Uploads and creates a temporary file that can be used in subsequent operations.")] public async Task Create( CancellationToken cancellationToken, [FromForm] CreateTemporaryFileRequestModel model) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/DeleteTemporaryFileController.cs b/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/DeleteTemporaryFileController.cs index e984e3248bda..4155ec151cfa 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/DeleteTemporaryFileController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/TemporaryFile/DeleteTemporaryFileController.cs @@ -20,6 +20,8 @@ public class DeleteTemporaryFileController : TemporaryFileControllerBase [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Deletes a temporary file.")] + [EndpointDescription("Deletes a temporary file identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { Attempt result = await _temporaryFileService.DeleteAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/AuthorizeUpgradeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/AuthorizeUpgradeController.cs index b19fc08463a7..49c65fcc15b5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/AuthorizeUpgradeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/AuthorizeUpgradeController.cs @@ -20,6 +20,8 @@ public class AuthorizeUpgradeController : UpgradeControllerBase [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status500InternalServerError)] + [EndpointSummary("Authorizes the upgrade.")] + [EndpointDescription("Authorizes the currently authenticated user to perform the upgrade.")] public async Task Authorize(CancellationToken cancellationToken) { Attempt result = await _upgradeService.UpgradeAsync(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/SettingsUpgradeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/SettingsUpgradeController.cs index 2dcbd8a01412..bfea11b10117 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/SettingsUpgradeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/SettingsUpgradeController.cs @@ -26,6 +26,8 @@ public SettingsUpgradeController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(UpgradeSettingsResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)] + [EndpointSummary("Gets upgrade settings.")] + [EndpointDescription("Gets the current upgrade settings and status for the Umbraco installation.")] public Task> Settings(CancellationToken cancellationToken) { // TODO: Async - We need to figure out what we want to do with async endpoints that doesn't do anything async diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UrlSegment/ResizeImagingController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UrlSegment/ResizeImagingController.cs index ea13c080e280..6b7bf9ba55de 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UrlSegment/ResizeImagingController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UrlSegment/ResizeImagingController.cs @@ -23,6 +23,8 @@ public ResizeImagingController(IMediaService mediaService, IReziseImageUrlFactor [MapToApiVersion("1.0")] [HttpGet("resize/urls")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets URLs for image resizing.")] + [EndpointDescription("Gets a collection of URLs for resizing images with the provided dimensions and options.")] public Task Urls([FromQuery(Name = "id")] HashSet ids, int height = 200, int width = 200, ImageCropMode? mode = null) { IEnumerable items = _mediaService.GetByIds(ids); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/BulkDeleteUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/BulkDeleteUserController.cs index ba79d8bea96f..c4b49cdaf1f6 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/BulkDeleteUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/BulkDeleteUserController.cs @@ -34,6 +34,8 @@ public BulkDeleteUserController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Deletes multiple users.")] + [EndpointDescription("Deletes multiple users identified by the provided Ids. This operation cannot be undone.")] public async Task DeleteUsers(CancellationToken cancellationToken, DeleteUsersRequestModel model) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/ByKeyUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/ByKeyUserController.cs index 895553bd9f76..9faf2bd2d03b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/ByKeyUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/ByKeyUserController.cs @@ -35,6 +35,8 @@ public ByKeyUserController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(UserResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a user.")] + [EndpointDescription("Gets a user identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/CalculateStartNodesUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/CalculateStartNodesUserController.cs index 98f1526ce9ed..0c4821b655fe 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/CalculateStartNodesUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/CalculateStartNodesUserController.cs @@ -34,6 +34,8 @@ public CalculatedStartNodesUserController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(CalculatedUserStartNodesResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Calculates start nodes for users.")] + [EndpointDescription("Calculates the start nodes for the users identified by the provided Ids based on their permissions.")] public async Task CalculatedStartNodes(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/ChangePasswordUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/ChangePasswordUserController.cs index d87153f8c532..6be418fc6bb9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/ChangePasswordUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/ChangePasswordUserController.cs @@ -37,6 +37,8 @@ public ChangePasswordUserController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Changes a user's password.")] + [EndpointDescription("Changes the password for the user identified by the provided Id.")] public async Task ChangePassword( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/ClearAvatarUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/ClearAvatarUserController.cs index c02cfe4a9dc4..136e0cb7ef47 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/ClearAvatarUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/ClearAvatarUserController.cs @@ -28,6 +28,8 @@ public ClearAvatarUserController(IAuthorizationService authorizationService, IUs [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Clears a user's avatar.")] + [EndpointDescription("Removes the avatar image for the user identified by the provided Id.")] public async Task ClearAvatar(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/CreateClientCredentialsUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/CreateClientCredentialsUserController.cs index d9212b18cd36..76c655df6245 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/CreateClientCredentialsUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/CreateClientCredentialsUserController.cs @@ -29,6 +29,8 @@ public CreateClientCredentialsUserController( [HttpPost("{id:guid}/client-credentials")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Creates client credentials for a user.")] + [EndpointDescription("Creates OAuth client credentials for the user identified by the provided Id.")] public async Task Create(CancellationToken cancellationToken, Guid id, CreateUserClientCredentialsRequestModel model) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/DeleteClientCredentialsUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/DeleteClientCredentialsUserController.cs index 5ad6e4ab1e33..ba5596f5f322 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/DeleteClientCredentialsUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/DeleteClientCredentialsUserController.cs @@ -28,6 +28,8 @@ public DeleteClientCredentialsUserController( [HttpDelete("{id:guid}/client-credentials/{clientId}")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Deletes a user.")] + [EndpointDescription("Deletes a user identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id, string clientId) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/GetAllClientCredentialsUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/GetAllClientCredentialsUserController.cs index e1e4d46f664e..164ff4352724 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/GetAllClientCredentialsUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/ClientCredentials/GetAllClientCredentialsUserController.cs @@ -25,6 +25,8 @@ public GetAllClientCredentialsUserController( [HttpGet("{id:guid}/client-credentials")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets all client credentials for a user.")] + [EndpointDescription("Gets a collection of OAuth client credentials for the user identified by the provided Id.")] public async Task GetAll(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/ConfigurationUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/ConfigurationUserController.cs index 915158a92ceb..55957a3d269f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/ConfigurationUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/ConfigurationUserController.cs @@ -16,6 +16,8 @@ public class ConfigurationUserController : UserControllerBase [HttpGet("configuration")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(UserConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the user configuration.")] + [EndpointDescription("Gets the configuration settings for users.")] public async Task Configuration(CancellationToken cancellationToken) => Ok(await _userPresentationFactory.CreateUserConfigurationModelAsync()); } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/CreateInitialPasswordUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/CreateInitialPasswordUserController.cs index 3831a2b0299e..1d4462ea6bb6 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/CreateInitialPasswordUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/CreateInitialPasswordUserController.cs @@ -32,6 +32,8 @@ public CreateInitialPasswordUserController(IUserService userService, IOpenIddict [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Creates an initial password for a user.")] + [EndpointDescription("Creates an initial password for a newly invited user using the provided token.")] public async Task CreateInitialPassword( CancellationToken cancellationToken, CreateInitialPasswordUserRequestModel model) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/CreateUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/CreateUserController.cs index b0a3a0ae5b63..b6f9ab1d5e70 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/CreateUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/CreateUserController.cs @@ -35,6 +35,8 @@ public CreateUserController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new user.")] + [EndpointDescription("Creates a new user with the configuration specified in the request model.")] public async Task Create(CancellationToken cancellationToken, CreateUserRequestModel model) { UserCreateModel createModel = await _presentationFactory.CreateCreationModelAsync(model); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ChangePasswordCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ChangePasswordCurrentUserController.cs index fcc7ac1e8854..ae153b935b3a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ChangePasswordCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ChangePasswordCurrentUserController.cs @@ -29,6 +29,8 @@ public ChangePasswordCurrentUserController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Changes the current user's password.")] + [EndpointDescription("Changes the password for the currently authenticated user.")] public async Task ChangePassword( CancellationToken cancellationToken, ChangePasswordCurrentUserRequestModel model) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ConfigurationCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ConfigurationCurrentUserController.cs index 6e93a1524f51..3d07ff53fcf3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ConfigurationCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ConfigurationCurrentUserController.cs @@ -19,6 +19,8 @@ public class ConfigurationCurrentUserController : CurrentUserControllerBase [MapToApiVersion("1.0")] [HttpGet("configuration")] [ProducesResponseType(typeof(CurrentUserConfigurationResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the user configuration.")] + [EndpointDescription("Gets the configuration settings for users.")] public async Task Configuration(CancellationToken cancellationToken) { CurrentUserConfigurationResponseModel model = await _userPresentationFactory.CreateCurrentUserConfigurationModelAsync(); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/DisableTwoFactorProviderCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/DisableTwoFactorProviderCurrentUserController.cs index a57a095bf7a7..14cf62f69ef7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/DisableTwoFactorProviderCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/DisableTwoFactorProviderCurrentUserController.cs @@ -27,6 +27,8 @@ public DisableTwoFactorProviderCurrentUserController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Disables two-factor authentication for the current user.")] + [EndpointDescription("Disables the specified two-factor authentication provider for the currently authenticated user.")] public async Task DisableTwoFactorProvider( CancellationToken cancellationToken, string providerName, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/EnableTwoFactorProviderCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/EnableTwoFactorProviderCurrentUserController.cs index 2efa0e7204f9..b1406eed235b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/EnableTwoFactorProviderCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/EnableTwoFactorProviderCurrentUserController.cs @@ -28,6 +28,8 @@ public EnableTwoFactorProviderCurrentUserController( [ProducesResponseType(typeof(ISetupTwoFactorModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Enables two-factor authentication for the current user.")] + [EndpointDescription("Enables the specified two-factor authentication provider for the currently authenticated user.")] public async Task EnableTwoFactorProvider( CancellationToken cancellationToken, string providerName, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetCurrentUserController.cs index 8f20728f13c4..64c9b85ea468 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetCurrentUserController.cs @@ -37,6 +37,8 @@ public GetCurrentUserController( [MapToApiVersion("1.0")] [HttpGet] [ProducesResponseType(typeof(CurrentUserResponseModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets the current user.")] + [EndpointDescription("Gets the currently authenticated back office user's information and permissions.")] public async Task GetCurrentUser(CancellationToken cancellationToken) { var currentUserKey = CurrentUserKey(_backOfficeSecurityAccessor); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetDocumentPermissionsCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetDocumentPermissionsCurrentUserController.cs index b2cb628e7de6..4b36881454e7 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetDocumentPermissionsCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetDocumentPermissionsCurrentUserController.cs @@ -32,6 +32,8 @@ public GetDocumentPermissionsCurrentUserController( [HttpGet("permissions/document")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets document permissions for the current user.")] + [EndpointDescription("Gets the document permissions for the currently authenticated user.")] public async Task GetPermissions( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetMediaPermissionsCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetMediaPermissionsCurrentUserController.cs index 6b58b7a356cc..d4b73937609b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetMediaPermissionsCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetMediaPermissionsCurrentUserController.cs @@ -32,6 +32,8 @@ public GetMediaPermissionsCurrentUserController( [HttpGet("permissions/media")] [ProducesResponseType(typeof(UserPermissionsResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets media permissions for the current user.")] + [EndpointDescription("Gets the media permissions for the currently authenticated user.")] public async Task GetPermissions( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetPermissionsCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetPermissionsCurrentUserController.cs index be5d6461f7ab..d39eab6ea308 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetPermissionsCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetPermissionsCurrentUserController.cs @@ -32,6 +32,8 @@ public GetPermissionsCurrentUserController( [HttpGet("permissions")] [ProducesResponseType(typeof(UserPermissionsResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets permissions for the current user.")] + [EndpointDescription("Gets the permissions for the currently authenticated user.")] public async Task GetPermissions( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetTwoFactorSetupForProviderCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetTwoFactorSetupForProviderCurrentUserController.cs index 60d7647495b3..51fbe3649e45 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetTwoFactorSetupForProviderCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/GetTwoFactorSetupForProviderCurrentUserController.cs @@ -27,6 +27,8 @@ public GetTwoFactorSetupForProviderCurrentUserController( [ProducesResponseType(typeof(ISetupTwoFactorModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Gets two-factor setup information.")] + [EndpointDescription("Gets the setup information for configuring a two-factor authentication provider.")] public async Task GetTwoFactorProviderByName(CancellationToken cancellationToken, string providerName) { Guid userKey = CurrentUserKey(_backOfficeSecurityAccessor); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ListExternalLoginProvidersCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ListExternalLoginProvidersCurrentUserController.cs index d0cf0e315c65..aeabc628c961 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ListExternalLoginProvidersCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ListExternalLoginProvidersCurrentUserController.cs @@ -31,6 +31,8 @@ public ListExternalLoginProvidersCurrentUserController( [MapToApiVersion("1.0")] [HttpGet("login-providers")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Lists external login providers.")] + [EndpointDescription("Gets a list of configured external login providers for authentication.")] public async Task ListTwoFactorProvidersForCurrentUser(CancellationToken cancellationToken) { Guid userKey = CurrentUserKey(_backOfficeSecurityAccessor); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ListTwoFactorProvidersCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ListTwoFactorProvidersCurrentUserController.cs index fb13eee598cb..24c67fbbf701 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ListTwoFactorProvidersCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/ListTwoFactorProvidersCurrentUserController.cs @@ -26,6 +26,8 @@ public ListTwoFactorProvidersCurrentUserController( [MapToApiVersion("1.0")] [HttpGet("2fa")] [ProducesResponseType(typeof(IEnumerable),StatusCodes.Status200OK)] + [EndpointSummary("Lists two-factor providers for the current user.")] + [EndpointDescription("Gets a list of available two-factor authentication providers for the current user.")] public async Task ListTwoFactorProvidersForCurrentUser(CancellationToken cancellationToken) { Guid userKey = CurrentUserKey(_backOfficeSecurityAccessor); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/SetAvatarCurrentUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/SetAvatarCurrentUserController.cs index a120521f526a..efe66f96615c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Current/SetAvatarCurrentUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Current/SetAvatarCurrentUserController.cs @@ -34,6 +34,8 @@ public SetAvatarCurrentUserController( [HttpPost("avatar")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Sets the current user's avatar.")] + [EndpointDescription("Sets or updates the avatar image for the currently authenticated user.")] public async Task SetAvatar(CancellationToken cancellationToken, SetAvatarRequestModel model) { Guid userKey = CurrentUserKey(_backOfficeSecurityAccessor); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/DeleteUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/DeleteUserController.cs index f4fe20e18ba8..1386d30f9bd1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/DeleteUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/DeleteUserController.cs @@ -34,6 +34,8 @@ public DeleteUserController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Deletes a user.")] + [EndpointDescription("Deletes a user identified by the provided Id.")] public async Task DeleteUser(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/DisableTwoFactorProviderUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/DisableTwoFactorProviderUserController.cs index 02c0297836a9..4dfd1b8229e9 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/DisableTwoFactorProviderUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/DisableTwoFactorProviderUserController.cs @@ -31,6 +31,8 @@ public DisableTwoFactorProviderUserController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Disables two-factor authentication for a user.")] + [EndpointDescription("Disables the specified two-factor authentication provider for a user.")] public async Task DisableTwoFactorProvider( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/DisableUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/DisableUserController.cs index 9f3f2c73a28a..f6e4baa9687c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/DisableUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/DisableUserController.cs @@ -35,6 +35,8 @@ public DisableUserController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Disables users.")] + [EndpointDescription("Disables the user accounts identified by the provided Ids.")] public async Task DisableUsers(CancellationToken cancellationToken, DisableUserRequestModel model) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/EnableUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/EnableUserController.cs index 37ea895bf1af..616ac74c07bb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/EnableUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/EnableUserController.cs @@ -35,6 +35,8 @@ public EnableUserController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Enables users.")] + [EndpointDescription("Enables the user accounts identified by the provided Ids.")] public async Task EnableUsers(CancellationToken cancellationToken, EnableUserRequestModel model) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Filter/FilterUserFilterController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Filter/FilterUserFilterController.cs index 491464f087d5..ad66abc68161 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Filter/FilterUserFilterController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Filter/FilterUserFilterController.cs @@ -46,6 +46,8 @@ public FilterUserFilterController( [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a filtered collection of users.")] + [EndpointDescription("Filters users based on the provided criteria with support for pagination.")] public async Task Filter( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/GetAllUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/GetAllUserController.cs index 3a7290449741..ae53d8c39064 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/GetAllUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/GetAllUserController.cs @@ -35,6 +35,8 @@ public GetAllUserController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a paginated collection of users.")] + [EndpointDescription("Gets a paginated collection of users.")] public async Task GetAll(CancellationToken cancellationToken, int skip = 0, int take = 100) { Attempt?, UserOperationStatus> attempt = await _userService.GetAllAsync(CurrentUserKey(_backOfficeSecurityAccessor), skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/InviteUsersController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/InviteUsersController.cs index ea653ab6b678..cc585099c731 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/InviteUsersController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/InviteUsersController.cs @@ -35,6 +35,8 @@ public InviteUserController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Invites new users.")] + [EndpointDescription("Sends invitation emails to create new user accounts with the specified details.")] public async Task Invite(CancellationToken cancellationToken, InviteUserRequestModel model) { UserInviteModel userInvite = await _userPresentationFactory.CreateInviteModelAsync(model); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/Item/ItemUserItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/Item/ItemUserItemController.cs index d55492fc50ca..1f9d8ffa1605 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/Item/ItemUserItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/Item/ItemUserItemController.cs @@ -24,6 +24,8 @@ public ItemUserItemController(IUserService userService, IUserPresentationFactory [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of user items.")] + [EndpointDescription("Gets a collection of user items identified by the provided Ids.")] public async Task Item(CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) { if (ids.Count is 0) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/ListTwoFactorProvidersUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/ListTwoFactorProvidersUserController.cs index ced3ec1d1373..006ddd5f0dcf 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/ListTwoFactorProvidersUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/ListTwoFactorProvidersUserController.cs @@ -31,6 +31,8 @@ public ListTwoFactorProvidersUserController( [HttpGet("{id:guid}/2fa")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Lists two-factor providers for a user.")] + [EndpointDescription("Gets a list of available two-factor authentication providers for the specified user.")] public async Task ListTwoFactorProviders(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/ResendInviteUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/ResendInviteUserController.cs index 9a9202f01762..a972d7c409a6 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/ResendInviteUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/ResendInviteUserController.cs @@ -31,6 +31,8 @@ public ResendInviteUserController(IUserService userService, IUserPresentationFac [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Resends a user invitation.")] + [EndpointDescription("Resends the invitation email for the users identified by the provided Ids.")] public async Task ResendInvite( CancellationToken cancellationToken, ResendInviteUserRequestModel model) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/ResetPasswordUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/ResetPasswordUserController.cs index 07faf5f7f18f..4f1dd41256cb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/ResetPasswordUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/ResetPasswordUserController.cs @@ -40,6 +40,8 @@ public ResetPasswordUserController( [ProducesResponseType(typeof(ResetPasswordUserResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Resets a user's password.")] + [EndpointDescription("Resets the password for the user using the provided reset token.")] public async Task ResetPassword(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/SetAvatarUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/SetAvatarUserController.cs index b04a8c3c38df..b510eba7c2a4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/SetAvatarUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/SetAvatarUserController.cs @@ -29,6 +29,8 @@ public SetAvatarUserController(IUserService userService, IAuthorizationService a [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Sets a user's avatar.")] + [EndpointDescription("Sets or updates the avatar image for the user identified by the provided Id.")] public async Task SetAvatar(CancellationToken cancellationToken, Guid id, SetAvatarRequestModel model) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/UnlockUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/UnlockUserController.cs index 918a1ea6fd62..269c7d0d91c4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/UnlockUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/UnlockUserController.cs @@ -36,6 +36,8 @@ public UnlockUserController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Unlocks users.")] + [EndpointDescription("Unlocks the user accounts identified by the provided Ids.")] public async Task UnlockUsers(CancellationToken cancellationToken, UnlockUsersRequestModel model) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/UpdateUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/UpdateUserController.cs index 09d853f548c7..23258b1304dd 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/UpdateUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/UpdateUserController.cs @@ -41,6 +41,8 @@ public UpdateUserController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a user.")] + [EndpointDescription("Updates a user identified by the provided Id with the details from the request model.")] public async Task Update(CancellationToken cancellationToken, Guid id, UpdateUserRequestModel model) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/UpdateUserGroupsUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/UpdateUserGroupsUserController.cs index 5aeda7f114db..a976cb602ba1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/UpdateUserGroupsUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/UpdateUserGroupsUserController.cs @@ -35,6 +35,8 @@ public UpdateUserGroupsUserController(IAuthorizationService authorizationService [HttpPost("set-user-groups")] [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Updates a user.")] + [EndpointDescription("Updates a user identified by the provided Id with the details from the request model.")] public async Task UpdateUserGroups( CancellationToken cancellationToken, UpdateUserGroupsOnUserRequestModel requestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/User/VerifyInviteUserController.cs b/src/Umbraco.Cms.Api.Management/Controllers/User/VerifyInviteUserController.cs index d66dc965c525..34cb3e5c0cb3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/User/VerifyInviteUserController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/User/VerifyInviteUserController.cs @@ -28,6 +28,8 @@ public VerifyInviteUserController(IUserService userService, IPasswordConfigurati [ProducesResponseType(typeof(VerifyInviteUserResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + [EndpointSummary("Verifies a user invitation.")] + [EndpointDescription("Verifies that the invitation token is valid for creating a new user account.")] public async Task Invite(CancellationToken cancellationToken, VerifyInviteUserRequestModel model) { Attempt result = await _userService.VerifyInviteAsync(model.User.Id, model.Token); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserData/ByKeyUserDataController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserData/ByKeyUserDataController.cs index ef593a565ab9..20732c8730c0 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserData/ByKeyUserDataController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserData/ByKeyUserDataController.cs @@ -32,6 +32,8 @@ public ByKeyUserDataController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(UserDataViewModel), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a user data.")] + [EndpointDescription("Gets a user data identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { Guid currentUserKey = CurrentUserKey(_backOfficeSecurityAccessor); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserData/CreateUserDataController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserData/CreateUserDataController.cs index da5318038d54..19972c8eab6c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserData/CreateUserDataController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserData/CreateUserDataController.cs @@ -33,6 +33,8 @@ public CreateUserDataController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(UserDataOperationStatus), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(UserDataOperationStatus), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates user data.")] + [EndpointDescription("Creates user-specific data for the current authenticated user with the provided key and value.")] public async Task Create(CancellationToken cancellationToken, CreateUserDataRequestModel model) { Guid currentUserKey = CurrentUserKey(_backOfficeSecurityAccessor); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserData/DeleteUserDataController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserData/DeleteUserDataController.cs index e2bb3e8849a2..6a3d09dc903b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserData/DeleteUserDataController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserData/DeleteUserDataController.cs @@ -28,6 +28,8 @@ public DeleteUserDataController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(UserDataOperationStatus), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(UserDataOperationStatus), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a user data.")] + [EndpointDescription("Deletes a user data identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { IUserData? data = await _userDataService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserData/GetUserDataController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserData/GetUserDataController.cs index 9f8affc88358..76f4020a5f5b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserData/GetUserDataController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserData/GetUserDataController.cs @@ -32,6 +32,8 @@ public GetUserDataController( [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets user data.")] + [EndpointDescription("Gets user-specific data stored for the current authenticated user.")] public async Task GetUserData(CancellationToken cancellationToken, [FromQuery]string[]? groups, [FromQuery]string[]? identifiers, [FromQuery]int skip = 0, [FromQuery]int take = 100) { Guid currentUserKey = CurrentUserKey(_backOfficeSecurityAccessor); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserData/UpdateUserDataController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserData/UpdateUserDataController.cs index b3457014164d..fdfee8902473 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserData/UpdateUserDataController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserData/UpdateUserDataController.cs @@ -33,6 +33,8 @@ public UpdateUserDataController( [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(UserDataOperationStatus), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(UserDataOperationStatus), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates user data.")] + [EndpointDescription("Updates user-specific data for the current authenticated user.")] public async Task Update(CancellationToken cancellationToken, UpdateUserDataRequestModel model) { Guid currentUserKey = CurrentUserKey(_backOfficeSecurityAccessor); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/AddUsersToUserGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/AddUsersToUserGroupController.cs index 7e88fb710352..29e47b083262 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/AddUsersToUserGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/AddUsersToUserGroupController.cs @@ -39,6 +39,8 @@ public AddUsersToUserGroupController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Adds users to a user group.")] + [EndpointDescription("Adds the specified users to the user group identified by the provided Id.")] public async Task Update(CancellationToken cancellationToken, Guid id, ReferenceByIdModel[] userIds) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/BulkDeleteUserGroupsController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/BulkDeleteUserGroupsController.cs index f356bba7d486..7902a1104ac0 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/BulkDeleteUserGroupsController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/BulkDeleteUserGroupsController.cs @@ -29,6 +29,8 @@ public BulkDeleteUserGroupsController(IAuthorizationService authorizationService [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes multiple user groups.")] + [EndpointDescription("Deletes multiple user groups identified by the provided Ids. This operation cannot be undone.")] public async Task BulkDelete(CancellationToken cancellationToken, DeleteUserGroupsRequestModel model) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/ByKeyUserGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/ByKeyUserGroupController.cs index 0574524fbbae..4a5a132bffee 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/ByKeyUserGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/ByKeyUserGroupController.cs @@ -33,6 +33,8 @@ public ByKeyUserGroupController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(UserGroupResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a user group.")] + [EndpointDescription("Gets a user group identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/CreateUserGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/CreateUserGroupController.cs index 8e28c3cca77e..af50c7fca57c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/CreateUserGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/CreateUserGroupController.cs @@ -32,6 +32,8 @@ public CreateUserGroupController( [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status201Created)] + [EndpointSummary("Creates a new user group.")] + [EndpointDescription("Creates a new user group with the configuration specified in the request model.")] public async Task Create(CancellationToken cancellationToken, CreateUserGroupRequestModel createUserGroupRequestModel) { Attempt userGroupCreationAttempt = await _userGroupPresentationFactory.CreateAsync(createUserGroupRequestModel); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/DeleteUserGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/DeleteUserGroupController.cs index d96cfbef3603..659231d1b5cc 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/DeleteUserGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/DeleteUserGroupController.cs @@ -28,6 +28,8 @@ public DeleteUserGroupController(IAuthorizationService authorizationService, IUs [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Deletes a user group.")] + [EndpointDescription("Deletes a user group identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/Filter/FilterUserGroupFilterController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/Filter/FilterUserGroupFilterController.cs index b78d0f13ceab..73a80f50aecb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/Filter/FilterUserGroupFilterController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/Filter/FilterUserGroupFilterController.cs @@ -35,6 +35,8 @@ public FilterUserGroupFilterController( [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a filtered collection of user groups.")] + [EndpointDescription("Filters user groups based on the provided criteria with support for pagination.")] public async Task Filter( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/GetAllUserGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/GetAllUserGroupController.cs index 948d61f64dc7..1a8915007560 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/GetAllUserGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/GetAllUserGroupController.cs @@ -27,6 +27,8 @@ public GetAllUserGroupController( [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of user groups.")] + [EndpointDescription("Gets a paginated collection of user groups.")] public async Task>> GetAll( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/Item/ItemUserGroupItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/Item/ItemUserGroupItemController.cs index 808a7e1cbaf1..5d023e9312ea 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/Item/ItemUserGroupItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/Item/ItemUserGroupItemController.cs @@ -23,6 +23,8 @@ public ItemUserGroupItemController(IUserGroupService userGroupService, IUmbracoM [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of user group items.")] + [EndpointDescription("Gets a collection of user group items identified by the provided Ids.")] public async Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/RemoveUsersFromUserGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/RemoveUsersFromUserGroupController.cs index 924763b97dcf..86fe1af318c6 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/RemoveUsersFromUserGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/RemoveUsersFromUserGroupController.cs @@ -35,6 +35,8 @@ public RemoveUsersFromUserGroupController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Removes users from a user group.")] + [EndpointDescription("Removes the specified users from the user group identified by the provided Id.")] public async Task Update(CancellationToken cancellationToken, Guid id, ReferenceByIdModel[] userIds) { AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync( diff --git a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/UpdateUserGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/UpdateUserGroupController.cs index 42b4c6b8bcfa..aba1011a89fd 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/UpdateUserGroupController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/UserGroup/UpdateUserGroupController.cs @@ -32,6 +32,8 @@ public UpdateUserGroupController( [MapToApiVersion("1.0")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Updates a user group.")] + [EndpointDescription("Updates a user group identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/AllWebhookController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/AllWebhookController.cs index db11f532f108..42aff2120250 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/AllWebhookController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/AllWebhookController.cs @@ -24,6 +24,8 @@ public AllWebhookController(IWebhookService webhookService, IWebhookPresentation [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of webhooks.")] + [EndpointDescription("Gets a paginated collection of webhooks.")] public async Task>> All( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/ByKeyWebhookController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/ByKeyWebhookController.cs index 53c47b1324e6..d6ad0cad2e44 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/ByKeyWebhookController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/ByKeyWebhookController.cs @@ -25,6 +25,8 @@ public ByKeyWebhookController(IWebhookService webhookService, IWebhookPresentati [MapToApiVersion("1.0")] [ProducesResponseType(typeof(WebhookResponseModel), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Gets a webhook.")] + [EndpointDescription("Gets a webhook identified by the provided Id.")] public async Task ByKey(CancellationToken cancellationToken, Guid id) { IWebhook? webhook = await _webhookService.GetAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/CreateWebhookController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/CreateWebhookController.cs index 705292c82a6f..7e389b24f4ce 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/CreateWebhookController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/CreateWebhookController.cs @@ -28,6 +28,8 @@ public CreateWebhookController( [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] + [EndpointSummary("Creates a new webhook.")] + [EndpointDescription("Creates a new webhook with the configuration specified in the request model.")] public async Task Create( CancellationToken cancellationToken, CreateWebhookRequestModel createWebhookRequestModel) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/DeleteWebhookController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/DeleteWebhookController.cs index a45302464ad3..ff577e3d100b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/DeleteWebhookController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/DeleteWebhookController.cs @@ -26,6 +26,8 @@ public DeleteWebhookController(IWebhookService webhookService, IBackOfficeSecuri [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Deletes a webhook.")] + [EndpointDescription("Deletes a webhook identified by the provided Id.")] public async Task Delete(CancellationToken cancellationToken, Guid id) { Attempt result = await _webhookService.DeleteAsync(id); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/EventsWebhookController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/EventsWebhookController.cs index 1bc6362dd479..67b30c68f8cf 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/EventsWebhookController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/EventsWebhookController.cs @@ -23,6 +23,8 @@ public EventsWebhookController(IUmbracoMapper umbracoMapper, WebhookEventCollect [HttpGet("events")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of webhook events.")] + [EndpointDescription("Gets a paginated collection of available webhook events that can be subscribed to.")] public Task>> All( CancellationToken cancellationToken, int skip = 0, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Item/ItemWebhookItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Item/ItemWebhookItemController.cs index 196a18f17835..4fe5723484d0 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Item/ItemWebhookItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Item/ItemWebhookItemController.cs @@ -23,6 +23,8 @@ public ItemWebhookItemController(IWebhookService webhookService, IUmbracoMapper [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + [EndpointSummary("Gets a collection of webhook items.")] + [EndpointDescription("Gets a collection of webhook items identified by the provided Ids.")] public async Task Item( CancellationToken cancellationToken, [FromQuery(Name = "id")] HashSet ids) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Logs/AllWebhookLogController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Logs/AllWebhookLogController.cs index d9ab9e9963ac..4d66470e8db2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Logs/AllWebhookLogController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Logs/AllWebhookLogController.cs @@ -24,6 +24,8 @@ public AllWebhookLogController(IWebhookLogService webhookLogService, IWebhookPre [HttpGet("logs")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of webhook logs.")] + [EndpointDescription("Gets a paginated collection of webhook logs for all webhooks.")] public async Task Logs(CancellationToken cancellationToken, int skip = 0, int take = 100) { PagedModel logs = await _webhookLogService.Get(skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Logs/WebhookLogController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Logs/WebhookLogController.cs index 9d353b797953..f78856da5852 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Logs/WebhookLogController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/Logs/WebhookLogController.cs @@ -24,6 +24,8 @@ public WebhookLogController(IWebhookLogService webhookLogService, IWebhookPresen [HttpGet("{id:guid}/logs")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + [EndpointSummary("Gets a paginated collection of webhook logs for a specific webhook.")] + [EndpointDescription("Gets a paginated collection of webhook logs for the webhook identified by the provided Id.")] public async Task Logs(CancellationToken cancellationToken, Guid id, int skip = 0, int take = 100) { PagedModel logs = await _webhookLogService.Get(id, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/UpdateWebhookController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/UpdateWebhookController.cs index 8f22721b5e6c..0c03fcfd707c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Webhook/UpdateWebhookController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Webhook/UpdateWebhookController.cs @@ -29,6 +29,8 @@ public UpdateWebhookController( [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status200OK)] + [EndpointSummary("Updates a webhook.")] + [EndpointDescription("Updates a webhook identified by the provided Id with the details from the request model.")] public async Task Update( CancellationToken cancellationToken, Guid id,