diff --git a/docs/schema/V1/swagger.verified.json b/docs/schema/V1/swagger.verified.json index b1cc1cd4d..6eaeb3dfb 100644 --- a/docs/schema/V1/swagger.verified.json +++ b/docs/schema/V1/swagger.verified.json @@ -4846,6 +4846,7 @@ } }, "info": { + "description": "Dialogporten API description for both enduser and serviceowner users, as well as open metadata information for public key material.\u003Cbr\u003E\u003Cbr\u003EAll operations* described within this document require authentication and authorization. Read more at \u003Ca href=\u0022https://docs.altinn.studio/dialogporten/user-guides/authenticating/\u0022\u003Ehttps://docs.altinn.studio/dialogporten/user-guides/authenticating/\u003C/a\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cstrong\u003EAll GET operations* and POST operations may return or contain, respectively, personal identifiable information (national identity numbers and names).\u003C/strong\u003E\u003Cbr\u003E\u003Cbr\u003EFor more information about this product, see \u003Ca href=\u0022https://docs.altinn.studio/dialogporten\u0022\u003Ehttps://docs.altinn.studio/dialogporten\u003C/a\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cem\u003E* Except the metadata APIs", "title": "Dialogporten", "version": "v1" }, @@ -4897,7 +4898,7 @@ }, "/api/v1/enduser/dialogs": { "get": { - "description": "Performs a search for dialogs, returning a paginated list of dialogs. For more information see the documentation (link TBD).\n\n* All date parameters must contain explicit time zone. Example: 2023-10-27T10:00:00Z or 2023-10-27T10:00:00\u002B01:00\n* See \u0022continuationToken\u0022 in the response for how to get the next page of results.\n* hasNextPage will be set to true if there are more items to get.", + "description": "Performs a search for dialogs, returning a paginated list of dialogs. \n\n* All date parameters must contain explicit time zone. Example: 2023-10-27T10:00:00Z or 2023-10-27T10:00:00\u002B01:00\n* See \u0022continuationToken\u0022 in the response for how to get the next page of results.\n* hasNextPage will be set to true if there are more items to get.", "operationId": "V1EndUserDialogsSearch_SearchDialog", "parameters": [ { @@ -5133,7 +5134,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "summary": "Gets a list of dialogs", @@ -5144,7 +5147,7 @@ }, "/api/v1/enduser/dialogs/{dialogId}": { "get": { - "description": "Gets a single dialog aggregate. For more information see the documentation (link TBD).", + "description": "Gets a single dialog aggregate. ", "operationId": "V1EndUserDialogsGet_GetDialog", "parameters": [ { @@ -5187,7 +5190,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "summary": "Gets a single dialog", @@ -5244,7 +5249,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "summary": "Gets a list of dialog activities", @@ -5255,7 +5262,7 @@ }, "/api/v1/enduser/dialogs/{dialogId}/activities/{activityId}": { "get": { - "description": "Gets a single activity belonging to a dialog. For more information see the documentation (link TBD).", + "description": "Gets a single activity belonging to a dialog.", "operationId": "V1EndUserDialogActivitiesGet_GetDialogActivity", "parameters": [ { @@ -5307,7 +5314,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "summary": "Gets a single dialog activity", @@ -5366,7 +5375,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "tags": [ @@ -5376,7 +5387,7 @@ }, "/api/v1/enduser/dialogs/{dialogId}/seenlog": { "get": { - "description": "Gets all seen log records for a dialog. For more information see the documentation (link TBD).", + "description": "Gets all seen log records for a dialog.", "operationId": "V1EndUserDialogSeenLogsSearch_SearchDialogSeenLog", "parameters": [ { @@ -5422,7 +5433,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "summary": "Gets all seen log records for a dialog", @@ -5433,7 +5446,7 @@ }, "/api/v1/enduser/dialogs/{dialogId}/seenlog/{seenLogId}": { "get": { - "description": "Gets a single dialog seen log record. For more information see the documentation (link TBD).", + "description": "Gets a single dialog seen log record.", "operationId": "V1EndUserDialogSeenLogsGet_GetDialogSeenLog", "parameters": [ { @@ -5485,7 +5498,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "summary": "Gets a single dialog seen log record", @@ -5577,7 +5592,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "tags": [ @@ -5636,7 +5653,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "summary": "Gets a list of dialog transmissions", @@ -5647,7 +5666,7 @@ }, "/api/v1/enduser/dialogs/{dialogId}/transmissions/{transmissionId}": { "get": { - "description": "Gets a single transmission belonging to a dialog. For more information see the documentation (link TBD).", + "description": "Gets a single transmission belonging to a dialog.", "operationId": "V1EndUserDialogTransmissionsGet_GetDialogTransmission", "parameters": [ { @@ -5702,7 +5721,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "summary": "Gets a single dialog transmission", @@ -5713,7 +5734,7 @@ }, "/api/v1/enduser/parties": { "get": { - "description": "Gets the list of authorized parties for the end user. For more information see the documentation (link TBD).", + "description": "Gets the list of authorized parties for the end user.", "operationId": "V1EndUserPartiesGet_GetParties", "responses": { "200": { @@ -5738,7 +5759,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten" + ] } ], "summary": "Gets the list of authorized parties for the end user", @@ -5749,7 +5772,7 @@ }, "/api/v1/serviceowner/dialogs": { "get": { - "description": "Performs a search for dialogs, returning a paginated list of dialogs. For more information see the documentation (link TBD).\n\n* All date parameters must contain explicit time zone. Example: 2023-10-27T10:00:00Z or 2023-10-27T10:00:00\u002B01:00\n* See \u0022continuationToken\u0022 in the response for how to get the next page of results.\n* hasNextPage will be set to true if there are more items to get.", + "description": "Performs a search for dialogs, returning a paginated list of dialogs.\n\n* All date parameters must contain explicit time zone. Example: 2023-10-27T10:00:00Z or 2023-10-27T10:00:00\u002B01:00\n* See \u0022continuationToken\u0022 in the response for how to get the next page of results.\n* hasNextPage will be set to true if there are more items to get.", "operationId": "V1ServiceOwnerDialogsSearch_SearchDialog", "parameters": [ { @@ -6013,7 +6036,10 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider", + "digdir:dialogporten.serviceprovider.search" + ] } ], "summary": "Gets a list of dialogs", @@ -6022,7 +6048,7 @@ ] }, "post": { - "description": "The dialog is created with the given configuration. For more information see the documentation (link TBD).\n\nFor detailed information on validation rules, see [the source for CreateDialogCommandValidator](https://github.com/altinn/dialogporten/blob/main/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/Dialogs/Commands/Create/CreateDialogCommandValidator.cs)", + "description": "The dialog is created with the given configuration.\n\nFor detailed information on validation rules, see [the source for CreateDialogCommandValidator](https://github.com/altinn/dialogporten/blob/main/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/Dialogs/Commands/Create/CreateDialogCommandValidator.cs)", "operationId": "V1ServiceOwnerDialogsCreate_Dialog", "requestBody": { "content": { @@ -6091,7 +6117,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Creates a new dialog", @@ -6102,7 +6130,7 @@ }, "/api/v1/serviceowner/dialogs/{dialogId}": { "delete": { - "description": "Deletes a given dialog (soft delete). For more information see the documentation (link TBD).\n\nNote that the dialog will still be available on the single details endpoint, but will have a deleted status. It will not appear on the list endpoint for either service owners nor end users.\nIf end users attempt to access the dialog via the details endpoint, they will get a 410 Gone response.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not deleted by another request in the meantime.", + "description": "Deletes a given dialog (soft delete).\n\nNote that the dialog will still be available on the single details endpoint, but will have a deleted status. It will not appear on the list endpoint for either service owners nor end users.\nIf end users attempt to access the dialog via the details endpoint, they will get a 410 Gone response.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not deleted by another request in the meantime.", "operationId": "V1ServiceOwnerDialogsDelete_Dialog", "parameters": [ { @@ -6179,7 +6207,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Deletes a dialog", @@ -6188,7 +6218,7 @@ ] }, "get": { - "description": "Gets a single dialog aggregate. For more information see the documentation (link TBD).\n\nNote that this operation may return deleted dialogs (see the field \u0060DeletedAt\u0060).", + "description": "Gets a single dialog aggregate.\n\nNote that this operation may return deleted dialogs (see the field \u0060DeletedAt\u0060).", "operationId": "V1ServiceOwnerDialogsGet_GetDialog", "parameters": [ { @@ -6240,7 +6270,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Gets a single dialog", @@ -6361,7 +6393,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Patch a single dialog", @@ -6370,7 +6404,7 @@ ] }, "put": { - "description": "Replaces a given dialog with the supplied model. For more information see the documentation (link TBD).\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.", + "description": "Replaces a given dialog with the supplied model.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.", "operationId": "V1ServiceOwnerDialogsUpdate_Dialog", "parameters": [ { @@ -6468,7 +6502,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Replaces a dialog", @@ -6479,7 +6515,7 @@ }, "/api/v1/serviceowner/dialogs/{dialogId}/actions/purge": { "post": { - "description": "Deletes a given dialog (hard delete). For more information see the documentation (link TBD).\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not deleted by another request in the meantime.", + "description": "Deletes a given dialog (hard delete).\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not deleted by another request in the meantime.", "operationId": "V1ServiceOwnerDialogsPurge_PurgeDialog", "parameters": [ { @@ -6534,7 +6570,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Permanently deletes a dialog", @@ -6545,7 +6583,7 @@ }, "/api/v1/serviceowner/dialogs/{dialogId}/actions/restore": { "post": { - "description": "Restore a dialog. For more information see the documentation (link TBD). ", + "description": "Restore a dialog. ", "operationId": "V1ServiceOwnerDialogsRestore_RestoreDialog", "parameters": [ { @@ -6600,7 +6638,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Restore a dialog", @@ -6677,7 +6717,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Returns a boolean value based on conditions used to determine if a notification is to be sent", @@ -6734,7 +6776,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Gets a list of dialog activities", @@ -6743,7 +6787,7 @@ ] }, "post": { - "description": "The activity is created with the given configuration. For more information see the documentation (link TBD).\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.", + "description": "The activity is created with the given configuration.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.", "operationId": "V1ServiceOwnerDialogActivitiesCreate_DialogActivity", "parameters": [ { @@ -6854,7 +6898,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Adds a activity to a dialogs activity history", @@ -6865,7 +6911,7 @@ }, "/api/v1/serviceowner/dialogs/{dialogId}/activities/{activityId}": { "get": { - "description": "Gets a single activity belonging to a dialog. For more information see the documentation (link TBD).", + "description": "Gets a single activity belonging to a dialog.", "operationId": "V1ServiceOwnerDialogActivitiesGet_GetDialogActivity", "parameters": [ { @@ -6920,7 +6966,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Gets a single dialog activity", @@ -6931,7 +6979,7 @@ }, "/api/v1/serviceowner/dialogs/{dialogId}/seenlog": { "get": { - "description": "Gets all seen log records for a dialog. For more information see the documentation (link TBD).", + "description": "Gets all seen log records for a dialog.", "operationId": "V1ServiceOwnerDialogSeenLogsSearch_SearchDialogSeenLog", "parameters": [ { @@ -6980,7 +7028,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Gets all seen log records for a dialog", @@ -6991,7 +7041,7 @@ }, "/api/v1/serviceowner/dialogs/{dialogId}/seenlog/{seenLogId}": { "get": { - "description": "Gets a single dialog seen log record. For more information see the documentation (link TBD).", + "description": "Gets a single dialog seen log record.", "operationId": "V1ServiceOwnerDialogSeenLogsGet_GetDialogSeenLog", "parameters": [ { @@ -7046,7 +7096,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Gets a single dialog seen log record", @@ -7106,7 +7158,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Gets a list of dialog transmissions", @@ -7115,7 +7169,7 @@ ] }, "post": { - "description": "The transmission is created with the given configuration. For more information see the documentation (link TBD).\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.", + "description": "The transmission is created with the given configuration.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.", "operationId": "V1ServiceOwnerDialogTransmissionsCreate_DialogTransmission", "parameters": [ { @@ -7226,7 +7280,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Adds a transmission to a dialog", @@ -7237,7 +7293,7 @@ }, "/api/v1/serviceowner/dialogs/{dialogId}/transmissions/{transmissionId}": { "get": { - "description": "Gets a single transmission belonging to a dialog. For more information see the documentation (link TBD).", + "description": "Gets a single transmission belonging to a dialog.", "operationId": "V1ServiceOwnerDialogTransmissionsGet_GetDialogTransmission", "parameters": [ { @@ -7292,7 +7348,9 @@ }, "security": [ { - "JWTBearerAuth": [] + "JWTBearerAuth": [ + "digdir:dialogporten.serviceprovider" + ] } ], "summary": "Gets a single dialog transmission", diff --git a/src/Digdir.Domain.Dialogporten.Application/Common/Extensions/FluentValidation/FluentValidationUuiDv7Extensions.cs b/src/Digdir.Domain.Dialogporten.Application/Common/Extensions/FluentValidation/FluentValidationUuiDv7Extensions.cs index f49ec2818..bb87b1f91 100644 --- a/src/Digdir.Domain.Dialogporten.Application/Common/Extensions/FluentValidation/FluentValidationUuiDv7Extensions.cs +++ b/src/Digdir.Domain.Dialogporten.Application/Common/Extensions/FluentValidation/FluentValidationUuiDv7Extensions.cs @@ -21,7 +21,7 @@ public override bool IsValid(ValidationContext context, Guid? value) public override string Name { get; } = "Uuid7Validator"; protected override string GetDefaultMessageTemplate(string errorCode) => - "Invalid {PropertyName}. Expected big endian UUIDv7 format. Got '{PropertyValue}'. See [link TBD]."; + "Invalid {PropertyName}. Expected big endian UUIDv7 format. Got '{PropertyValue}'."; } internal sealed class IsValidUuidV7TimestampValidator : PropertyValidator @@ -46,5 +46,5 @@ public override bool IsValid(ValidationContext context, Guid? value) public override string Name { get; } = "Uuid7TimestampValidator"; protected override string GetDefaultMessageTemplate(string errorCode) - => "Invalid {PropertyName}. Expected the unix timestamp portion of the UUIDv7 to be in the past. Extrapolated '{date}' from '{PropertyValue}'. See [link TBD]."; + => "Invalid {PropertyName}. Expected the unix timestamp portion of the UUIDv7 to be in the past. Extrapolated '{date}' from '{PropertyValue}'."; } diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Common/Constants.cs b/src/Digdir.Domain.Dialogporten.WebApi/Common/Constants.cs index b9b0336e1..af28b56e2 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Common/Constants.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Common/Constants.cs @@ -10,6 +10,7 @@ internal static class Constants internal static class SwaggerSummary { + internal const string GlobalDescription = "Dialogporten API description for both enduser and serviceowner users, as well as open metadata information for public key material.

All operations* described within this document require authentication and authorization. Read more at https://docs.altinn.studio/dialogporten/user-guides/authenticating/

All GET operations* and POST operations may return or contain, respectively, personal identifiable information (national identity numbers and names).

For more information about this product, see https://docs.altinn.studio/dialogporten

* Except the metadata APIs"; internal const string ReturnedResult = "Successfully returned the dialog {0}."; internal const string Created = "The UUID of the created dialog {0}. A relative URL to the newly created activity is set in the \"Location\" header."; internal const string Deleted = "The dialog {0} was deleted successfully."; diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Common/Json/SecurityRequirementsOperationProcessor.cs b/src/Digdir.Domain.Dialogporten.WebApi/Common/Json/SecurityRequirementsOperationProcessor.cs new file mode 100644 index 000000000..eb5a17b6d --- /dev/null +++ b/src/Digdir.Domain.Dialogporten.WebApi/Common/Json/SecurityRequirementsOperationProcessor.cs @@ -0,0 +1,42 @@ +using Digdir.Domain.Dialogporten.Application.Common.Authorization; +using Digdir.Domain.Dialogporten.WebApi.Endpoints.V1.EndUser; +using Digdir.Domain.Dialogporten.WebApi.Endpoints.V1.ServiceOwner; +using NSwag; +using NSwag.Generation.Processors; +using NSwag.Generation.Processors.Contexts; + +namespace Digdir.Domain.Dialogporten.WebApi.Common.Json; + +public sealed class SecurityRequirementsOperationProcessor : IOperationProcessor +{ + private const string JwtBearerAuth = "JWTBearerAuth"; + private const string ServiceOwnerSearchPath = "/api/v1/serviceowner/dialogs"; + + public bool Process(OperationProcessorContext context) + { + var securityRequirement = context.OperationDescription.Operation.Security?.FirstOrDefault(); + if (securityRequirement == null || !securityRequirement.TryGetValue(JwtBearerAuth, out var value)) + { + return true; + } + + securityRequirement[JwtBearerAuth] = + context.OperationDescription.Operation.Tags.FirstOrDefault() switch + { + var tag when string.Equals(tag, ServiceOwnerGroup.RoutePrefix, StringComparison.OrdinalIgnoreCase) + => IsServiceOwnerSearchEndpoint(context.OperationDescription) + ? new[] { AuthorizationScope.ServiceProvider, AuthorizationScope.ServiceProviderSearch } + : new[] { AuthorizationScope.ServiceProvider }, + + var tag when string.Equals(tag, EndUserGroup.RoutePrefix, StringComparison.OrdinalIgnoreCase) + => new[] { AuthorizationScope.EndUser }, + + _ => value + }; + + return true; + } + + private static bool IsServiceOwnerSearchEndpoint(OpenApiOperationDescription description) + => description is { Path: ServiceOwnerSearchPath, Method: OpenApiOperationMethod.Get }; +} diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogActivities/Get/GetDialogActivityEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogActivities/Get/GetDialogActivityEndpointSummary.cs index 8162d6dee..babef3d10 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogActivities/Get/GetDialogActivityEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogActivities/Get/GetDialogActivityEndpointSummary.cs @@ -10,7 +10,7 @@ public GetDialogActivityEndpointSummary() { Summary = "Gets a single dialog activity"; Description = """ - Gets a single activity belonging to a dialog. For more information see the documentation (link TBD). + Gets a single activity belonging to a dialog. """; Responses[StatusCodes.Status200OK] = Constants.SwaggerSummary.ReturnedResult.FormatInvariant("activity"); Responses[StatusCodes.Status401Unauthorized] = Constants.SwaggerSummary.EndUserAuthenticationFailure; diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogSeenLogs/Get/GetDialogSeenLogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogSeenLogs/Get/GetDialogSeenLogEndpointSummary.cs index 65d1e06d1..84c5b9367 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogSeenLogs/Get/GetDialogSeenLogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogSeenLogs/Get/GetDialogSeenLogEndpointSummary.cs @@ -10,7 +10,7 @@ public GetDialogSeenLogEndpointSummary() { Summary = "Gets a single dialog seen log record"; Description = """ - Gets a single dialog seen log record. For more information see the documentation (link TBD). + Gets a single dialog seen log record. """; Responses[StatusCodes.Status200OK] = Constants.SwaggerSummary.ReturnedResult.FormatInvariant("seen log record"); diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogSeenLogs/Search/SearchDialogSeenLogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogSeenLogs/Search/SearchDialogSeenLogEndpointSummary.cs index 59f6274da..87580ba83 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogSeenLogs/Search/SearchDialogSeenLogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogSeenLogs/Search/SearchDialogSeenLogEndpointSummary.cs @@ -11,7 +11,7 @@ public SearchDialogSeenLogEndpointSummary() const string summary = "Gets all seen log records for a dialog"; Summary = summary; Description = $""" - {summary}. For more information see the documentation (link TBD). + {summary}. """; Responses[StatusCodes.Status200OK] = Constants.SwaggerSummary.ReturnedResult.FormatInvariant("seen log records"); diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogTransmissions/Get/GetDialogTransmissionEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogTransmissions/Get/GetDialogTransmissionEndpointSummary.cs index 0872be452..4772dff78 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogTransmissions/Get/GetDialogTransmissionEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/DialogTransmissions/Get/GetDialogTransmissionEndpointSummary.cs @@ -11,7 +11,7 @@ public GetDialogTransmissionEndpointSummary() { Summary = "Gets a single dialog transmission"; Description = """ - Gets a single transmission belonging to a dialog. For more information see the documentation (link TBD). + Gets a single transmission belonging to a dialog. """; Responses[StatusCodes.Status200OK] = Constants.SwaggerSummary.ReturnedResult.FormatInvariant("transmission"); Responses[StatusCodes.Status401Unauthorized] = Constants.SwaggerSummary.EndUserAuthenticationFailure.FormatInvariant(AuthorizationScope.EndUser); diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Dialogs/Get/GetDialogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Dialogs/Get/GetDialogEndpointSummary.cs index 60a8fb0ec..7ddf300e4 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Dialogs/Get/GetDialogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Dialogs/Get/GetDialogEndpointSummary.cs @@ -10,7 +10,7 @@ public GetDialogEndpointSummary() { Summary = "Gets a single dialog"; Description = """ - Gets a single dialog aggregate. For more information see the documentation (link TBD). + Gets a single dialog aggregate. """; Responses[StatusCodes.Status200OK] = diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Dialogs/Search/SearchDialogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Dialogs/Search/SearchDialogEndpointSummary.cs index 3095a51a3..65d33ed3c 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Dialogs/Search/SearchDialogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Dialogs/Search/SearchDialogEndpointSummary.cs @@ -12,7 +12,7 @@ public SearchDialogEndpointSummary() { Summary = "Gets a list of dialogs"; Description = """ - Performs a search for dialogs, returning a paginated list of dialogs. For more information see the documentation (link TBD). + Performs a search for dialogs, returning a paginated list of dialogs. * All date parameters must contain explicit time zone. Example: 2023-10-27T10:00:00Z or 2023-10-27T10:00:00+01:00 * See "continuationToken" in the response for how to get the next page of results. diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Parties/Get/GetPartiesEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Parties/Get/GetPartiesEndpointSummary.cs index 05b95ee72..687572f0b 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Parties/Get/GetPartiesEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/EndUser/Parties/Get/GetPartiesEndpointSummary.cs @@ -8,7 +8,7 @@ public GetPartiesEndpointSummary() { Summary = "Gets the list of authorized parties for the end user"; Description = """ - Gets the list of authorized parties for the end user. For more information see the documentation (link TBD). + Gets the list of authorized parties for the end user. """; Responses[StatusCodes.Status200OK] = "The list of authorized parties for the end user"; diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/Create/CreateDialogActivityEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/Create/CreateDialogActivityEndpointSummary.cs index ef8a5c068..af32050af 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/Create/CreateDialogActivityEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/Create/CreateDialogActivityEndpointSummary.cs @@ -12,7 +12,7 @@ public CreateDialogActivityEndpointSummary() { Summary = "Adds a activity to a dialogs activity history"; Description = $""" - The activity is created with the given configuration. For more information see the documentation (link TBD). + The activity is created with the given configuration. {Constants.SwaggerSummary.OptimisticConcurrencyNote} """; diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/Get/GetDialogActivitySwaggerConfig.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/Get/GetDialogActivitySwaggerConfig.cs index 9ee271952..d2d8e7e81 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/Get/GetDialogActivitySwaggerConfig.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/Get/GetDialogActivitySwaggerConfig.cs @@ -11,7 +11,7 @@ public GetDialogActivityEndpointSummary() { Summary = "Gets a single dialog activity"; Description = """ - Gets a single activity belonging to a dialog. For more information see the documentation (link TBD). + Gets a single activity belonging to a dialog. """; Responses[StatusCodes.Status200OK] = Constants.SwaggerSummary.ReturnedResult.FormatInvariant("activity"); Responses[StatusCodes.Status401Unauthorized] = Constants.SwaggerSummary.ServiceOwnerAuthenticationFailure.FormatInvariant(AuthorizationScope.ServiceProvider); diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogSeenLogs/Get/GetDialogSeenLogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogSeenLogs/Get/GetDialogSeenLogEndpointSummary.cs index 77b281c20..c2d53c923 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogSeenLogs/Get/GetDialogSeenLogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogSeenLogs/Get/GetDialogSeenLogEndpointSummary.cs @@ -10,7 +10,7 @@ public GetDialogSeenLogEndpointSummary() { Summary = "Gets a single dialog seen log record"; Description = """ - Gets a single dialog seen log record. For more information see the documentation (link TBD). + Gets a single dialog seen log record. """; Responses[StatusCodes.Status200OK] = Constants.SwaggerSummary.ReturnedResult.FormatInvariant("seen log record"); diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogSeenLogs/Search/SearchDialogSeenLogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogSeenLogs/Search/SearchDialogSeenLogEndpointSummary.cs index 3517492d5..4c73a3aa7 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogSeenLogs/Search/SearchDialogSeenLogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogSeenLogs/Search/SearchDialogSeenLogEndpointSummary.cs @@ -11,7 +11,7 @@ public SearchDialogSeenLogEndpointSummary() const string summary = "Gets all seen log records for a dialog"; Summary = summary; Description = $""" - {summary}. For more information see the documentation (link TBD). + {summary}. """; Responses[StatusCodes.Status200OK] = Constants.SwaggerSummary.ReturnedResult.FormatInvariant("seen log records"); diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogTransmissions/Create/CreateDialogTransmissionEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogTransmissions/Create/CreateDialogTransmissionEndpointSummary.cs index 4ca4d6675..b2d33a63d 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogTransmissions/Create/CreateDialogTransmissionEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogTransmissions/Create/CreateDialogTransmissionEndpointSummary.cs @@ -12,7 +12,7 @@ public CreateDialogTransmissionEndpointSummary() { Summary = "Adds a transmission to a dialog"; Description = $""" - The transmission is created with the given configuration. For more information see the documentation (link TBD). + The transmission is created with the given configuration. {Constants.SwaggerSummary.OptimisticConcurrencyNote} """; diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogTransmissions/Get/GetDialogTransmissionEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogTransmissions/Get/GetDialogTransmissionEndpointSummary.cs index 09b4ab823..38b00ee63 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogTransmissions/Get/GetDialogTransmissionEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogTransmissions/Get/GetDialogTransmissionEndpointSummary.cs @@ -11,7 +11,7 @@ public GetDialogTransmissionEndpointSummary() { Summary = "Gets a single dialog transmission"; Description = """ - Gets a single transmission belonging to a dialog. For more information see the documentation (link TBD). + Gets a single transmission belonging to a dialog. """; Responses[StatusCodes.Status200OK] = Constants.SwaggerSummary.ReturnedResult.FormatInvariant("transmission"); Responses[StatusCodes.Status401Unauthorized] = Constants.SwaggerSummary.ServiceOwnerAuthenticationFailure.FormatInvariant(AuthorizationScope.ServiceProvider); diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Create/CreateDialogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Create/CreateDialogEndpointSummary.cs index 5314a445c..7368b4f3c 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Create/CreateDialogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Create/CreateDialogEndpointSummary.cs @@ -12,7 +12,7 @@ public CreateDialogEndpointSummary() { Summary = "Creates a new dialog"; Description = """ - The dialog is created with the given configuration. For more information see the documentation (link TBD). + The dialog is created with the given configuration. For detailed information on validation rules, see [the source for CreateDialogCommandValidator](https://github.com/altinn/dialogporten/blob/main/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/Dialogs/Commands/Create/CreateDialogCommandValidator.cs) """; diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Delete/DeleteDialogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Delete/DeleteDialogEndpointSummary.cs index e4dde4047..8ac561ebe 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Delete/DeleteDialogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Delete/DeleteDialogEndpointSummary.cs @@ -12,7 +12,7 @@ public DeleteDialogEndpointSummary() { Summary = "Deletes a dialog"; Description = """ - Deletes a given dialog (soft delete). For more information see the documentation (link TBD). + Deletes a given dialog (soft delete). Note that the dialog will still be available on the single details endpoint, but will have a deleted status. It will not appear on the list endpoint for either service owners nor end users. If end users attempt to access the dialog via the details endpoint, they will get a 410 Gone response. diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Get/GetDialogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Get/GetDialogEndpointSummary.cs index 7baf7f8f7..30d39d529 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Get/GetDialogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Get/GetDialogEndpointSummary.cs @@ -11,7 +11,7 @@ public GetDialogEndpointSummary() { Summary = "Gets a single dialog"; Description = """ - Gets a single dialog aggregate. For more information see the documentation (link TBD). + Gets a single dialog aggregate. Note that this operation may return deleted dialogs (see the field `DeletedAt`). """; diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Purge/PurgeDialogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Purge/PurgeDialogEndpointSummary.cs index f5bdc6edb..4ad5d7313 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Purge/PurgeDialogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Purge/PurgeDialogEndpointSummary.cs @@ -11,7 +11,7 @@ public PurgeDialogEndpointSummary() { Summary = "Permanently deletes a dialog"; Description = """ - Deletes a given dialog (hard delete). For more information see the documentation (link TBD). + Deletes a given dialog (hard delete). Optimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not deleted by another request in the meantime. """; diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Restore/RestoreDialogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Restore/RestoreDialogEndpointSummary.cs index 5a7d301df..6fe1e6014 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Restore/RestoreDialogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Restore/RestoreDialogEndpointSummary.cs @@ -10,7 +10,7 @@ public RestoreDialogEndpointSummary() { Summary = "Restore a dialog"; Description = """ - Restore a dialog. For more information see the documentation (link TBD). + Restore a dialog. """; Responses[StatusCodes.Status204NoContent] = Constants.SwaggerSummary.Restored.FormatInvariant("aggregate"); diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Search/ListDialogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Search/ListDialogEndpointSummary.cs index db99485e4..4709aec83 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Search/ListDialogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Search/ListDialogEndpointSummary.cs @@ -13,7 +13,7 @@ public ListDialogEndpointSummary() { Summary = "Gets a list of dialogs"; Description = """ - Performs a search for dialogs, returning a paginated list of dialogs. For more information see the documentation (link TBD). + Performs a search for dialogs, returning a paginated list of dialogs. * All date parameters must contain explicit time zone. Example: 2023-10-27T10:00:00Z or 2023-10-27T10:00:00+01:00 * See "continuationToken" in the response for how to get the next page of results. diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Update/UpdateDialogEndpointSummary.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Update/UpdateDialogEndpointSummary.cs index 4ef1e3227..9b80408aa 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Update/UpdateDialogEndpointSummary.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/Dialogs/Update/UpdateDialogEndpointSummary.cs @@ -12,7 +12,7 @@ public UpdateDialogEndpointSummary() { Summary = "Replaces a dialog"; Description = $""" - Replaces a given dialog with the supplied model. For more information see the documentation (link TBD). + Replaces a given dialog with the supplied model. {Constants.SwaggerSummary.OptimisticConcurrencyNote} """; diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Program.cs b/src/Digdir.Domain.Dialogporten.WebApi/Program.cs index bd5b8d305..ca2cac4a1 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Program.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Program.cs @@ -136,6 +136,7 @@ static void BuildAndRun(string[] args) document.RemoveSystemStringHeaderTitles(); }; s.Title = "Dialogporten"; + s.Description = Constants.SwaggerSummary.GlobalDescription; s.DocumentName = "v1"; s.Version = "v1"; @@ -150,6 +151,9 @@ static void BuildAndRun(string[] args) // Adding ResponseHeaders for PATCH MVC controller s.OperationProcessors.Add(new ProducesResponseHeaderOperationProcessor()); + + // Adding required scopes to security definitions + s.OperationProcessors.Add(new SecurityRequirementsOperationProcessor()); }; }) .AddControllers(options => options.InputFormatters.Insert(0, JsonPatchInputFormatter.Get())) diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/RefitterInterface.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/RefitterInterface.cs index 31ca63e87..2709f3843 100644 --- a/src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/RefitterInterface.cs +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/RefitterInterface.cs @@ -208,7 +208,7 @@ public partial interface IServiceownerApi /// Adds a transmission to a dialog /// - /// The transmission is created with the given configuration. For more information see the documentation (link TBD). + /// The transmission is created with the given configuration. /// /// Optimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime. /// @@ -262,7 +262,7 @@ public partial interface IServiceownerApi Task> V1ServiceOwnerDialogTransmissionsCreateDialogTransmission(System.Guid dialogId, [Body, AliasAs("CreateTransmissionRequest")] V1ServiceOwnerDialogTransmissionsCreate_TransmissionRequest createTransmissionRequest, [Header("if-Match")] System.Guid? if_Match, CancellationToken cancellationToken = default); /// Gets a single dialog transmission - /// Gets a single transmission belonging to a dialog. For more information see the documentation (link TBD). + /// Gets a single transmission belonging to a dialog. /// /// A representing the instance containing the result: /// @@ -297,7 +297,7 @@ public partial interface IServiceownerApi Task> V1ServiceOwnerDialogTransmissionsGetGetDialogTransmission(System.Guid dialogId, System.Guid transmissionId, CancellationToken cancellationToken = default); /// Gets all seen log records for a dialog - /// Gets all seen log records for a dialog. For more information see the documentation (link TBD). + /// Gets all seen log records for a dialog. /// /// A representing the instance containing the result: /// @@ -332,7 +332,7 @@ public partial interface IServiceownerApi Task>> V1ServiceOwnerDialogSeenLogsSearchSearchDialogSeenLog(System.Guid dialogId, CancellationToken cancellationToken = default); /// Gets a single dialog seen log record - /// Gets a single dialog seen log record. For more information see the documentation (link TBD). + /// Gets a single dialog seen log record. /// /// A representing the instance containing the result: /// @@ -368,7 +368,7 @@ public partial interface IServiceownerApi /// Replaces a dialog /// - /// Replaces a given dialog with the supplied model. For more information see the documentation (link TBD). + /// Replaces a given dialog with the supplied model. /// /// Optimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime. /// @@ -419,7 +419,7 @@ public partial interface IServiceownerApi /// Gets a single dialog /// - /// Gets a single dialog aggregate. For more information see the documentation (link TBD). + /// Gets a single dialog aggregate. /// /// Note that this operation may return deleted dialogs (see the field `DeletedAt`). /// @@ -455,7 +455,7 @@ public partial interface IServiceownerApi /// Deletes a dialog /// - /// Deletes a given dialog (soft delete). For more information see the documentation (link TBD). + /// Deletes a given dialog (soft delete). /// /// Note that the dialog will still be available on the single details endpoint, but will have a deleted status. It will not appear on the list endpoint for either service owners nor end users. /// If end users attempt to access the dialog via the details endpoint, they will get a 410 Gone response. @@ -557,7 +557,7 @@ public partial interface IServiceownerApi /// Gets a list of dialogs /// - /// Performs a search for dialogs, returning a paginated list of dialogs. For more information see the documentation (link TBD). + /// Performs a search for dialogs, returning a paginated list of dialogs. /// /// * All date parameters must contain explicit time zone. Example: 2023-10-27T10:00:00Z or 2023-10-27T10:00:00+01:00 /// * See "continuationToken" in the response for how to get the next page of results. @@ -587,7 +587,7 @@ public partial interface IServiceownerApi /// Creates a new dialog /// - /// The dialog is created with the given configuration. For more information see the documentation (link TBD). + /// The dialog is created with the given configuration. /// /// For detailed information on validation rules, see [the source for CreateDialogCommandValidator](https://github.com/altinn/dialogporten/blob/main/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/Dialogs/Commands/Create/CreateDialogCommandValidator.cs) /// @@ -633,7 +633,7 @@ public partial interface IServiceownerApi Task> V1ServiceOwnerDialogsCreateDialog([Body] V1ServiceOwnerDialogsCommandsCreate_Dialog dto, CancellationToken cancellationToken = default); /// Restore a dialog - /// Restore a dialog. For more information see the documentation (link TBD). + /// Restore a dialog. /// /// A representing the instance containing the result: /// @@ -669,7 +669,7 @@ public partial interface IServiceownerApi /// Permanently deletes a dialog /// - /// Deletes a given dialog (hard delete). For more information see the documentation (link TBD). + /// Deletes a given dialog (hard delete). /// /// Optimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not deleted by another request in the meantime. /// @@ -739,7 +739,7 @@ public partial interface IServiceownerApi /// Adds a activity to a dialogs activity history /// - /// The activity is created with the given configuration. For more information see the documentation (link TBD). + /// The activity is created with the given configuration. /// /// Optimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime. /// @@ -821,7 +821,7 @@ public partial interface IServiceownerApi Task> V1ServiceOwnerDialogActivitiesNotificationConditionNotificationCondition(System.Guid dialogId, [Query] V1ServiceOwnerDialogActivitiesNotificationConditionNotificationConditionQueryParams queryParams, CancellationToken cancellationToken = default); /// Gets a single dialog activity - /// Gets a single activity belonging to a dialog. For more information see the documentation (link TBD). + /// Gets a single activity belonging to a dialog. /// /// A representing the instance containing the result: /// @@ -4401,4 +4401,4 @@ public enum JsonPatchOperations_OperationType #pragma warning restore 3016 #pragma warning restore 8603 #pragma warning restore 8604 -#pragma warning restore 8625 \ No newline at end of file +#pragma warning restore 8625