From d33461f9be7adc7581f8ad7189f8965c68094733 Mon Sep 17 00:00:00 2001 From: Amund Myrbostad Date: Thu, 7 Nov 2024 10:45:07 +0100 Subject: [PATCH] Squash --- .github/workflows/ci-cd-pull-request.yml | 182 +- .github/workflows/dispatch-apps-deploy.yml | 14 + .refitter | 14 + Digdir.Domain.Dialogporten.sln | 24 + ...ry.Dialogporten.WebApiClient.Sample.csproj | 19 + .../Program.cs | 229 + .../appsettings.json | 20 + .../CHANGELOG.md | 1 + .../Config/DialogportenSettings.cs | 19 + .../Config/MaskinportenSettings.cs | 5 + ...r.Library.Dialogporten.WebApiClient.csproj | 32 + .../Extensions/ServiceCollectionExtensions.cs | 83 + .../Features/V1/DialogportenClient.cs | 30 + .../Features/V1/RefitterInterface.verified.cs | 5818 +++++++++++++++++ .../Interfaces/IDialogportenClient.cs | 48 + .../Interfaces/IDialogportenSettings.cs | 29 + .../Interfaces/IIdentifiable.cs | 7 + .../README.md | 196 + .../Services/Base64Url.cs | 45 + .../Services/DialogTokenVerifier.cs | 68 + .../.refitter | 14 + ...rten.WebApiClient.Integration.Tests.csproj | 31 + .../RefitterInterfaceTests.cs | 66 + .../refitter/RefitterInterface.cs | 5818 +++++++++++++++++ 24 files changed, 12721 insertions(+), 91 deletions(-) create mode 100644 .github/workflows/dispatch-apps-deploy.yml create mode 100644 .refitter create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient.Sample/Digdir.Library.Dialogporten.WebApiClient.Sample.csproj create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient.Sample/Program.cs create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient.Sample/appsettings.json create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/CHANGELOG.md create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Config/DialogportenSettings.cs create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Config/MaskinportenSettings.cs create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Extensions/ServiceCollectionExtensions.cs create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/DialogportenClient.cs create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/RefitterInterface.verified.cs create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IDialogportenClient.cs create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IDialogportenSettings.cs create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IIdentifiable.cs create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/README.md create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Services/Base64Url.cs create mode 100644 src/Digdir.Library.Dialogporten.WebApiClient/Services/DialogTokenVerifier.cs create mode 100644 tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/.refitter create mode 100644 tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests.csproj create mode 100644 tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/RefitterInterfaceTests.cs create mode 100644 tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/refitter/RefitterInterface.cs diff --git a/.github/workflows/ci-cd-pull-request.yml b/.github/workflows/ci-cd-pull-request.yml index 67d057123..4bafe4b18 100644 --- a/.github/workflows/ci-cd-pull-request.yml +++ b/.github/workflows/ci-cd-pull-request.yml @@ -6,94 +6,94 @@ on: paths-ignore: - "tests/k6/**" - "CHANGELOG.md" - -jobs: - generate-git-short-sha: - name: Generate git short sha - uses: ./.github/workflows/workflow-generate-git-short-sha.yml - - get-current-version: - name: Get current version - uses: ./.github/workflows/workflow-get-current-version.yml - - check-for-changes: - name: Check for changes - uses: ./.github/workflows/workflow-check-for-changes.yml - - build: - uses: ./.github/workflows/workflow-build-and-test.yml - needs: [check-for-changes] - if: ${{ needs.check-for-changes.outputs.hasBackendChanges == 'true' || needs.check-for-changes.outputs.hasTestChanges == 'true' }} - - build-infrastructure: - uses: ./.github/workflows/workflow-build-infrastructure.yml - needs: [check-for-changes] - if: ${{ always() && needs.check-for-changes.outputs.hasInfraChanges == 'true' }} - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - with: - environment: "test" - - dry-run-deploy-infra: - name: Dry run deploy infrastructure - uses: ./.github/workflows/workflow-deploy-infra.yml - needs: - [ - generate-git-short-sha, - check-for-changes, - get-current-version, - build-infrastructure, - ] - if: ${{ always() && needs.check-for-changes.outputs.hasInfraChanges == 'true' }} - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - AZURE_SOURCE_KEY_VAULT_NAME: ${{ secrets.AZURE_SOURCE_KEY_VAULT_NAME }} - AZURE_SOURCE_KEY_VAULT_SUBSCRIPTION_ID: ${{ secrets.AZURE_SOURCE_KEY_VAULT_SUBSCRIPTION_ID }} - AZURE_SOURCE_KEY_VAULT_RESOURCE_GROUP: ${{ secrets.AZURE_SOURCE_KEY_VAULT_RESOURCE_GROUP }} - AZURE_SOURCE_KEY_VAULT_SSH_JUMPER_SSH_PUBLIC_KEY: ${{ secrets.AZURE_SOURCE_KEY_VAULT_SSH_JUMPER_SSH_PUBLIC_KEY }} - with: - environment: test - region: norwayeast - dryRun: true - version: ${{ needs.get-current-version.outputs.version }}-${{ needs.generate-git-short-sha.outputs.gitShortSha }} - - dry-run-deploy-apps: - name: Dry run deploy apps - needs: - [ - get-current-version, - check-for-changes, - generate-git-short-sha, - dry-run-deploy-infra, - ] - # we want deployment of apps to be dependent on deployment of infrastructure, but if infrastructure is skipped, we still want to deploy the apps - if: ${{ always() && !failure() && !cancelled() && (needs.check-for-changes.outputs.hasBackendChanges == 'true' || needs.check-for-changes.outputs.hasMigrationChanges == 'true') }} - uses: ./.github/workflows/workflow-deploy-apps.yml - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - AZURE_RESOURCE_GROUP_NAME: ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} - AZURE_ENVIRONMENT_KEY_VAULT_NAME: ${{ secrets.AZURE_ENVIRONMENT_KEY_VAULT_NAME }} - AZURE_CONTAINER_APP_ENVIRONMENT_NAME: ${{ secrets.AZURE_CONTAINER_APP_ENVIRONMENT_NAME }} - AZURE_APP_INSIGHTS_CONNECTION_STRING: ${{ secrets.AZURE_APP_INSIGHTS_CONNECTION_STRING }} - AZURE_APP_CONFIGURATION_NAME: ${{ secrets.AZURE_APP_CONFIGURATION_NAME }} - AZURE_SERVICE_BUS_NAMESPACE_NAME: ${{ secrets.AZURE_SERVICE_BUS_NAMESPACE_NAME }} - with: - environment: test - region: norwayeast - version: ${{ needs.get-current-version.outputs.version }}-${{ needs.generate-git-short-sha.outputs.gitShortSha }} - runMigration: ${{ needs.check-for-changes.outputs.hasMigrationChanges == 'true' }} - dryRun: true - - delete-github-deployments: - name: Delete GitHub deployments - uses: ./.github/workflows/workflow-delete-deployments.yml - needs: [dry-run-deploy-apps, dry-run-deploy-infra] - if: ${{ always() && !failure() && !cancelled() }} - with: - gitSha: ${{ github.event.pull_request.head.sha }} \ No newline at end of file +# +#jobs: +# generate-git-short-sha: +# name: Generate git short sha +# uses: ./.github/workflows/workflow-generate-git-short-sha.yml +# +# get-current-version: +# name: Get current version +# uses: ./.github/workflows/workflow-get-current-version.yml +# +# check-for-changes: +# name: Check for changes +# uses: ./.github/workflows/workflow-check-for-changes.yml +# +# build: +# uses: ./.github/workflows/workflow-build-and-test.yml +# needs: [check-for-changes] +# if: ${{ needs.check-for-changes.outputs.hasBackendChanges == 'true' || needs.check-for-changes.outputs.hasTestChanges == 'true' }} +# +# build-infrastructure: +# uses: ./.github/workflows/workflow-build-infrastructure.yml +# needs: [check-for-changes] +# if: ${{ always() && needs.check-for-changes.outputs.hasInfraChanges == 'true' }} +# secrets: +# AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} +# AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} +# AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} +# with: +# environment: "test" +# +# dry-run-deploy-infra: +# name: Dry run deploy infrastructure +# uses: ./.github/workflows/workflow-deploy-infra.yml +# needs: +# [ +# generate-git-short-sha, +# check-for-changes, +# get-current-version, +# build-infrastructure, +# ] +# if: ${{ always() && needs.check-for-changes.outputs.hasInfraChanges == 'true' }} +# secrets: +# AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} +# AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} +# AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} +# AZURE_SOURCE_KEY_VAULT_NAME: ${{ secrets.AZURE_SOURCE_KEY_VAULT_NAME }} +# AZURE_SOURCE_KEY_VAULT_SUBSCRIPTION_ID: ${{ secrets.AZURE_SOURCE_KEY_VAULT_SUBSCRIPTION_ID }} +# AZURE_SOURCE_KEY_VAULT_RESOURCE_GROUP: ${{ secrets.AZURE_SOURCE_KEY_VAULT_RESOURCE_GROUP }} +# AZURE_SOURCE_KEY_VAULT_SSH_JUMPER_SSH_PUBLIC_KEY: ${{ secrets.AZURE_SOURCE_KEY_VAULT_SSH_JUMPER_SSH_PUBLIC_KEY }} +# with: +# environment: test +# region: norwayeast +# dryRun: true +# version: ${{ needs.get-current-version.outputs.version }}-${{ needs.generate-git-short-sha.outputs.gitShortSha }} +# +# dry-run-deploy-apps: +# name: Dry run deploy apps +# needs: +# [ +# get-current-version, +# check-for-changes, +# generate-git-short-sha, +# dry-run-deploy-infra, +# ] +# # we want deployment of apps to be dependent on deployment of infrastructure, but if infrastructure is skipped, we still want to deploy the apps +# if: ${{ always() && !failure() && !cancelled() && (needs.check-for-changes.outputs.hasBackendChanges == 'true' || needs.check-for-changes.outputs.hasMigrationChanges == 'true') }} +# uses: ./.github/workflows/workflow-deploy-apps.yml +# secrets: +# AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} +# AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} +# AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} +# AZURE_RESOURCE_GROUP_NAME: ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} +# AZURE_ENVIRONMENT_KEY_VAULT_NAME: ${{ secrets.AZURE_ENVIRONMENT_KEY_VAULT_NAME }} +# AZURE_CONTAINER_APP_ENVIRONMENT_NAME: ${{ secrets.AZURE_CONTAINER_APP_ENVIRONMENT_NAME }} +# AZURE_APP_INSIGHTS_CONNECTION_STRING: ${{ secrets.AZURE_APP_INSIGHTS_CONNECTION_STRING }} +# AZURE_APP_CONFIGURATION_NAME: ${{ secrets.AZURE_APP_CONFIGURATION_NAME }} +# AZURE_SERVICE_BUS_NAMESPACE_NAME: ${{ secrets.AZURE_SERVICE_BUS_NAMESPACE_NAME }} +# with: +# environment: test +# region: norwayeast +# version: ${{ needs.get-current-version.outputs.version }}-${{ needs.generate-git-short-sha.outputs.gitShortSha }} +# runMigration: ${{ needs.check-for-changes.outputs.hasMigrationChanges == 'true' }} +# dryRun: true +# +# delete-github-deployments: +# name: Delete GitHub deployments +# uses: ./.github/workflows/workflow-delete-deployments.yml +# needs: [dry-run-deploy-apps, dry-run-deploy-infra] +# if: ${{ always() && !failure() && !cancelled() }} +# with: +# gitSha: ${{ github.event.pull_request.head.sha }} diff --git a/.github/workflows/dispatch-apps-deploy.yml b/.github/workflows/dispatch-apps-deploy.yml new file mode 100644 index 000000000..534238e2f --- /dev/null +++ b/.github/workflows/dispatch-apps-deploy.yml @@ -0,0 +1,14 @@ +on: + workflow_dispatch: +jobs: + package-project: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: set PROJECT variable to point to project + run: | + PROJECT=$(find . -name '*Digdir.Library.Dialogporten.WebApiClient.csproj' -printf "%p" -quit) + echo "PROJECT ${PROJECT}" + echo "PROJECT=${PROJECT}" >> $GITHUB_ENV diff --git a/.refitter b/.refitter new file mode 100644 index 000000000..62ef65a3d --- /dev/null +++ b/.refitter @@ -0,0 +1,14 @@ +{ + "openApiPath": "docs/schema/V1/swagger.verified.json", + "namespace": "Digdir.Library.Dialogporten.WebApiClient.Features.V1", + "outputFolder": "src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/", + "operationNameGenerator": "SingleClientFromOperationId", + "multipleInterfaces": "ByTag", + "includeTags": [ + + ], + "useCancellationTokens": true, + "returnIApiResponse": true, + "useDynamicQuerystringParameters": true, + "outputFilename": "RefitterInterface.cs" +} diff --git a/Digdir.Domain.Dialogporten.sln b/Digdir.Domain.Dialogporten.sln index 04d95ab2f..ac06dab11 100644 --- a/Digdir.Domain.Dialogporten.sln +++ b/Digdir.Domain.Dialogporten.sln @@ -67,6 +67,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Digdir.Library.Utils.AspNet EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Digdir.Tool.Dialogporten.SlackNotifier.Tests", "tests\Digdir.Tool.Dialogporten.SlackNotifier.Tests\Digdir.Tool.Dialogporten.SlackNotifier.Tests.csproj", "{F7DF2792-9C83-49F7-B7DD-556E8EC577DB}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebApiClient", "WebApiClient", "{9B809C3A-B169-4599-A2D3-A25E87C510FC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Digdir.Library.Dialogporten.WebApiClient", "src\Digdir.Library.Dialogporten.WebApiClient\Digdir.Library.Dialogporten.WebApiClient.csproj", "{714FBB11-ADC0-44E8-A768-D1A59D641D31}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Digdir.Library.Dialogporten.WebApiClient.Sample", "src\Digdir.Library.Dialogporten.WebApiClient.Sample\Digdir.Library.Dialogporten.WebApiClient.Sample.csproj", "{F8CB7159-4346-4436-9C35-BFCFDDE5DC2B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Digdir.Library.Dialogporten.WebApiClient.Integration.Tests", "tests\Digdir.Library.Dialogporten.WebApiClient.Integration.Tests\Digdir.Library.Dialogporten.WebApiClient.Integration.Tests.csproj", "{7014AC47-0DF5-48C1-BD72-EE587FF3278B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -165,6 +173,18 @@ Global {F7DF2792-9C83-49F7-B7DD-556E8EC577DB}.Debug|Any CPU.Build.0 = Debug|Any CPU {F7DF2792-9C83-49F7-B7DD-556E8EC577DB}.Release|Any CPU.ActiveCfg = Release|Any CPU {F7DF2792-9C83-49F7-B7DD-556E8EC577DB}.Release|Any CPU.Build.0 = Release|Any CPU + {714FBB11-ADC0-44E8-A768-D1A59D641D31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {714FBB11-ADC0-44E8-A768-D1A59D641D31}.Debug|Any CPU.Build.0 = Debug|Any CPU + {714FBB11-ADC0-44E8-A768-D1A59D641D31}.Release|Any CPU.ActiveCfg = Release|Any CPU + {714FBB11-ADC0-44E8-A768-D1A59D641D31}.Release|Any CPU.Build.0 = Release|Any CPU + {F8CB7159-4346-4436-9C35-BFCFDDE5DC2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8CB7159-4346-4436-9C35-BFCFDDE5DC2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8CB7159-4346-4436-9C35-BFCFDDE5DC2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8CB7159-4346-4436-9C35-BFCFDDE5DC2B}.Release|Any CPU.Build.0 = Release|Any CPU + {7014AC47-0DF5-48C1-BD72-EE587FF3278B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7014AC47-0DF5-48C1-BD72-EE587FF3278B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7014AC47-0DF5-48C1-BD72-EE587FF3278B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7014AC47-0DF5-48C1-BD72-EE587FF3278B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -196,6 +216,10 @@ Global {E389C7C8-9610-40AC-86DC-769B1B7DC78E} = {CADB8189-4AA1-4732-844A-C41DBF3EC8B7} {6A485C65-3613-4A49-A16F-2789119F6F38} = {096E9B69-6783-4446-A895-0B6D7729A0D9} {F7DF2792-9C83-49F7-B7DD-556E8EC577DB} = {CADB8189-4AA1-4732-844A-C41DBF3EC8B7} + {9B809C3A-B169-4599-A2D3-A25E87C510FC} = {096E9B69-6783-4446-A895-0B6D7729A0D9} + {714FBB11-ADC0-44E8-A768-D1A59D641D31} = {9B809C3A-B169-4599-A2D3-A25E87C510FC} + {F8CB7159-4346-4436-9C35-BFCFDDE5DC2B} = {9B809C3A-B169-4599-A2D3-A25E87C510FC} + {7014AC47-0DF5-48C1-BD72-EE587FF3278B} = {CADB8189-4AA1-4732-844A-C41DBF3EC8B7} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B2FE67FF-7622-4AFB-AD8E-961B6A39D888} diff --git a/src/Digdir.Library.Dialogporten.WebApiClient.Sample/Digdir.Library.Dialogporten.WebApiClient.Sample.csproj b/src/Digdir.Library.Dialogporten.WebApiClient.Sample/Digdir.Library.Dialogporten.WebApiClient.Sample.csproj new file mode 100644 index 000000000..df2de14ef --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient.Sample/Digdir.Library.Dialogporten.WebApiClient.Sample.csproj @@ -0,0 +1,19 @@ + + + + Exe + enable + enable + + + + + + + + + PreserveNewest + + + + diff --git a/src/Digdir.Library.Dialogporten.WebApiClient.Sample/Program.cs b/src/Digdir.Library.Dialogporten.WebApiClient.Sample/Program.cs new file mode 100644 index 000000000..5355b4bbf --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient.Sample/Program.cs @@ -0,0 +1,229 @@ +using System.Diagnostics; +using Digdir.Library.Dialogporten.WebApiClient.Extensions; +using Digdir.Library.Dialogporten.WebApiClient.Features.V1; +using Digdir.Library.Dialogporten.WebApiClient.Services; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +var configuration = new ConfigurationBuilder() + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .Build(); + +var services = new ServiceCollection(); + +services.AddSingleton(configuration); + +services.AddDialogportenClient(); +services.AddDialogTokenVerifer(); + +var serviceProvider = services.BuildServiceProvider(); + +var dialogportenClient = serviceProvider.GetRequiredService(); +var verifier = serviceProvider.GetRequiredService(); +var token = + "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsImtpZCI6ImRldi1wcmltYXJ5LXNpZ25pbmcta2V5In0.eyJqdGkiOiIzNGZhMGViNS0xZGVmLTQxMDYtYWY4YS0xMjljYjNiNTliNDYiLCJjIjoidXJuOmFsdGlubjpwZXJzb246aWRlbnRpZmllci1ubzowODg5NTY5OTY4NCIsImwiOjMsInAiOiJ1cm46YWx0aW5uOnBlcnNvbjppZGVudGlmaWVyLW5vOjA4ODk1Njk5Njg0IiwicyI6InVybjphbHRpbm46cmVzb3VyY2U6c3VwZXItc2ltcGxlLXNlcnZpY2UiLCJpIjoiMDE5MzI1MzgtMzEzZC03NGI1LTg1ZWMtMWI5MGIxMjYzNWRjIiwiYSI6InJlYWQiLCJpc3MiOiJodHRwczovL2xvY2FsaG9zdDo3MjE0L2FwaS92MSIsImlhdCI6MTczMTU3ODk5OCwibmJmIjoxNzMxNTc4OTk4LCJleHAiOjE3MzE1Nzk1OTh9.fL-rpDsXqwOSVk5zMizLZRaFugaz2VfVNf0CjOxIhSdwrkAhh1UfRu5RcD2OK4ddnRrCuz8iKKJyadkek9UGAg"; +Console.WriteLine(verifier.Verify(token)); +var dict = DialogTokenVerifier.GetDialogTokenClaims(token); +Console.WriteLine(dict); +Console.WriteLine(dict[DialogTokenClaimTypes.Actions]); +Console.WriteLine("== Start Create Dialog =="); +// Create dialog SO +var createDialogCommand = CreateCommand(); +var response = await dialogportenClient.V1ServiceOwnerDialogsCreateDialog(createDialogCommand); +if (response.IsSuccessStatusCode) +{ + Console.WriteLine(response.StatusCode); + Console.WriteLine(response.Content); +} +Console.WriteLine("== End Create Dialog =="); +// Get single dialog SO +Console.WriteLine("==Start Get Single Dialog=="); +Debug.Assert(response.Content != null, "response.Content != null"); +var guid = Guid.Parse(response.Content.Replace("\"", "").Trim()); +// var guid = Guid.Parse("0192b307-f5a5-7450-bee2-04a3515337ff"); +var dialog = dialogportenClient.V1ServiceOwnerDialogsGetGetDialog(guid, null!).Result.Content; +Debug.Assert(dialog != null, nameof(dialog) + " != null"); +Console.WriteLine(dialog.SystemLabel); +Console.WriteLine(dialog.Status); +Console.WriteLine(dialog.Org); +Console.WriteLine(dialog.Progress); +Console.WriteLine($"Deleted at: {dialog.DeletedAt}"); +Console.WriteLine("==End Get Single Dialog=="); + +Console.WriteLine("==Start Search Dialogs=="); +var param = new V1ServiceOwnerDialogsSearchSearchDialogQueryParams() +{ + SystemLabel = [DialogEndUserContextsEntities_SystemLabel.Default] +}; +var result = await dialogportenClient.V1ServiceOwnerDialogsSearchSearchDialog(param); +Console.WriteLine(result.Content!.Items.Count); +Console.WriteLine(result.Content.Items.First().Org); +Console.WriteLine("==End Search Dialogs=="); + +Console.WriteLine("== Start Patch Dialog =="); +List patchDocument = +[ + new() + { + Op = "replace", + OperationType = JsonPatchOperations_OperationType.Replace, + Path = "/progress", + Value = 50 + } +]; +var patchResponse = await dialogportenClient.V1ServiceOwnerDialogsPatchDialog(guid, patchDocument, null); +Console.WriteLine(patchResponse.IsSuccessStatusCode); +Console.WriteLine(patchResponse.StatusCode); +Console.WriteLine("== End Patch Dialog =="); + +Console.WriteLine("== Start Delete Dialog =="); +var deleteResponse = await dialogportenClient.V1ServiceOwnerDialogsDeleteDialog(guid, null); +Console.WriteLine(deleteResponse.IsSuccessStatusCode); +Console.WriteLine("== End Delete Dialog =="); + +Console.WriteLine("==Start Get Single Dialog=="); +// var guid = Guid.Parse("0192b307-f5a5-7450-bee2-04a3515337ff"); +dialog = dialogportenClient.V1ServiceOwnerDialogsGetGetDialog(guid, null!).Result.Content; +Debug.Assert(dialog != null, nameof(dialog) + " != null"); +Console.WriteLine(dialog.SystemLabel); +Console.WriteLine(dialog.Status); +Console.WriteLine(dialog.Org); +Console.WriteLine(dialog.Progress); +Console.WriteLine(dialog.DeletedAt); +Console.WriteLine("==End Get Single Dialog=="); + + +result = await dialogportenClient.V1ServiceOwnerDialogsSearchSearchDialog(param); +Debug.Assert(result != null, nameof(result) + " != null"); +Console.WriteLine(result.Content!.Items.Count); +Console.WriteLine("== Start Purge Dialog == "); +var purgeResponse = await dialogportenClient.V1ServiceOwnerDialogsPurgePurgeDialog(guid, dialog.Revision); +Console.WriteLine($"Purge response status code: {purgeResponse.StatusCode}"); +if (purgeResponse.IsSuccessStatusCode) +{ + var dialogAfterPurge = await dialogportenClient.V1ServiceOwnerDialogsGetGetDialog(guid, null!); + Console.WriteLine(dialogAfterPurge.StatusCode); +} +Console.WriteLine("== End Purge Dialog =="); +var updateCommand = UpdateCommand(); +await dialogportenClient.V1ServiceOwnerDialogsUpdateDialog(guid, updateCommand, null, CancellationToken.None); +return; + +static V1ServiceOwnerDialogsCommandsCreate_DialogCommand CreateCommand() +{ + var createDialogCommand = new V1ServiceOwnerDialogsCommandsCreate_DialogCommand + { + // createDialogCommand.Id = Guid.Parse("01927a6d-40d8-728b-b3da-845b680840d9"); + ServiceResource = "urn:altinn:resource:super-simple-service", + Party = "urn:altinn:person:identifier-no:14886498226", + SystemLabel = DialogEndUserContextsEntities_SystemLabel.Default, + Status = DialogsEntities_DialogStatus.New, + Progress = 2, + Content = new V1ServiceOwnerDialogsCommandsCreate_Content + { + Title = new V1CommonContent_ContentValue + { + Value = + [ + new V1CommonLocalizations_Localization + { + LanguageCode = "nb", + Value = "Hoved" + }, + new V1CommonLocalizations_Localization + { + LanguageCode = "en", + Value = "Main" + } + ], + MediaType = "text/plain" + }, + Summary = new V1CommonContent_ContentValue + { + Value = + [ + new V1CommonLocalizations_Localization + { + LanguageCode = "nb", + Value = "Hoved Summary" + }, + new V1CommonLocalizations_Localization + { + LanguageCode = "en", + Value = "Main Summary" + } + ], + MediaType = "text/plain" + } + + + }, + Transmissions = + [ + new V1ServiceOwnerDialogsCommandsCreate_Transmission + { + Attachments = + [ + new V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachment + { + DisplayName = + [ + new V1CommonLocalizations_Localization + { + LanguageCode = "nb", + Value = "Hoved misson" + } + ], + Urls = + [ + new V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachmentUrl + { + ConsumerType = Attachments_AttachmentUrlConsumerType.Gui, + Url = new Uri("https://digdir.apps.tt02.altinn.no/some-other-url") + } + ] + + } + ], + Content = new V1ServiceOwnerDialogsCommandsCreate_TransmissionContent + { + Summary = new V1CommonContent_ContentValue + { + MediaType = "text/plain", + Value = + [ + new V1CommonLocalizations_Localization + { + LanguageCode = "nb", + Value = "Tranmission summary" + } + ] + }, + Title = new V1CommonContent_ContentValue + { + MediaType = "text/plain", + Value = + [ + new V1CommonLocalizations_Localization + { + LanguageCode = "nb", + Value = "Tranmission Title" + } + ] + } + }, + Sender = new V1ServiceOwnerCommonActors_Actor + { + ActorType = Actors_ActorType.ServiceOwner + }, + Type = DialogsEntitiesTransmissions_DialogTransmissionType.Information + } + ] + }; + return createDialogCommand; +} + +static V1ServiceOwnerDialogsCommandsUpdate_Dialog UpdateCommand() +{ + V1ServiceOwnerDialogsCommandsUpdate_Dialog updateDialog = new(); + return updateDialog; +} diff --git a/src/Digdir.Library.Dialogporten.WebApiClient.Sample/appsettings.json b/src/Digdir.Library.Dialogporten.WebApiClient.Sample/appsettings.json new file mode 100644 index 000000000..b740a0b52 --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient.Sample/appsettings.json @@ -0,0 +1,20 @@ +{ + "DialogportenSettings": { + "Environment": "test", + "Maskinporten": { + "ClientId": "ce3b732a-d4f2-4997-8545-adf8df70fe6c", + "Scope": "digdir:dialogporten.serviceprovider digdir:dialogporten.serviceprovider.search", + "EncodedJwk": "eyJwIjoieTRBZEhlVVBxdFEtSFlOWkR5ci0zS09RT3NQajA5TFh2a2hIUFlTdGFYNThkMndIWUJiVXlDTWdMYWtGTHo4UExKNWtscURsanRoczFtM1dFVGJhSWVuY25TalpjZTh4S1Q2SHh3bTNyaDlydWZ1TWVOZDRqaFptTm9WZmJrcGNXcVh0UDFvb1NPTE5zYUNVUWFUUEVKTXlFd3VhdWxMSzgxRG1SSTlMSmVNIiwia3R5IjoiUlNBIiwicSI6InFmOEQ2Uy1Kd19BdVQ0Q2hjQTlDek9WNk1uTW9mc1VCdTkteHJBcVFDRjh4WWZZOTRxQ1ZjQ3llajlkTlN3eXZUZXg1dThIMzNSaU1LMEFWM2tTQlpJLVZqcXJHLUx6YzNfTUlTTVpSVDJfbzNVQlRWVHpqTkUtSkpMX1hKaXJ6ZVhhQjM1UmFZMjFnWVhKQWg3X2tuR3dpRzF3MGxiT2ozQ0FzdnVwaU1BMCIsImQiOiJLVkF1b1Zhd2paTTgwenRYcUxSZUJGZkJ3M3pxVjdkUGFpaWFONWU0RFp6bW5MYTFMNEZJMTgtanVraHN4UVdqR1NFQnBIdTFrOHRPUWMyWjBsSDVaaTBydERqM0JKeEhxeDNsUGdYMWdTNXNiX1EyeXNfb2FKcklSX012MHBDQUFHX3hpa2lUY2kzTHMyeV9femV4QTdLbG0yalNmYW9Udzdhbml1R3RId1d5dHhCSnJnZ0J2c3loaHZIaUVQcnZaMHZBZldYYWI3QUtkUjc1cEtEaVVHOGdGNTdJN0hrWnpJSk9QYXp3MTU1Skx4TG9HcDVzeTFCVVpBNHRiQmlseWVsdG9ONGZINWd1aUktOXJjTE5zUmVYazJ1c3NFbE9EbVZ2Qmx2ZVVfb1ZRMVYtVDRJRnUzZk1BYVJGUFA2Wlo1akJJX2hkOFJOTTJ3eUp5UHVRWVEiLCJlIjoiQVFBQiIsInVzZSI6InNpZyIsImtpZCI6ImRpYWxvZ3BvcnRlbi1zcC1zZGstdGVzdC0yMDI0MTAxMCIsInFpIjoiQm9VS0RlczQ0UTNpXzNyT3Q4aHRrS2NxWkFNem00Njl2cTZuQnJVcHBTU1Ric3YwalZwN1daRGRRR0Q0bU8yMVJVOEFUbmN3NjFPOUt3YXktOGloX082VWFWbGxZN3NHYlVrQ2NVaG43ZDkzSElLZnhybnhWVE9nNUNMWTBka2Zwa3A1V2pyU1VvMTVKQURsY3BRM0ItRlU0Nm9PTG9ydjJ0SVFQekE4OF93IiwiZHAiOiJ1emVaRWZpN2Fqa3JFREhYekZtTThXWFUtZ3RmM1ctN0pnY082MnpWc1JrNTN4QlcxTE1NZlRlN2tlWk9xOEhDN3hTbGktSm9idnR6WGU3Y295ZW9sTXkzTnlydXFhQVp4VTBPMHpHQWQ4UFdjdHNXeDlITHlrU1hNby1QVlVNNkpmZERCaWFtcXk5bGQ0WTRfdzlscEdVWEMyaUFwLXdsWktaSHdrbG1KR3MiLCJhbGciOiJSUzI1NiIsImRxIjoiVENBcV9DMlJuX0RhakRlcUU2aUIzWWVWNVNtMHBMQk1Tbm10OHNENEp3ZVo4YWgzcGhrTFVxUm9qVGw1SDNhYXVtWl9UUmxiaWVNSVFnWDh4UUFnZ1l2YkNYeG9oZEx0aGt3ckZZdlp0WjBEeHJDYm9Md1hjc0Y3Ukwyejl4LWMwSFBGVFAzLVREQWF6UWlBNVVtRmNwYnAzeDYzWGFLSWFuYnVFc0NiSDdFIiwibiI6Imh5Sks4WnE2Wk8tRjFSSklVWVNCdUpfeG9RWkNNV1EyTVhrSFQ1bVROVVJJZmVWWWpCNWMwMzI0Uk5nc3ZPMEtXX0hUejRRSnptLV9rU1VaZ0h1Z2JoR0F3a1Vqc1lwTlJJRTBvLVNtdEExMlMxZHVCZWx6ajg2LVFrZkFzeFlwblNnSzl5OXpTS1B0YVlzMS1EcEVIb0hVdk9BSDJlNktFTXRaYUZPM0J0Yk9WUURXMENMYi1FY0UyaDBQRlFMMUp3NU8zeDhHcXBZeUFhamNoWnptcWlFbjBaSEd1QTNZZ1NyNGxQV1lkTzBNWHZmRFdyaFBTcnVTS3FodzBHMTlBRUpHOFhoek9xTWxLTUFIbW5ybk9XOHM2cWR2Sy1UQ1BiVGJJOU5XUWdFd2JpUFBBdlU0MUFITzZmTEYxUHZzQ3FhNjZTSGdYMkJzS3pvNVhORjhodyJ9" + } + }, + "Ed25519Keys": { + "Primary": { + "Kid": "", + "PublicComponent": "" + }, + "Secondary": { + "Kid": "", + "PublicComponent": "" + } + } +} diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/CHANGELOG.md b/src/Digdir.Library.Dialogporten.WebApiClient/CHANGELOG.md new file mode 100644 index 000000000..4c04c3be3 --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/CHANGELOG.md @@ -0,0 +1 @@ +hei dette er en test! diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Config/DialogportenSettings.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Config/DialogportenSettings.cs new file mode 100644 index 000000000..b9ebd64bc --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Config/DialogportenSettings.cs @@ -0,0 +1,19 @@ +namespace Digdir.Library.Dialogporten.WebApiClient.Config; + +public class DialogportenSettings +{ + public string Environment { get; set; } = null!; + public MaskinportenSettings Maskinporten { get; set; } = null!; +} + +public record Ed25519Keys +{ + public Ed25519Key Primary { get; set; } = null!; + public Ed25519Key Secondary { get; set; } = null!; +} + +public record Ed25519Key +{ + public string Kid { get; set; } = null!; + public string PublicComponent { get; set; } = null!; +} diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Config/MaskinportenSettings.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Config/MaskinportenSettings.cs new file mode 100644 index 000000000..95c524910 --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Config/MaskinportenSettings.cs @@ -0,0 +1,5 @@ +namespace Digdir.Library.Dialogporten.WebApiClient.Config; + +public sealed record MaskinportenSettings(string ClientId, string EncodedJwk, string Scope) +{ +} diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj b/src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj new file mode 100644 index 000000000..1a1db0fd2 --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj @@ -0,0 +1,32 @@ + + + + enable + enable + README.md + Link to release notes. + LICENSE + Digitaliseringsdirektoratet + digdir;altinn;dialogporten + git + https://github.com/digdir/dialogporten + 1.3 + + + + + + + + + + + + + + + + + + + diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Extensions/ServiceCollectionExtensions.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Extensions/ServiceCollectionExtensions.cs new file mode 100644 index 000000000..65ac3df7e --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Extensions/ServiceCollectionExtensions.cs @@ -0,0 +1,83 @@ +using System.Reflection; +using Altinn.ApiClients.Maskinporten.Extensions; +using Altinn.ApiClients.Maskinporten.Services; +using Digdir.Library.Dialogporten.WebApiClient.Config; +using Digdir.Library.Dialogporten.WebApiClient.Services; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using NSec.Cryptography; +using Refit; +using MaskinportenSettings = Altinn.ApiClients.Maskinporten.Config.MaskinportenSettings; +// using MaskinportenSettings = Altinn.Apiclient.Serviceowner.Config.MaskinportenSettings; + +namespace Digdir.Library.Dialogporten.WebApiClient.Extensions; + +public static class ServiceCollectionExtensions +{ + + public static IServiceCollection AddDialogTokenVerifer(this IServiceCollection services) + { + var provider = services.BuildServiceProvider(); + var dialogportenSettings = provider.GetRequiredService() + .GetSection("Ed25519Keys") + .Get(); + Console.WriteLine(dialogportenSettings); + var keyPair = dialogportenSettings!.Primary; + var kid = keyPair.Kid; + + var publicKey = PublicKey.Import(SignatureAlgorithm.Ed25519, + Base64Url.Decode(keyPair.PublicComponent), KeyBlobFormat.RawPublicKey); + services.AddSingleton(new DialogTokenVerifier(kid, publicKey)); + return services; + } + public static IServiceCollection AddDialogportenClient(this IServiceCollection services) + { + // Bygge en service provider for å få hentet ut settings + var provider = services.BuildServiceProvider(); + var dialogportenSettings = provider.GetRequiredService() + .GetSection("DialogportenSettings") + .Get(); + + // Vi mapper denne til en Maskinporten setting + var maskinportenSettings = new MaskinportenSettings() + { + EncodedJwk = dialogportenSettings!.Maskinporten.EncodedJwk, + ClientId = dialogportenSettings.Maskinporten.ClientId, + // Maskinportenmiljø utleded av Dialogporten-miljø + Environment = dialogportenSettings.Environment == "prod" ? "prod" : "test", + Scope = dialogportenSettings.Maskinporten.Scope, + }; + + // Vi registrerer en maskinporten klient med oppgite settings, som kan brukes som en http message handler + services.RegisterMaskinportenClientDefinition("dialogporten-sp-sdk", maskinportenSettings); + + var baseAddress = string.Empty; + if (dialogportenSettings.Environment == "test") + { + baseAddress = "https://localhost:7214"; + } + // Vi registrerer Refit, og legger til den registrerte maskinporten http message handlern + // Amund: Partial er ikke mulig å finne etter compile time. + var refitClients = Assembly.GetExecutingAssembly().GetTypes() + .Where(x => + x.Namespace!.StartsWith("Digdir.Library.Dialogporten.WebApiClient.Features.V1", StringComparison.InvariantCulture) && + x.IsInterface) + .ToList(); + + foreach (var refitClient in refitClients) + { + services + .AddRefitClient(refitClient) + .ConfigureHttpClient(c => + { + c.BaseAddress = new Uri(baseAddress); + }) + .AddMaskinportenHttpMessageHandler("dialogporten-sp-sdk"); + } + + // Vi registrerer vår egen API-abstraksjon, som selv tar inn og wrapper IDialgportenApi, som nå er "maskinporten-powered" + // services.AddSingleton(); + + return services; + } +} diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/DialogportenClient.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/DialogportenClient.cs new file mode 100644 index 000000000..7cbfbda2b --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/DialogportenClient.cs @@ -0,0 +1,30 @@ +// using Altinn.Apiclient.Serviceowner.Interfaces; +// using Digdir.Library.Dialogporten.WebApiClient.Interfaces; +// using Refit; +// +// namespace Digdir.Library.Dialogporten.WebApiClient.Features.V1; +// +// public sealed class DialogportenClient(IDialogportenApi dialogportenApi) : IDialogportenClient +// { +// public Task> GetDialogList( +// V1ServiceOwnerDialogsSearchSearchDialogQueryParams? param = null, CancellationToken cancellationToken = default) => +// dialogportenApi.V1ServiceOwnerDialogsSearchSearchDialog(param!, cancellationToken); +// +// public Task> GetDialog(Guid dialogId, string? endUserId = null, CancellationToken cancellationToken = default) => +// dialogportenApi.V1ServiceOwnerDialogsGetGetDialog(dialogId, endUserId!, cancellationToken); +// +// public Task> CreateDialog(V1ServiceOwnerDialogsCommandsCreate_DialogCommand createDialogCommand, CancellationToken cancellationToken = default) => +// dialogportenApi.V1ServiceOwnerDialogsCreateDialog(createDialogCommand, cancellationToken); +// +// public Task DeleteDialog(Guid dialogId, Guid? ifMatch = null, CancellationToken cancellationToken = default) => +// dialogportenApi.V1ServiceOwnerDialogsDeleteDialog(dialogId, ifMatch, cancellationToken); +// +// public Task PurgeDialog(Guid dialogId, Guid? ifMatch = null, CancellationToken cancellationToken = default) => +// dialogportenApi.V1ServiceOwnerDialogsPurgePurgeDialog(dialogId, ifMatch, cancellationToken); +// +// public Task PatchDialog(Guid dialogId, IEnumerable PatchDocument, Guid? ifMatch = null, CancellationToken cancellationToken = default) => +// dialogportenApi.V1ServiceOwnerDialogsPatchDialog(dialogId, PatchDocument, ifMatch, cancellationToken); +// +// public Task UpdateDialog(Guid dialogId, V1ServiceOwnerDialogsCommandsUpdate_Dialog updateCommand, Guid? ifMatch, CancellationToken cancellationToken = default) => +// dialogportenApi.V1ServiceOwnerDialogsUpdateDialog(dialogId, updateCommand, ifMatch, cancellationToken); +// } diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/RefitterInterface.verified.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/RefitterInterface.verified.cs new file mode 100644 index 000000000..8b048947a --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Features/V1/RefitterInterface.verified.cs @@ -0,0 +1,5818 @@ +// +// This code was generated by Refitter. +// + + +using Refit; +using System.Collections.Generic; +using System.Text.Json.Serialization; +using System.Threading; +using System.Threading.Tasks; + +#nullable enable annotations + +namespace Digdir.Library.Dialogporten.WebApiClient.Features.V1 +{ + public class V1ServiceOwnerDialogsSearchSearchDialogQueryParams + { + + /// + /// Filter by one or more service resources + /// + [Query(CollectionFormat.Multi)] + public IEnumerable ServiceResource { get; set; } + + /// + /// Filter by one or more owning parties + /// + [Query(CollectionFormat.Multi)] + public IEnumerable Party { get; set; } + + /// + /// Filter by end user id + /// + [Query] + public string EndUserId { get; set; } + + /// + /// Filter by one or more extended statuses + /// + [Query(CollectionFormat.Multi)] + public IEnumerable ExtendedStatus { get; set; } + + /// + /// Filter by external reference + /// + [Query] + public string ExternalReference { get; set; } + + /// + /// Filter by status + /// + [Query(CollectionFormat.Multi)] + public IEnumerable Status { get; set; } + + /// + /// Only return dialogs created after this date + /// + [Query] + public System.DateTimeOffset? CreatedAfter { get; set; } + + /// + /// Only return dialogs created before this date + /// + [Query] + public System.DateTimeOffset? CreatedBefore { get; set; } + + /// + /// Only return dialogs updated after this date + /// + [Query] + public System.DateTimeOffset? UpdatedAfter { get; set; } + + /// + /// Only return dialogs updated before this date + /// + [Query] + public System.DateTimeOffset? UpdatedBefore { get; set; } + + /// + /// Only return dialogs with due date after this date + /// + [Query] + public System.DateTimeOffset? DueAfter { get; set; } + + /// + /// Only return dialogs with due date before this date + /// + [Query] + public System.DateTimeOffset? DueBefore { get; set; } + + /// + /// Only return dialogs with visible-from date after this date + /// + [Query] + public System.DateTimeOffset? VisibleAfter { get; set; } + + /// + /// Only return dialogs with visible-from date before this date + /// + [Query] + public System.DateTimeOffset? VisibleBefore { get; set; } + + /// + /// Filter by process + /// + [Query] + public string Process { get; set; } + + /// + /// Filter by Display state + /// + [Query(CollectionFormat.Multi)] + public IEnumerable SystemLabel { get; set; } + + /// + /// Search string for free text search. Will attempt to fuzzily match in all free text fields in the aggregate + /// + [Query] + public string Search { get; set; } + + /// + /// Limit free text search to texts with this language code, e.g. 'no', 'en'. Culture codes will be normalized to neutral language codes (ISO 639). Default: search all culture codes + /// + [Query] + public string SearchLanguageCode { get; set; } + + [Query] + public OrderSetOfTOrderDefinitionAndTTarget OrderBy { get; set; } + + /// + /// Supply "continuationToken" for the response to get the next page of results, if hasNextPage is true + /// + [Query] + public ContinuationTokenSetOfTOrderDefinitionAndTTarget ContinuationToken { get; set; } + + /// + /// Limit the number of results per page (1-1000, default: 100) + /// + [Query] + public int? Limit { get; set; } + + } + + public class V1ServiceOwnerDialogActivitiesNotificationConditionNotificationConditionQueryParams + { + public V1ServiceOwnerDialogActivitiesNotificationConditionNotificationConditionQueryParams(V1ServiceOwnerDialogActivitiesQueriesNotificationCondition_NotificationConditionType conditionType, DialogsEntitiesActivities_DialogActivityType activityType) + { + + ConditionType = conditionType; + ActivityType = activityType; + } + + [Query] + public V1ServiceOwnerDialogActivitiesQueriesNotificationCondition_NotificationConditionType ConditionType { get; set; } + + [Query] + public DialogsEntitiesActivities_DialogActivityType ActivityType { get; set; } + + [Query] + public System.Guid? TransmissionId { get; set; } + + } + + /// Gets a list of dialogs + [System.CodeDom.Compiler.GeneratedCode("Refitter", "1.4.1.0")] + 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). + /// + /// * 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. + /// * hasNextPage will be set to true if there are more items to get. + /// + /// The dynamic querystring parameter wrapping all others. + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog list. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider.search\". + /// + /// + /// + [Headers("Accept: application/json")] + [Get("/api/v1/serviceowner/dialogs")] + Task> V1ServiceOwnerDialogsSearchSearchDialog([Query] V1ServiceOwnerDialogsSearchSearchDialogQueryParams queryParams, CancellationToken cancellationToken = default); + + /// Creates a new dialog + /// + /// The dialog is created with the given configuration. For more information see the documentation (link TBD). + /// + /// For detailed information on validation rules, see [the source for CreateDialogCommandValidator](https://github.com/digdir/dialogporten/blob/main/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/Dialogs/Commands/Create/CreateDialogCommandValidator.cs) + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 201 + /// The UUID of the created the dialog aggregate. A relative URL to the newly created activity is set in the \"Location\" header. + /// + /// + /// 400 + /// Validation error occured. See problem details for a list of errors. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to create a dialog for the given serviceResource (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 422 + /// Domain error occured. See problem details for a list of errors. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Post("/api/v1/serviceowner/dialogs")] + Task> V1ServiceOwnerDialogsCreateDialog([Body, AliasAs("CreateDialogCommand")] V1ServiceOwnerDialogsCommandsCreate_DialogCommand createDialogCommand, CancellationToken cancellationToken = default); + + /// Deletes a dialog + /// + /// Deletes a given dialog (soft delete). For more information see the documentation (link TBD). + /// + /// 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. + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 204 + /// The dialog aggregate was deleted successfully. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to delete the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// 412 + /// The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied. + /// + /// + /// + [Headers("Accept: application/problem+json")] + [Delete("/api/v1/serviceowner/dialogs/{dialogId}")] + Task V1ServiceOwnerDialogsDeleteDialog(System.Guid dialogId, [Header("if-Match")] System.Guid? if_Match, CancellationToken cancellationToken = default); + + /// Gets a single dialog + /// + /// Gets a single dialog aggregate. For more information see the documentation (link TBD). + /// + /// Note that this operation may return deleted dialogs (see the field `DeletedAt`). + /// + /// Filter by end user id + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog aggregate. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to get the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}")] + Task> V1ServiceOwnerDialogsGetGetDialog(System.Guid dialogId, [Query] string endUserId, CancellationToken cancellationToken = default); + + /// Patch a single dialog + /// + /// Patches a dialog aggregate with a RFC6902 JSON Patch document. The patch document must be a JSON array of RFC6902 operations. + /// See [https://tools.ietf.org/html/rfc6902](https://tools.ietf.org/html/rfc6902) for more information. + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 204 + /// Patch was successfully applied. + /// + /// + /// 400 + /// Validation error occured. See problem details for a list of errors. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \\\"digdir:dialogporten.serviceprovider\\\" + /// + /// + /// 403 + /// Unauthorized to update a dialog for the given serviceResource (not owned by authenticated organization or has additional scope requirements defined in policy) + /// + /// + /// 404 + /// The given dialog ID was not found or is deleted + /// + /// + /// 412 + /// The supplied Revision does not match the current Revision of the dialog + /// + /// + /// 422 + /// Domain error occured. See problem details for a list of errors. + /// + /// + /// + [Headers("Accept: application/json")] + [Patch("/api/v1/serviceowner/dialogs/{dialogId}")] + Task V1ServiceOwnerDialogsPatchDialog(System.Guid dialogId, [Body] IEnumerable patchDocument, [Header("If-Match")] System.Guid? etag, CancellationToken cancellationToken = default); + + /// Replaces a dialog + /// + /// Replaces a given dialog with the supplied model. For more information see the documentation (link TBD). + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 204 + /// The dialog aggregate was updated successfully. + /// + /// + /// 400 + /// Validation error occured. See problem details for a list of errors. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to update the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// 412 + /// The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied. + /// + /// + /// 422 + /// Domain error occured. See problem details for a list of errors. + /// + /// + /// + [Headers("Accept: application/problem+json")] + [Put("/api/v1/serviceowner/dialogs/{dialogId}")] + Task V1ServiceOwnerDialogsUpdateDialog(System.Guid dialogId, [Body] V1ServiceOwnerDialogsCommandsUpdate_Dialog dto, [Header("if-Match")] System.Guid? if_Match, CancellationToken cancellationToken = default); + + /// Permanently deletes a dialog + /// + /// Deletes a given dialog (hard delete). For more information see the documentation (link TBD). + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 204 + /// The dialog aggregate was deleted successfully. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to delete the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// 412 + /// The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied. + /// + /// + /// + [Headers("Accept: application/problem+json")] + [Post("/api/v1/serviceowner/dialogs/{dialogId}/actions/purge")] + Task V1ServiceOwnerDialogsPurgePurgeDialog(System.Guid dialogId, [Header("if-Match")] System.Guid? if_Match, CancellationToken cancellationToken = default); + + /// Returns a boolean value based on conditions used to determine if a notification is to be sent + /// Used by Altinn Notification only. Takes a dialogId and returns a boolean value based on conditions used to determine if a notification is to be sent. + /// The dynamic querystring parameter wrapping all others. + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the notification determination. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"altinn:system/notifications.condition.check\". + /// + /// + /// 403 + /// Forbidden + /// + /// + /// + [Headers("Accept: application/json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/actions/should-send-notification")] + Task> V1ServiceOwnerDialogActivitiesNotificationConditionNotificationCondition(System.Guid dialogId, [Query] V1ServiceOwnerDialogActivitiesNotificationConditionNotificationConditionQueryParams queryParams, CancellationToken cancellationToken = default); + + /// Gets a list of dialog activities + /// Gets the list of activities belonging to a dialog + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog activity list. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to get the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// + [Headers("Accept: application/json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/activities")] + Task>> V1ServiceOwnerDialogActivitiesSearchSearchDialogActivity(System.Guid dialogId, CancellationToken cancellationToken = default); + + /// Adds a activity to a dialogs activity history + /// + /// The activity is created with the given configuration. For more information see the documentation (link TBD). + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 201 + /// The UUID of the created the dialog activity. A relative URL to the newly created activity is set in the \"Location\" header. + /// + /// + /// 400 + /// Validation error occured. See problem details for a list of errors. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to create child entity for the given dialog (dialog not owned by authenticated organization or has additional scope requirements defined in service identifiers policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// 412 + /// The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied. + /// + /// + /// 422 + /// Domain error occured. See problem details for a list of errors. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Post("/api/v1/serviceowner/dialogs/{dialogId}/activities")] + Task> V1ServiceOwnerDialogActivitiesCreateDialogActivity(System.Guid dialogId, [Body, AliasAs("CreateActivityRequest")] V1ServiceOwnerDialogActivitiesCreate_ActivityRequest createActivityRequest, [Header("if-Match")] System.Guid? if_Match, CancellationToken cancellationToken = default); + + /// Gets a single dialog activity + /// Gets a single activity belonging to a dialog. For more information see the documentation (link TBD). + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog activity. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to get child entity for the given dialog (dialog not owned by authenticated organization or has additional scope requirements defined in service identifiers policy). + /// + /// + /// 404 + /// The given dialog ID was not found or was deleted, or the given activity ID was not found. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/activities/{activityId}")] + Task> V1ServiceOwnerDialogActivitiesGetGetDialogActivity(System.Guid dialogId, System.Guid activityId, 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). + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog seen log records. + /// + /// + /// 401 + /// Unauthorized + /// + /// + /// 403 + /// Forbidden + /// + /// + /// 404 + /// Not Found + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/seenlog")] + 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). + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog seen log record. + /// + /// + /// 401 + /// Unauthorized + /// + /// + /// 403 + /// Forbidden + /// + /// + /// 404 + /// Not Found + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/seenlog/{seenLogId}")] + Task> V1ServiceOwnerDialogSeenLogsGetGetDialogSeenLog(System.Guid dialogId, System.Guid seenLogId, CancellationToken cancellationToken = default); + + /// Gets a list of dialog transmissions + /// Gets the list of transmissions belonging to a dialog + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog transmission list. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to get the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/transmissions")] + Task> V1ServiceOwnerDialogTransmissionsSearchSearchDialogTransmission(System.Guid dialogId, CancellationToken cancellationToken = default); + + /// Adds a transmission to a dialog + /// + /// The transmission is created with the given configuration. For more information see the documentation (link TBD). + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 201 + /// The UUID of the created the dialog transmission. A relative URL to the newly created activity is set in the \"Location\" header. + /// + /// + /// 400 + /// Validation error occured. See problem details for a list of errors. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to create child entity for the given dialog (dialog not owned by authenticated organization or has additional scope requirements defined in service identifiers policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// 412 + /// The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied. + /// + /// + /// 422 + /// Domain error occured. See problem details for a list of errors. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Post("/api/v1/serviceowner/dialogs/{dialogId}/transmissions")] + 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). + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog transmission. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to get child entity for the given dialog (dialog not owned by authenticated organization or has additional scope requirements defined in service identifiers policy). + /// + /// + /// 404 + /// The given dialog ID was not found or was deleted, or the given transmission ID was not found. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/transmissions/{transmissionId}")] + Task> V1ServiceOwnerDialogTransmissionsGetGetDialogTransmission(System.Guid dialogId, System.Guid transmissionId, CancellationToken cancellationToken = default); + } + +} + +//---------------------- +// +// Generated using the NSwag toolchain v14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org) +// +//---------------------- + +#pragma warning disable 108 // Disable "CS0108 '{derivedDto}.ToJson()' hides inherited member '{dtoBase}.ToJson()'. Use the new keyword if hiding was intended." +#pragma warning disable 114 // Disable "CS0114 '{derivedDto}.RaisePropertyChanged(String)' hides inherited member 'dtoBase.RaisePropertyChanged(String)'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword." +#pragma warning disable 472 // Disable "CS0472 The result of the expression is always 'false' since a value of type 'Int32' is never equal to 'null' of type 'Int32?' +#pragma warning disable 612 // Disable "CS0612 '...' is obsolete" +#pragma warning disable 649 // Disable "CS0649 Field is never assigned to, and will always have its default value null" +#pragma warning disable 1573 // Disable "CS1573 Parameter '...' has no matching param tag in the XML comment for ... +#pragma warning disable 1591 // Disable "CS1591 Missing XML comment for publicly visible type or member ..." +#pragma warning disable 8073 // Disable "CS8073 The result of the expression is always 'false' since a value of type 'T' is never equal to 'null' of type 'T?'" +#pragma warning disable 3016 // Disable "CS3016 Arrays as attribute arguments is not CLS-compliant" +#pragma warning disable 8603 // Disable "CS8603 Possible null reference return" +#pragma warning disable 8604 // Disable "CS8604 Possible null reference argument for parameter" +#pragma warning disable 8625 // Disable "CS8625 Cannot convert null literal to non-nullable reference type" +#pragma warning disable 8765 // Disable "CS8765 Nullability of type of parameter doesn't match overridden member (possibly because of nullability attributes)." + +namespace Digdir.Library.Dialogporten.WebApiClient.Features.V1 +{ + using System = global::System; + + + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum Actors_ActorType + { + + [System.Runtime.Serialization.EnumMember(Value = @"PartyRepresentative")] + PartyRepresentative = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"ServiceOwner")] + ServiceOwner = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum Attachments_AttachmentUrlConsumerType + { + + [System.Runtime.Serialization.EnumMember(Value = @"Gui")] + Gui = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Api")] + Api = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ContinuationTokenSetOfTOrderDefinitionAndTTarget + { + + private IDictionary _additionalProperties; + + [JsonExtensionData] + public IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DialogEndUserContextsEntities_SystemLabel + { + + [System.Runtime.Serialization.EnumMember(Value = @"Default")] + Default = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Bin")] + Bin = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Archive")] + Archive = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DialogsEntities_DialogStatus + { + + [System.Runtime.Serialization.EnumMember(Value = @"New")] + New = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"InProgress")] + InProgress = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Draft")] + Draft = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Sent")] + Sent = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"RequiresAttention")] + RequiresAttention = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Completed")] + Completed = 5, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DialogsEntitiesActions_DialogGuiActionPriority + { + + [System.Runtime.Serialization.EnumMember(Value = @"Primary")] + Primary = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Secondary")] + Secondary = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Tertiary")] + Tertiary = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DialogsEntitiesActivities_DialogActivityType + { + + [System.Runtime.Serialization.EnumMember(Value = @"DialogCreated")] + DialogCreated = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"DialogClosed")] + DialogClosed = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Information")] + Information = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"TransmissionOpened")] + TransmissionOpened = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"PaymentMade")] + PaymentMade = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"SignatureProvided")] + SignatureProvided = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"DialogOpened")] + DialogOpened = 6, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DialogsEntitiesTransmissions_DialogTransmissionType + { + + [System.Runtime.Serialization.EnumMember(Value = @"Information")] + Information = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Acceptance")] + Acceptance = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Rejection")] + Rejection = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Request")] + Request = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Alert")] + Alert = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Decision")] + Decision = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"Submission")] + Submission = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"Correction")] + Correction = 7, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum Http_HttpVerb + { + + [System.Runtime.Serialization.EnumMember(Value = @"GET")] + GET = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"POST")] + POST = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"PUT")] + PUT = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"PATCH")] + PATCH = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"DELETE")] + DELETE = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"HEAD")] + HEAD = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"OPTIONS")] + OPTIONS = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"TRACE")] + TRACE = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"CONNECT")] + CONNECT = 8, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class JsonPatchOperations_Operation + { + + [JsonPropertyName("from")] + public string From { get; set; } + + [JsonPropertyName("op")] + public string Op { get; set; } + + [JsonPropertyName("operationType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public JsonPatchOperations_OperationType OperationType { get; set; } + + [JsonPropertyName("path")] + public string Path { get; set; } + + [JsonPropertyName("value")] + public object Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum JsonPatchOperations_OperationType + { + + [System.Runtime.Serialization.EnumMember(Value = @"Add")] + Add = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Remove")] + Remove = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Replace")] + Replace = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Move")] + Move = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Copy")] + Copy = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Test")] + Test = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"Invalid")] + Invalid = 6, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class OrderSetOfTOrderDefinitionAndTTarget + { + + private IDictionary _additionalProperties; + + [JsonExtensionData] + public IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PaginatedListOfV1EndUserDialogsQueriesSearch_Dialog + { + /// + /// The continuation token to be used to fetch the next page of items + /// + + [JsonPropertyName("continuationToken")] + public string ContinuationToken { get; set; } + + /// + /// Whether there are more items available that can be fetched by supplying the continuation token + /// + + [JsonPropertyName("hasNextPage")] + public bool HasNextPage { get; set; } + + /// + /// The paginated list of items + /// + + [JsonPropertyName("items")] + public ICollection Items { get; set; } + + /// + /// The current sorting order of the items + /// + + [JsonPropertyName("orderBy")] + public string OrderBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PaginatedListOfV1ServiceOwnerDialogsQueriesSearch_Dialog + { + /// + /// The continuation token to be used to fetch the next page of items + /// + + [JsonPropertyName("continuationToken")] + public string ContinuationToken { get; set; } + + /// + /// Whether there are more items available that can be fetched by supplying the continuation token + /// + + [JsonPropertyName("hasNextPage")] + public bool HasNextPage { get; set; } + + /// + /// The paginated list of items + /// + + [JsonPropertyName("items")] + public ICollection Items { get; set; } + + /// + /// The current sorting order of the items + /// + + [JsonPropertyName("orderBy")] + public string OrderBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProblemDetails + { + + [JsonPropertyName("detail")] + public string Detail { get; set; } + + [JsonPropertyName("errors")] + public ICollection Errors { get; set; } + + [JsonPropertyName("instance")] + public string Instance { get; set; } = "/api/route"; + + [JsonPropertyName("status")] + public int Status { get; set; } = 400; + + [JsonPropertyName("title")] + public string Title { get; set; } = "One or more validation errors occurred."; + + [JsonPropertyName("traceId")] + public string TraceId { get; set; } = "0HMPNHL0JHL76:00000001"; + + [JsonPropertyName("type")] + public string Type { get; set; } = "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1"; + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProblemDetails_Error + { + + [JsonPropertyName("code")] + public string Code { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } = "Error or field name"; + + [JsonPropertyName("reason")] + public string Reason { get; set; } = "Error reason"; + + [JsonPropertyName("severity")] + public string Severity { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1CommonContent_ContentValue + { + /// + /// Media type of the content (plaintext, Markdown). Can also indicate that the content is embeddable. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// A list of localizations for the content. + /// + + [JsonPropertyName("value")] + public ICollection Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1CommonLocalizations_Localization + { + /// + /// The language code of the localization in ISO 639-1 format. + /// + + [JsonPropertyName("languageCode")] + public string LanguageCode { get; set; } + + /// + /// The localized text or URI reference. + /// + + [JsonPropertyName("value")] + public string Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserCommonActors_Actor + { + /// + /// The identifier of the person or organization that sent the transmission. Mutually exclusive with ActorName. + ///
Might be omitted if ActorType is "ServiceOwner". + ///
+ + [JsonPropertyName("actorId")] + public string ActorId { get; set; } + + /// + /// Specifies the name of the entity that sent the transmission. Mutually exclusive with ActorId. If ActorId + ///
is supplied, the name will be automatically populated from the name registries. + ///
+ + [JsonPropertyName("actorName")] + public string ActorName { get; set; } + + /// + /// The type of actor that sent the transmission. + /// + + [JsonPropertyName("actorType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Actors_ActorType ActorType { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogActivitiesQueriesGet_Activity + { + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("performedBy")] + public V1EndUserCommonActors_Actor PerformedBy { get; set; } + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogActivitiesQueriesSearch_Activity + { + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("seenByEndUserIdHash")] + public string SeenByEndUserIdHash { get; set; } + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogLabelAssignmentLogQueriesSearch_LabelAssignmentLog + { + + [JsonPropertyName("action")] + public string Action { get; set; } + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("performedBy")] + public V1EndUserCommonActors_Actor PerformedBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogSeenLogsQueriesGet_SeenLog + { + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + [JsonPropertyName("isViaServiceOwner")] + public bool IsViaServiceOwner { get; set; } + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + [JsonPropertyName("seenBy")] + public V1EndUserCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogSeenLogsQueriesSearch_SeenLog + { + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + [JsonPropertyName("isViaServiceOwner")] + public bool IsViaServiceOwner { get; set; } + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + [JsonPropertyName("seenBy")] + public V1EndUserCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_Content + { + /// + /// Additional information about the dialog, this may contain Markdown. + /// + + [JsonPropertyName("additionalInfo")] + public V1CommonContent_ContentValue AdditionalInfo { get; set; } + + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. + /// + + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + /// + + [JsonPropertyName("mainContentReference")] + public V1CommonContent_ContentValue MainContentReference { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. + /// + + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_Dialog + { + /// + /// An immutable list of activities associated with the dialog. + /// + + [JsonPropertyName("activities")] + public ICollection Activities { get; set; } + + /// + /// The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations. + /// + + [JsonPropertyName("apiActions")] + public ICollection ApiActions { get; set; } + + /// + /// The attachments associated with the dialog (on an aggregate level). + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The dialog unstructured text content. + /// + + [JsonPropertyName("content")] + public V1EndUserDialogsQueriesGet_Content Content { get; set; } + + /// + /// The date and time when the dialog was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The dialog token. May be used (if supported) against external URLs referred to in this dialog's apiActions, + ///
transmissions or attachments. It should also be used for front-channel embeds. + ///
+ + [JsonPropertyName("dialogToken")] + public string DialogToken { get; set; } + + /// + /// The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// The expiration date for the dialog. This is the last date when the dialog is available for the end user. + ///
+ ///
After this date is passed, the dialog will be considered expired and no longer available for the end user in any + ///
API. If not supplied, the dialog will be considered to never expire. This field can be changed by the service + ///
owner after the dialog has been created. + ///
+ + [JsonPropertyName("expiresAt")] + public System.DateTimeOffset? ExpiresAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details on the possible values (if + ///
in use). + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The GUI actions associated with the dialog. Should be used in browser-based interactive frontends. + /// + + [JsonPropertyName("guiActions")] + public ICollection GuiActions { get; set; } + + /// + /// The unique identifier for the dialog in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The service owner code representing the organization (service owner) related to this dialog. + /// + + [JsonPropertyName("org")] + public string Org { get; set; } + + /// + /// The party code representing the organization or person that the dialog belongs to in URN format. + /// + + [JsonPropertyName("party")] + public string Party { get; set; } + + /// + /// Optional preceding process identifier to indicate the business process that preceded the process indicated in the "Process" field. Cannot be set without also "Process" being set. + /// + + [JsonPropertyName("precedingProcess")] + public string PrecedingProcess { get; set; } + + /// + /// Optional process identifier used to indicate a business process this dialog belongs to. + /// + + [JsonPropertyName("process")] + public string Process { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// The unique identifier for the revision in UUIDv4 format. + /// + + [JsonPropertyName("revision")] + public System.Guid Revision { get; set; } + + /// + /// The list of seen log entries for the dialog newer than the dialog ChangedAt date. + /// + + [JsonPropertyName("seenSinceLastUpdate")] + public ICollection SeenSinceLastUpdate { get; set; } + + /// + /// The service identifier for the service that the dialog is related to in URN-format. + ///
This corresponds to a service resource in the Altinn Resource Registry. + ///
+ + [JsonPropertyName("serviceResource")] + public string ServiceResource { get; set; } + + /// + /// The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType). + /// + + [JsonPropertyName("serviceResourceType")] + public string ServiceResourceType { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// Current display state. + /// + + [JsonPropertyName("systemLabel")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel SystemLabel { get; set; } + + /// + /// The immutable list of transmissions associated with the dialog. + /// + + [JsonPropertyName("transmissions")] + public ICollection Transmissions { get; set; } + + /// + /// The date and time when the dialog was last updated. + /// + + [JsonPropertyName("updatedAt")] + public System.DateTimeOffset UpdatedAt { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogActivity + { + /// + /// The date and time when the activity was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// An arbitrary URI/URN with a service-specific activity type. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the activity in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1EndUserCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + /// + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of activity. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogApiAction + { + /// + /// String identifier for the action, corresponding to the "action" attributeId used in the XACML service policy, + ///
which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The endpoints associated with the action. + /// + + [JsonPropertyName("endpoints")] + public ICollection Endpoints { get; set; } + + /// + /// The unique identifier for the action in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// True if the authenticated user is authorized for this action. If not, the action will not be available + ///
and all endpoints will be replaced with a fixed placeholder. + ///
+ + [JsonPropertyName("isAuthorized")] + public bool IsAuthorized { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogApiActionEndpoint + { + /// + /// Boolean indicating if the endpoint is deprecated. Integrators should migrate to endpoints with a higher version. + /// + + [JsonPropertyName("deprecated")] + public bool Deprecated { get; set; } + + /// + /// Link to service provider documentation for the endpoint. Used for service owners to provide documentation for + ///
integrators. Should be a URL to a human-readable page. + ///
+ + [JsonPropertyName("documentationUrl")] + public System.Uri DocumentationUrl { get; set; } + + /// + /// The HTTP method that the endpoint expects for this action. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// The unique identifier for the endpoint in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Link to the request schema for the endpoint. Used by service owners to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("requestSchema")] + public System.Uri RequestSchema { get; set; } + + /// + /// Link to the response schema for the endpoint. Used for service owners to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("responseSchema")] + public System.Uri ResponseSchema { get; set; } + + /// + /// Date and time when the service owner has indicated that endpoint will no longer function. Only set if the endpoint + ///
is deprecated. Dialogporten will not enforce this date. + ///
+ + [JsonPropertyName("sunsetAt")] + public System.DateTimeOffset? SunsetAt { get; set; } + + /// + /// The fully qualified URL of the API endpoint. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to perform the action. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + /// + /// Arbitrary string indicating the version of the endpoint. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("version")] + public string Version { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogAttachmentUrl + { + /// + /// What type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogGuiAction + { + /// + /// The action identifier for the action, corresponding to the "action" attributeId used in the XACML service policy. + /// + + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The HTTP method that the frontend should use when redirecting the user. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// The unique identifier for the action in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Whether the user is authorized to perform the action. + /// + + [JsonPropertyName("isAuthorized")] + public bool IsAuthorized { get; set; } + + /// + /// Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX + ///
for delete actions. + ///
+ + [JsonPropertyName("isDeleteDialogAction")] + public bool IsDeleteDialogAction { get; set; } + + /// + /// Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action + ///
priority. + ///
+ + [JsonPropertyName("priority")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActions_DialogGuiActionPriority Priority { get; set; } + + /// + /// If there should be a prompt asking the user for confirmation before the action is executed, + ///
this field should contain the prompt text. + ///
+ + [JsonPropertyName("prompt")] + public ICollection Prompt { get; set; } + + /// + /// The title of the action, this should be short and in verb form. + /// + + [JsonPropertyName("title")] + public ICollection Title { get; set; } + + /// + /// The fully qualified URL of the action, to which the user will be redirected when the action is triggered. Will be set to + ///
"urn:dialogporten:unauthorized" if the user is not authorized to perform the action. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogSeenLog + { + /// + /// The unique identifier for the seen log entry in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating whether the seen log entry was created by the current end user. + /// + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + /// + /// Flag indicating whether the seen log entry was created via the service owner. + ///
+ ///
This is used when the service owner uses the service owner API to implement its own frontend. + ///
+ + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + /// + /// The timestamp when the dialog revision was seen. + /// + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + /// + /// The actor that saw the dialog revision. + /// + + [JsonPropertyName("seenBy")] + public V1EndUserCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogTransmission + { + /// + /// The transmission-level attachments. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The transmission unstructured text content. + /// + + [JsonPropertyName("content")] + public V1EndUserDialogsQueriesGet_DialogTransmissionContent Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating if the authenticated user is authorized for this transmission. If not, embedded content and + ///
the attachments will not be available. + ///
+ + [JsonPropertyName("isAuthorized")] + public bool IsAuthorized { get; set; } + + /// + /// Reference to any other transmission that this transmission is related to. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The actor that sent the transmission. + /// + + [JsonPropertyName("sender")] + public V1EndUserCommonActors_Actor Sender { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogTransmissionAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogTransmissionAttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogTransmissionContent + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The transmission summary. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The transmission title. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesSearch_Content + { + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. + /// + + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. + /// + + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesSearch_Dialog + { + /// + /// The content of the dialog in search results. + /// + + [JsonPropertyName("content")] + public V1EndUserDialogsQueriesSearch_Content Content { get; set; } + + /// + /// The date and time when the dialog was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The due date for the dialog. This is the last date when the dialog is expected to be completed. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details on the possible values (if + ///
in use). + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The number of attachments in the dialog made available for browser-based frontends. + /// + + [JsonPropertyName("guiAttachmentCount")] + public int? GuiAttachmentCount { get; set; } + + /// + /// The unique identifier for the dialog in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The latest entry in the dialog's activity log. + /// + + [JsonPropertyName("latestActivity")] + public V1EndUserDialogsQueriesSearch_DialogActivity LatestActivity { get; set; } + + /// + /// The service owner code representing the organization (service owner) related to this dialog. + /// + + [JsonPropertyName("org")] + public string Org { get; set; } + + /// + /// The party code representing the organization or person that the dialog belongs to in URN format. + /// + + [JsonPropertyName("party")] + public string Party { get; set; } + + /// + /// Optional preceding process identifier to indicate the business process that preceded the process indicated in the "Process" field. Cannot be set without also "Process" being set. + /// + + [JsonPropertyName("precedingProcess")] + public string PrecedingProcess { get; set; } + + /// + /// Optional process identifier used to indicate a business process this dialog belongs to. + /// + + [JsonPropertyName("process")] + public string Process { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// The list of seen log entries for the dialog newer than the dialog ChangedAt date. + /// + + [JsonPropertyName("seenSinceLastUpdate")] + public ICollection SeenSinceLastUpdate { get; set; } + + /// + /// The service identifier for the service that the dialog is related to in URN-format. + ///
This corresponds to a service resource in the Altinn Resource Registry. + ///
+ + [JsonPropertyName("serviceResource")] + public string ServiceResource { get; set; } + + /// + /// The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType). + /// + + [JsonPropertyName("serviceResourceType")] + public string ServiceResourceType { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// Current display state. + /// + + [JsonPropertyName("systemLabel")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel SystemLabel { get; set; } + + /// + /// The date and time when the dialog was last updated. + /// + + [JsonPropertyName("updatedAt")] + public System.DateTimeOffset UpdatedAt { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesSearch_DialogActivity + { + /// + /// The date and time when the activity was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// An arbitrary string with a service-specific activity type. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the activity in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1EndUserCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + /// + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of activity. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesSearch_DialogSeenLog + { + /// + /// The unique identifier for the seen log entry in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating whether the seen log entry was created by the current end user. + /// + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + /// + /// Flag indicating whether the seen log entry was created via the service owner. + ///
+ ///
This is used when the service owner uses the service owner API to implement its own frontend. + ///
+ + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + /// + /// The timestamp when the dialog revision was seen. + /// + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + /// + /// The actor that saw the dialog revision. + /// + + [JsonPropertyName("seenBy")] + public V1EndUserCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogSystemLabelsCommandsSet_SystemLabelCommand + { + + [JsonPropertyName("ifMatchDialogRevision")] + public System.Guid? IfMatchDialogRevision { get; set; } + + [JsonPropertyName("label")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel Label { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesGet_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesGet_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesGet_Content + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The summary of the content. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the content. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesGet_Transmission + { + /// + /// The attachments associated with the transmission. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The authorization attribute associated with the transmission. + /// + + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The content of the transmission. + /// + + [JsonPropertyName("content")] + public V1EndUserDialogTransmissionsQueriesGet_Content Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The date and time when the transmission was deleted, if applicable. + /// + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + /// + /// The extended type URI for the transmission. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating if the authenticated user is authorized for this transmission. If not, embedded content and + ///
the attachments will not be available. + ///
+ + [JsonPropertyName("isAuthorized")] + public bool IsAuthorized { get; set; } + + /// + /// The unique identifier for the related transmission, if any. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The sender actor information for the transmission. + /// + + [JsonPropertyName("sender")] + public V1EndUserCommonActors_Actor Sender { get; set; } + + /// + /// The type of the transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesSearch_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesSearch_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesSearch_Content + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The summary of the content. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the content. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesSearch_Transmission + { + /// + /// The attachments associated with the transmission. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The authorization attribute associated with the transmission. + /// + + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The content of the transmission. + /// + + [JsonPropertyName("content")] + public V1EndUserDialogTransmissionsQueriesSearch_Content Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The date and time when the transmission was deleted, if applicable. + /// + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + /// + /// The extended type URI for the transmission. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating if the authenticated user is authorized for this transmission. If not, embedded content and + ///
the attachments will not be available. + ///
+ + [JsonPropertyName("isAuthorized")] + public bool IsAuthorized { get; set; } + + /// + /// The unique identifier for the related transmission, if any. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The sender actor information for the transmission. + /// + + [JsonPropertyName("sender")] + public V1EndUserCommonActors_Actor Sender { get; set; } + + /// + /// The type of the transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserPartiesQueriesGet_AuthorizedParty + { + + [JsonPropertyName("hasKeyRole")] + public bool HasKeyRole { get; set; } + + [JsonPropertyName("hasOnlyAccessToSubParties")] + public bool HasOnlyAccessToSubParties { get; set; } + + [JsonPropertyName("isAccessManager")] + public bool IsAccessManager { get; set; } + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + [JsonPropertyName("isDeleted")] + public bool IsDeleted { get; set; } + + [JsonPropertyName("isMainAdministrator")] + public bool IsMainAdministrator { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("party")] + public string Party { get; set; } + + [JsonPropertyName("partyType")] + public string PartyType { get; set; } + + [JsonPropertyName("subParties")] + public ICollection SubParties { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserPartiesQueriesGet_Parties + { + + [JsonPropertyName("authorizedParties")] + public ICollection AuthorizedParties { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerCommonActors_Actor + { + /// + /// The identifier of the person or organization that sent the transmission. Mutually exclusive with ActorName. + ///
Might be omitted if ActorType is "ServiceOwner". + ///
+ + [JsonPropertyName("actorId")] + public string ActorId { get; set; } + + /// + /// Specifies the name of the entity that sent the transmission. Mutually exclusive with ActorId. If ActorId + ///
is supplied, the name will be automatically populated from the name registries. + ///
+ + [JsonPropertyName("actorName")] + public string ActorName { get; set; } + + /// + /// The type of actor that sent the transmission. + /// + + [JsonPropertyName("actorType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Actors_ActorType ActorType { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogActivitiesCreate_ActivityRequest + { + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The UUDIv7 of the action may be provided to support idempotent additions to the list of activities. + ///
If not supplied, a new UUIDv7 will be generated. + ///
+ + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + ///
Must be present in the request body. + ///
+ + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogActivitiesQueriesGet_Activity + { + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogActivitiesQueriesNotificationCondition_NotificationCondition + { + + [JsonPropertyName("sendNotification")] + public bool SendNotification { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum V1ServiceOwnerDialogActivitiesQueriesNotificationCondition_NotificationConditionType + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotExists")] + NotExists = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Exists")] + Exists = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogActivitiesQueriesSearch_Activity + { + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_Activity + { + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// A self-defined UUIDv7 may be provided to support idempotent creation of activities. If not provided, a new UUIDv7 will be generated. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + ///
Must be present in the request body. + ///
+ + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_ApiAction + { + /// + /// String identifier for the action, corresponding to the "action" attributeId used in the XACML service policy, + ///
which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The endpoints associated with the action. + /// + + [JsonPropertyName("endpoints")] + public ICollection Endpoints { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_ApiActionEndpoint + { + /// + /// Boolean indicating if the endpoint is deprecated. + /// + + [JsonPropertyName("deprecated")] + public bool Deprecated { get; set; } + + /// + /// Link to documentation for the endpoint, providing documentation for integrators. Should be a URL to a + ///
human-readable page. + ///
+ + [JsonPropertyName("documentationUrl")] + public System.Uri DocumentationUrl { get; set; } + + /// + /// The HTTP method that the endpoint expects for this action. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// Link to the request schema for the endpoint. Used to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("requestSchema")] + public System.Uri RequestSchema { get; set; } + + /// + /// Link to the response schema for the endpoint. Used to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("responseSchema")] + public System.Uri ResponseSchema { get; set; } + + /// + /// Date and time when the endpoint will no longer function. Only set if the endpoint is deprecated. Dialogporten + ///
will not enforce this date. + ///
+ + [JsonPropertyName("sunsetAt")] + public System.DateTimeOffset? SunsetAt { get; set; } + + /// + /// The fully qualified URL of the API endpoint. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + /// + /// Arbitrary string indicating the version of the endpoint. + /// + + [JsonPropertyName("version")] + public string Version { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_Content + { + /// + /// Additional information about the dialog. + ///
Supported media types: text/plain, text/markdown + ///
+ + [JsonPropertyName("additionalInfo")] + public V1CommonContent_ContentValue AdditionalInfo { get; set; } + + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. + ///
Supported media types: text/plain + ///
+ + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + ///
Supported media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("mainContentReference")] + public V1CommonContent_ContentValue MainContentReference { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. Must be text/plain if supplied. + ///
Supported media types: text/plain + ///
+ + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. + ///
Supported media types: text/plain + ///
+ + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. + ///
Supported media types: text/plain + ///
+ + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_DialogCommand + { + /// + /// An immutable list of activities associated with the dialog. + /// + + [JsonPropertyName("activities")] + public ICollection Activities { get; set; } + + /// + /// The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations. + /// + + [JsonPropertyName("apiActions")] + public ICollection ApiActions { get; set; } + + /// + /// The attachments associated with the dialog (on an aggregate level). + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The dialog unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsCommandsCreate_Content Content { get; set; } + + /// + /// If set, will override the date and time when the dialog is set as created. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// The expiration date for the dialog. This is the last date when the dialog is available for the end user. + ///
+ ///
After this date is passed, the dialog will be considered expired and no longer available for the end user in any + ///
API. If not supplied, the dialog will be considered to never expire. This field can be changed after creation. + ///
+ + [JsonPropertyName("expiresAt")] + public System.DateTimeOffset? ExpiresAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + /// + + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The GUI actions associated with the dialog. Should be used in browser-based interactive frontends. + /// + + [JsonPropertyName("guiActions")] + public ICollection GuiActions { get; set; } + + /// + /// A self-defined UUIDv7 may be provided to support idempotent creation of dialogs. If not provided, a new UUIDv7 will be generated. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The party code representing the organization or person that the dialog belongs to in URN format. + /// + + [JsonPropertyName("party")] + public string Party { get; set; } + + /// + /// Optional preceding process identifier to indicate the business process that preceded the process indicated in the "Process" field. Cannot be set without also "Process" being set. + /// + + [JsonPropertyName("precedingProcess")] + public string PrecedingProcess { get; set; } + + /// + /// Optional process identifier used to indicate a business process this dialog belongs to. + /// + + [JsonPropertyName("process")] + public string Process { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// A list of words (tags) that will be used in dialog search queries. Not visible in end-user DTO. + /// + + [JsonPropertyName("searchTags")] + public ICollection SearchTags { get; set; } + + /// + /// The service identifier for the service that the dialog is related to in URN-format. + ///
This corresponds to a resource in the Altinn Resource Registry, which the authenticated organization + ///
must own, i.e., be listed as the "competent authority" in the Resource Registry entry. + ///
+ + [JsonPropertyName("serviceResource")] + public string ServiceResource { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// Set the system label of the dialog Migration purposes. + /// + + [JsonPropertyName("systemLabel")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel? SystemLabel { get; set; } + + /// + /// The immutable list of transmissions associated with the dialog. + /// + + [JsonPropertyName("transmissions")] + public ICollection Transmissions { get; set; } + + /// + /// If set, will override the date and time when the dialog is set as last updated. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("updatedAt")] + public System.DateTimeOffset UpdatedAt { get; set; } + + /// + /// The timestamp when the dialog should be made visible for authorized end users. If not provided, the dialog will be + ///
immediately available. + ///
+ + [JsonPropertyName("visibleFrom")] + public System.DateTimeOffset? VisibleFrom { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_GuiAction + { + /// + /// The action identifier for the action, corresponding to the "action" attributeId used in the XACML service policy. + /// + + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The HTTP method that the frontend should use when redirecting the user. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb? HttpMethod { get; set; } + + /// + /// Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX + ///
for delete actions. + ///
+ + [JsonPropertyName("isDeleteDialogAction")] + public bool IsDeleteDialogAction { get; set; } + + /// + /// Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action + ///
priority. + ///
+ + [JsonPropertyName("priority")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActions_DialogGuiActionPriority Priority { get; set; } + + /// + /// If there should be a prompt asking the user for confirmation before the action is executed, + ///
this field should contain the prompt text. + ///
+ + [JsonPropertyName("prompt")] + public ICollection Prompt { get; set; } + + /// + /// The title of the action, this should be short and in verb form. Must be text/plain. + /// + + [JsonPropertyName("title")] + public ICollection Title { get; set; } + + /// + /// The fully qualified URL of the action, to which the user will be redirected when the action is triggered. Will be set to + ///
"urn:dialogporten:unauthorized" if the user is not authorized to perform the action. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_SearchTag + { + /// + /// A search tag value. + /// + + [JsonPropertyName("value")] + public string Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_Transmission + { + /// + /// The transmission-level attachments. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The transmission unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsCommandsCreate_TransmissionContent Content { get; set; } + + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// A self-defined UUIDv7 may be provided to support idempotent creation of transmissions. If not provided, a new UUIDv7 will be generated. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// Reference to any other transmission that this transmission is related to. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The actor that sent the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// A self-defined UUIDv7 may be provided to support idempotent creation of transmission attachments. If not provided, a new UUIDv7 will be generated. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_TransmissionContent + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The transmission summary. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The transmission title. Must be text/plain. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_Activity + { + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The UUDIv7 of the action may be provided to support idempotent additions to the list of activities. + ///
If not supplied, a new UUIDv7 will be generated. + ///
+ + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + ///
Must be present in the request body. + ///
+ + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_ApiAction + { + /// + /// String identifier for the action, corresponding to the "action" attributeId used in the XACML service policy, + ///
which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The endpoints associated with the action. + /// + + [JsonPropertyName("endpoints")] + public ICollection Endpoints { get; set; } + + /// + /// A UUIDv7 used for merging existing data, unknown IDs will be ignored as this entity does not support user-defined IDs. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_ApiActionEndpoint + { + /// + /// Boolean indicating if the endpoint is deprecated. + /// + + [JsonPropertyName("deprecated")] + public bool Deprecated { get; set; } + + /// + /// Link to documentation for the endpoint, providing documentation for integrators. Should be a URL to a + ///
human-readable page. + ///
+ + [JsonPropertyName("documentationUrl")] + public System.Uri DocumentationUrl { get; set; } + + /// + /// The HTTP method that the endpoint expects for this action. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// A UUIDv7 used for merging existing data, unknown IDs will be ignored as this entity does not support user-defined IDs. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// Link to the request schema for the endpoint. Used to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("requestSchema")] + public System.Uri RequestSchema { get; set; } + + /// + /// Link to the response schema for the endpoint. Used to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("responseSchema")] + public System.Uri ResponseSchema { get; set; } + + /// + /// Date and time when the endpoint will no longer function. Only set if the endpoint is deprecated. Dialogporten + ///
will not enforce this date. + ///
+ + [JsonPropertyName("sunsetAt")] + public System.DateTimeOffset? SunsetAt { get; set; } + + /// + /// The fully qualified URL of the API endpoint. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + /// + /// Arbitrary string indicating the version of the endpoint. + /// + + [JsonPropertyName("version")] + public string Version { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// A UUIDv7 used for merging existing data, unknown IDs will be ignored as this entity does not support user-defined IDs. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// A UUIDv7 used for merging existing data, unknown IDs will be ignored as this entity does not support user-defined IDs. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_Content + { + /// + /// Additional information about the dialog, this may contain Markdown. + /// + + [JsonPropertyName("additionalInfo")] + public V1CommonContent_ContentValue AdditionalInfo { get; set; } + + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. Must be text/plain. + /// + + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + /// + + [JsonPropertyName("mainContentReference")] + public V1CommonContent_ContentValue MainContentReference { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. Must be text/plain if supplied. + /// + + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. Must be text/plain. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. Must be text/plain. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_Dialog + { + /// + /// An immutable list of activities associated with the dialog. When updating via PUT, any activities added here + ///
will be appended to the existing list of activities. + ///
+ + [JsonPropertyName("activities")] + public ICollection Activities { get; set; } + + /// + /// The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations. + /// + + [JsonPropertyName("apiActions")] + public ICollection ApiActions { get; set; } + + /// + /// The attachments associated with the dialog (on an aggregate level). + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The dialog unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsCommandsUpdate_Content Content { get; set; } + + /// + /// The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// The expiration date for the dialog. This is the last date when the dialog is available for the end user. + ///
+ ///
After this date is passed, the dialog will be considered expired and no longer available for the end user in any + ///
API. If not supplied, the dialog will be considered to never expire. This field can be changed after creation. + ///
+ + [JsonPropertyName("expiresAt")] + public System.DateTimeOffset? ExpiresAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + /// + + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The GUI actions associated with the dialog. Should be used in browser-based interactive frontends. + /// + + [JsonPropertyName("guiActions")] + public ICollection GuiActions { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// A list of words (tags) that will be used in dialog search queries. Not visible in end-user DTO. + /// + + [JsonPropertyName("searchTags")] + public ICollection SearchTags { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// The immutable list of transmissions associated with the dialog. When updating via PUT, any transmissions + ///
added here will be appended to the existing list of transmissions. + ///
+ + [JsonPropertyName("transmissions")] + public ICollection Transmissions { get; set; } + + /// + /// The timestamp when the dialog should be made visible for authorized end users. If not provided, the dialog will be + ///
immediately available. + ///
+ + [JsonPropertyName("visibleFrom")] + public System.DateTimeOffset? VisibleFrom { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_GuiAction + { + /// + /// The action identifier for the action, corresponding to the "action" attributeId used in the XACML service policy. + /// + + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The HTTP method that the frontend should use when redirecting the user. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb? HttpMethod { get; set; } + + /// + /// A UUIDv7 used for merging existing data, unknown IDs will be ignored as this entity does not support user-defined IDs. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX + ///
for delete actions. + ///
+ + [JsonPropertyName("isDeleteDialogAction")] + public bool IsDeleteDialogAction { get; set; } + + /// + /// Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action + ///
priority. + ///
+ + [JsonPropertyName("priority")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActions_DialogGuiActionPriority Priority { get; set; } + + /// + /// If there should be a prompt asking the user for confirmation before the action is executed, + ///
this field should contain the prompt text. + ///
+ + [JsonPropertyName("prompt")] + public ICollection Prompt { get; set; } + + /// + /// The title of the action, this should be short and in verb form. Must be text/plain. + /// + + [JsonPropertyName("title")] + public ICollection Title { get; set; } + + /// + /// The fully qualified URL of the action, to which the user will be redirected when the action is triggered. Will be set to + ///
"urn:dialogporten:unauthorized" if the user is not authorized to perform the action. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_SearchTag + { + /// + /// A search tag value. + /// + + [JsonPropertyName("value")] + public string Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_Transmission + { + /// + /// The transmission-level attachments. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The transmission unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsCommandsUpdate_TransmissionContent Content { get; set; } + + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The UUDIv7 of the action may be provided to support idempotent additions to the list of transmissions. + ///
If not supplied, a new UUIDv7 will be generated. + ///
+ + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// Reference to any other transmission that this transmission is related to. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The actor that sent the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_TransmissionAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// A self-defined UUIDv7 may be provided to support idempotent creation of transmission attachments. If not provided, a new UUIDv7 will be generated. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_TransmissionAttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_TransmissionContent + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The transmission summary. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The transmission title. Must be text/plain. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogSeenLogsQueriesGet_SeenLog + { + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + [JsonPropertyName("seenBy")] + public V1ServiceOwnerCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogSeenLogsQueriesSearch_SeenLog + { + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + [JsonPropertyName("seenBy")] + public V1ServiceOwnerCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_Content + { + /// + /// Additional information about the dialog, this may contain Markdown. + /// + + [JsonPropertyName("additionalInfo")] + public V1CommonContent_ContentValue AdditionalInfo { get; set; } + + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. + /// + + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("mainContentReference")] + public V1CommonContent_ContentValue MainContentReference { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. + /// + + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_Dialog + { + /// + /// An immutable list of activities associated with the dialog. + /// + + [JsonPropertyName("activities")] + public ICollection Activities { get; set; } + + /// + /// The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations. + /// + + [JsonPropertyName("apiActions")] + public ICollection ApiActions { get; set; } + + /// + /// The attachments associated with the dialog (on an aggregate level). + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The dialog unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsQueriesGet_Content Content { get; set; } + + /// + /// The date and time when the dialog was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// If deleted, the date and time when the deletion was performed. + /// + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + /// + /// The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// The expiration date for the dialog. This is the last date when the dialog is available for the end user. + ///
+ ///
After this date is passed, the dialog will be considered expired and no longer available for the end user in any + ///
API. If not supplied, the dialog will be considered to never expire. This field can be changed by the service + ///
owner after the dialog has been created. + ///
+ + [JsonPropertyName("expiresAt")] + public System.DateTimeOffset? ExpiresAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details on the possible values (if + ///
in use). + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The GUI actions associated with the dialog. Should be used in browser-based interactive frontends. + /// + + [JsonPropertyName("guiActions")] + public ICollection GuiActions { get; set; } + + /// + /// The unique identifier for the dialog in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The service owner code representing the organization (service owner) related to this dialog. + /// + + [JsonPropertyName("org")] + public string Org { get; set; } + + /// + /// The party code representing the organization or person that the dialog belongs to in URN format. + /// + + [JsonPropertyName("party")] + public string Party { get; set; } + + /// + /// Optional preceding process identifier to indicate the business process that preceded the process indicated in the "Process" field. Cannot be set without also "Process" being set. + /// + + [JsonPropertyName("precedingProcess")] + public string PrecedingProcess { get; set; } + + /// + /// Optional process identifier used to indicate a business process this dialog belongs to. + /// + + [JsonPropertyName("process")] + public string Process { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// The unique identifier for the revision in UUIDv4 format. + /// + + [JsonPropertyName("revision")] + public System.Guid Revision { get; set; } + + /// + /// The list of words (tags) that will be used in dialog search queries. Not visible in end-user DTO. + /// + + [JsonPropertyName("searchTags")] + public ICollection SearchTags { get; set; } + + /// + /// The list of seen log entries for the dialog newer than the dialog ChangedAt date. + /// + + [JsonPropertyName("seenSinceLastUpdate")] + public ICollection SeenSinceLastUpdate { get; set; } + + /// + /// The service identifier for the service that the dialog is related to in URN-format. + ///
This corresponds to a service resource in the Altinn Resource Registry. + ///
+ + [JsonPropertyName("serviceResource")] + public string ServiceResource { get; set; } + + /// + /// The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType). + /// + + [JsonPropertyName("serviceResourceType")] + public string ServiceResourceType { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// Current display state. + /// + + [JsonPropertyName("systemLabel")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel SystemLabel { get; set; } + + /// + /// The immutable list of transmissions associated with the dialog. + /// + + [JsonPropertyName("transmissions")] + public ICollection Transmissions { get; set; } + + /// + /// The date and time when the dialog was last updated. + /// + + [JsonPropertyName("updatedAt")] + public System.DateTimeOffset UpdatedAt { get; set; } + + /// + /// The timestamp when the dialog will be made visible for authorized end users. + /// + + [JsonPropertyName("visibleFrom")] + public System.DateTimeOffset? VisibleFrom { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogActivity + { + /// + /// The date and time when the activity was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// An arbitrary URI/URN with a service-specific activity type. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the activity in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + /// + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of activity. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogApiAction + { + /// + /// String identifier for the action, corresponding to the "action" attributeId used in the XACML service policy, + ///
which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The endpoints associated with the action. + /// + + [JsonPropertyName("endpoints")] + public ICollection Endpoints { get; set; } + + /// + /// The unique identifier for the action in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// True if the authenticated user (set in the query) is authorized for this action. + /// + + [JsonPropertyName("isAuthorized")] + public bool? IsAuthorized { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogApiActionEndpoint + { + /// + /// Boolean indicating if the endpoint is deprecated. Integrators should migrate to endpoints with a higher version. + /// + + [JsonPropertyName("deprecated")] + public bool Deprecated { get; set; } + + /// + /// Link to service provider documentation for the endpoint. Used for service owners to provide documentation for + ///
integrators. Should be a URL to a human-readable page. + ///
+ + [JsonPropertyName("documentationUrl")] + public System.Uri DocumentationUrl { get; set; } + + /// + /// The HTTP method that the endpoint expects for this action. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// The unique identifier for the endpoint in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Link to the request schema for the endpoint. Used by service owners to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("requestSchema")] + public System.Uri RequestSchema { get; set; } + + /// + /// Link to the response schema for the endpoint. Used for service owners to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("responseSchema")] + public System.Uri ResponseSchema { get; set; } + + /// + /// Date and time when the service owner has indicated that endpoint will no longer function. Only set if the endpoint + ///
is deprecated. Dialogporten will not enforce this date. + ///
+ + [JsonPropertyName("sunsetAt")] + public System.DateTimeOffset? SunsetAt { get; set; } + + /// + /// The fully qualified URL of the API endpoint. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + /// + /// Arbitrary string indicating the version of the endpoint. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("version")] + public string Version { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogAttachmentUrl + { + /// + /// What type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogGuiAction + { + /// + /// The action identifier for the action, corresponding to the "action" attributeId used in the XACML service policy. + /// + + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The HTTP method that the frontend should use when redirecting the user. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// The unique identifier for the action in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Whether the user, if supplied in the query, is authorized to perform the action. + /// + + [JsonPropertyName("isAuthorized")] + public bool? IsAuthorized { get; set; } + + /// + /// Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX + ///
for delete actions. + ///
+ + [JsonPropertyName("isDeleteDialogAction")] + public bool IsDeleteDialogAction { get; set; } + + /// + /// Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action + ///
priority. + ///
+ + [JsonPropertyName("priority")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActions_DialogGuiActionPriority Priority { get; set; } + + /// + /// If there should be a prompt asking the user for confirmation before the action is executed, + ///
this field should contain the prompt text. + ///
+ + [JsonPropertyName("prompt")] + public ICollection Prompt { get; set; } + + /// + /// The title of the action, this should be short and in verb form. + /// + + [JsonPropertyName("title")] + public ICollection Title { get; set; } + + /// + /// The fully qualified URL of the action, to which the user will be redirected when the action is triggered. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogSeenLog + { + /// + /// The unique identifier for the seen log entry in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating whether the seen log entry was created by the current end user, if provided in the query. + /// + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + /// + /// Flag indicating whether the seen log entry was created via the service owner. + ///
+ ///
This is used when the service owner uses the service owner API to implement its own frontend. + ///
+ + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + /// + /// The timestamp when the dialog revision was seen. + /// + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + /// + /// The actor that saw the dialog revision. + /// + + [JsonPropertyName("seenBy")] + public V1ServiceOwnerCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogTransmission + { + /// + /// The transmission-level attachments. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The transmission unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsQueriesGet_DialogTransmissionContent Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating if the authenticated user supplied in the query is authorized for this transmission. + /// + + [JsonPropertyName("isAuthorized")] + public bool? IsAuthorized { get; set; } + + /// + /// Reference to any other transmission that this transmission is related to. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The actor that sent the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogTransmissionAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogTransmissionAttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogTransmissionContent + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The transmission summary. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The transmission title. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_SearchTag + { + /// + /// A search tag value. + /// + + [JsonPropertyName("value")] + public string Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesSearch_Content + { + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. + /// + + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. + /// + + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesSearch_Dialog + { + /// + /// The content of the dialog in search results. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsQueriesSearch_Content Content { get; set; } + + /// + /// The date and time when the dialog was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The due date for the dialog. This is the last date when the dialog is expected to be completed. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details on the possible values (if + ///
in use). + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The number of attachments in the dialog made available for browser-based frontends. + /// + + [JsonPropertyName("guiAttachmentCount")] + public int? GuiAttachmentCount { get; set; } + + /// + /// The unique identifier for the dialog in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The latest entry in the dialog's activity log. + /// + + [JsonPropertyName("latestActivity")] + public V1ServiceOwnerDialogsQueriesSearch_DialogActivity LatestActivity { get; set; } + + /// + /// The service owner code representing the organization (service owner) related to this dialog. + /// + + [JsonPropertyName("org")] + public string Org { get; set; } + + /// + /// The party code representing the organization or person that the dialog belongs to in URN format. + /// + + [JsonPropertyName("party")] + public string Party { get; set; } + + /// + /// Optional preceding process identifier to indicate the business process that preceded the process indicated in the "Process" field. Cannot be set without also "Process" being set. + /// + + [JsonPropertyName("precedingProcess")] + public string PrecedingProcess { get; set; } + + /// + /// Optional process identifier used to indicate a business process this dialog belongs to. + /// + + [JsonPropertyName("process")] + public string Process { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// The unique identifier for the revision in UUIDv4 format. + /// + + [JsonPropertyName("revision")] + public System.Guid Revision { get; set; } + + /// + /// The list of seen log entries for the dialog newer than the dialog ChangedAt date. + /// + + [JsonPropertyName("seenSinceLastUpdate")] + public ICollection SeenSinceLastUpdate { get; set; } + + /// + /// The service identifier for the service that the dialog is related to in URN-format. + ///
This corresponds to a service resource in the Altinn Resource Registry. + ///
+ + [JsonPropertyName("serviceResource")] + public string ServiceResource { get; set; } + + /// + /// The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType). + /// + + [JsonPropertyName("serviceResourceType")] + public string ServiceResourceType { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// Current display state. + /// + + [JsonPropertyName("systemLabel")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel SystemLabel { get; set; } + + /// + /// The date and time when the dialog was last updated. + /// + + [JsonPropertyName("updatedAt")] + public System.DateTimeOffset UpdatedAt { get; set; } + + /// + /// The timestamp when the dialog will be made visible for authorized end users. + /// + + [JsonPropertyName("visibleFrom")] + public System.DateTimeOffset? VisibleFrom { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesSearch_DialogActivity + { + /// + /// The date and time when the activity was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// An arbitrary string with a service-specific activity type. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the activity in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + /// + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of activity. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesSearch_DialogSeenLog + { + /// + /// The unique identifier for the seen log entry in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating whether the seen log entry was created by the end user supplied in the query. + /// + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + /// + /// Flag indicating whether the seen log entry was created via the service owner. + ///
+ ///
This is used when the service owner uses the service owner API to implement its own frontend. + ///
+ + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + /// + /// The timestamp when the dialog revision was seen. + /// + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + /// + /// The actor that saw the dialog revision. + /// + + [JsonPropertyName("seenBy")] + public V1ServiceOwnerCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsUpdate_DialogRequest + { + + [JsonPropertyName("dto")] + public V1ServiceOwnerDialogsCommandsUpdate_Dialog Dto { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsCreate_TransmissionRequest + { + /// + /// The transmission-level attachments. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The transmission unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsCommandsUpdate_TransmissionContent Content { get; set; } + + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The UUDIv7 of the action may be provided to support idempotent additions to the list of transmissions. + ///
If not supplied, a new UUIDv7 will be generated. + ///
+ + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// Reference to any other transmission that this transmission is related to. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The actor that sent the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesGet_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesGet_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesGet_Content + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The summary of the content. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the content. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesGet_Transmission + { + /// + /// The attachments associated with the transmission. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The authorization attribute associated with the transmission. + /// + + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The content of the transmission. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogTransmissionsQueriesGet_Content Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The date and time when the transmission was deleted, if applicable. + /// + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + /// + /// The extended type URI for the transmission. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The unique identifier for the related transmission, if any. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The sender actor information for the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of the transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesSearch_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesSearch_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesSearch_Content + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + /// + + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The summary of the content. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the content. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesSearch_Transmission + { + /// + /// The attachments associated with the transmission. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The authorization attribute associated with the transmission. + /// + + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The content of the transmission. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogTransmissionsQueriesSearch_Content Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The date and time when the transmission was deleted, if applicable. + /// + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + /// + /// The extended type URI for the transmission. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The unique identifier for the related transmission, if any. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The sender actor information for the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of the transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1WellKnownJwksQueriesGet_GetJwks + { + + [JsonPropertyName("keys")] + public ICollection Keys { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1WellKnownJwksQueriesGet_Jwk + { + + [JsonPropertyName("alg")] + public string Alg { get; set; } + + [JsonPropertyName("crv")] + public string Crv { get; set; } + + [JsonPropertyName("kid")] + public string Kid { get; set; } + + [JsonPropertyName("kty")] + public string Kty { get; set; } + + [JsonPropertyName("use")] + public string Use { get; set; } + + [JsonPropertyName("x")] + public string X { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1WellKnownOauthAuthorizationServerQueriesGet_GetOauthAuthorizationServer + { + + [JsonPropertyName("issuer")] + public string Issuer { get; set; } + + [JsonPropertyName("jwks_uri")] + public string Jwks_uri { get; set; } + + } + + +} + +#pragma warning restore 108 +#pragma warning restore 114 +#pragma warning restore 472 +#pragma warning restore 612 +#pragma warning restore 1573 +#pragma warning restore 1591 +#pragma warning restore 8073 +#pragma warning restore 3016 +#pragma warning restore 8603 +#pragma warning restore 8604 +#pragma warning restore 8625 diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IDialogportenClient.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IDialogportenClient.cs new file mode 100644 index 000000000..ae355fb40 --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IDialogportenClient.cs @@ -0,0 +1,48 @@ +// using Altinn.Apiclient.Serviceowner.Interfaces; +// using Refit; +// +// namespace Digdir.Library.Dialogporten.WebApiClient.Interfaces; +// +// public interface IDialogportenClient +// { +// // Amund: Dette er et "lag" over refitter, har fjernes kindof versjon fra metodekallet og blir styrt av parameter. +// // Men om den er bare der for å rydde i metodenavn så er den unødvendig siden vi ikke rydder i typenavn? +// // Hvorfor ikke bare brukte refit direkte? Da er denne "SDKen" ekstremt liten. og egt bare en extension til ServiceCollection. +// // Det blir da ikke mye vedlikehold i forhold til at den har men funksjonalitet og abstraksjon +// // men er det da vits å ha refit her? og heller bare lage en dialogporten extension? +// // Amund: føler at jeg mister hvorfor denne skal lages, og hvilket behov den egt skal dekke. Im losing the plot. +// Task> GetDialogList( +// V1ServiceOwnerDialogsSearchSearchDialogQueryParams? param = null, +// CancellationToken cancellationToken = default); +// +// Task> GetDialog( +// Guid dialogId, +// string? endUserId = null, +// CancellationToken cancellationToken = default); +// +// Task> CreateDialog( +// V1ServiceOwnerDialogsCommandsCreate_DialogCommand createDialogCommand, +// CancellationToken cancellationToken = default); +// +// Task DeleteDialog( +// Guid dialogId, +// Guid? ifMatch, +// CancellationToken cancellationToken = default); +// +// Task PurgeDialog( +// Guid dialogId, +// Guid? ifMatch, +// CancellationToken cancellationToken = default); +// +// Task PatchDialog( +// Guid dialogId, +// IEnumerable PatchDocument, +// Guid? ifMatch, +// CancellationToken cancellationToken = default); +// +// Task UpdateDialog( +// Guid dialogId, +// V1ServiceOwnerDialogsCommandsUpdate_Dialog updateCommand, +// Guid? ifMatch, +// CancellationToken cancellationToken = default); +// } diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IDialogportenSettings.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IDialogportenSettings.cs new file mode 100644 index 000000000..7cdb8651f --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IDialogportenSettings.cs @@ -0,0 +1,29 @@ +namespace Digdir.Library.Dialogporten.WebApiClient.Interfaces; + +public interface IDialogportenSettings +{ + /// + /// ClientID to use + /// + string ClientId { get; set; } + + /// + /// Scopes to request. Must be provisioned on the supplied client. + /// + string Scope { get; set; } + + /// + /// Resource claim for assertion. This will be the `aud`-claim in the received access token + /// + string Resource { get; set; } + + /// + /// The Maskinporten environment. Valid values are ver1, ver2, test or prod + /// + string Environment { get; set; } + + /// + /// Base64 Encoded Json Web Key + /// + string EncodedJwk { get; set; } +} diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IIdentifiable.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IIdentifiable.cs new file mode 100644 index 000000000..20c0107a3 --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Interfaces/IIdentifiable.cs @@ -0,0 +1,7 @@ +namespace Digdir.Library.Dialogporten.WebApiClient.Interfaces; + +public interface IIdentifiable +{ + Guid Id { get; } + Guid RevisionId { get; } +} diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/README.md b/src/Digdir.Library.Dialogporten.WebApiClient/README.md new file mode 100644 index 000000000..10c7eb3a5 --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/README.md @@ -0,0 +1,196 @@ +# SO SDK + +Simple overview + +## Installation + +Install nuget + +## Usage + +Setup + +```C# +var configuration = new ConfigurationBuilder() + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .Build(); + +var services = new ServiceCollection(); + +services.AddSingleton(configuration); + +services.AddDialogportenClient(); +services.AddDialogTokenVerifer(); +var dialogportenClient = serviceProvider.GetRequiredService(); +``` + +AppSettings + +```JSON +{ + "DialogportenSettings": { + "Environment": "test", + "Maskinporten": { + "ClientId": "ce3b732a-d4f2-4997-8545-adf8df70fe6c", + "Scope": "digdir:dialogporten.serviceprovider digdir:dialogporten.serviceprovider.search", + "EncodedJwk": "eyJwIjoieTRBZEhlVVBxdFEtSFlOWkR5ci0zS09RT3NQajA5TFh2a2hIUFlTdGFYNThkMndIWUJiVXlDTWdMYWtGTHo4UExKNWtscURsanRoczFtM1dFVGJhSWVuY25TalpjZTh4S1Q2SHh3bTNyaDlydWZ1TWVOZDRqaFptTm9WZmJrcGNXcVh0UDFvb1NPTE5zYUNVUWFUUEVKTXlFd3VhdWxMSzgxRG1SSTlMSmVNIiwia3R5IjoiUlNBIiwicSI6InFmOEQ2Uy1Kd19BdVQ0Q2hjQTlDek9WNk1uTW9mc1VCdTkteHJBcVFDRjh4WWZZOTRxQ1ZjQ3llajlkTlN3eXZUZXg1dThIMzNSaU1LMEFWM2tTQlpJLVZqcXJHLUx6YzNfTUlTTVpSVDJfbzNVQlRWVHpqTkUtSkpMX1hKaXJ6ZVhhQjM1UmFZMjFnWVhKQWg3X2tuR3dpRzF3MGxiT2ozQ0FzdnVwaU1BMCIsImQiOiJLVkF1b1Zhd2paTTgwenRYcUxSZUJGZkJ3M3pxVjdkUGFpaWFONWU0RFp6bW5MYTFMNEZJMTgtanVraHN4UVdqR1NFQnBIdTFrOHRPUWMyWjBsSDVaaTBydERqM0JKeEhxeDNsUGdYMWdTNXNiX1EyeXNfb2FKcklSX012MHBDQUFHX3hpa2lUY2kzTHMyeV9femV4QTdLbG0yalNmYW9Udzdhbml1R3RId1d5dHhCSnJnZ0J2c3loaHZIaUVQcnZaMHZBZldYYWI3QUtkUjc1cEtEaVVHOGdGNTdJN0hrWnpJSk9QYXp3MTU1Skx4TG9HcDVzeTFCVVpBNHRiQmlseWVsdG9ONGZINWd1aUktOXJjTE5zUmVYazJ1c3NFbE9EbVZ2Qmx2ZVVfb1ZRMVYtVDRJRnUzZk1BYVJGUFA2Wlo1akJJX2hkOFJOTTJ3eUp5UHVRWVEiLCJlIjoiQVFBQiIsInVzZSI6InNpZyIsImtpZCI6ImRpYWxvZ3BvcnRlbi1zcC1zZGstdGVzdC0yMDI0MTAxMCIsInFpIjoiQm9VS0RlczQ0UTNpXzNyT3Q4aHRrS2NxWkFNem00Njl2cTZuQnJVcHBTU1Ric3YwalZwN1daRGRRR0Q0bU8yMVJVOEFUbmN3NjFPOUt3YXktOGloX082VWFWbGxZN3NHYlVrQ2NVaG43ZDkzSElLZnhybnhWVE9nNUNMWTBka2Zwa3A1V2pyU1VvMTVKQURsY3BRM0ItRlU0Nm9PTG9ydjJ0SVFQekE4OF93IiwiZHAiOiJ1emVaRWZpN2Fqa3JFREhYekZtTThXWFUtZ3RmM1ctN0pnY082MnpWc1JrNTN4QlcxTE1NZlRlN2tlWk9xOEhDN3hTbGktSm9idnR6WGU3Y295ZW9sTXkzTnlydXFhQVp4VTBPMHpHQWQ4UFdjdHNXeDlITHlrU1hNby1QVlVNNkpmZERCaWFtcXk5bGQ0WTRfdzlscEdVWEMyaUFwLXdsWktaSHdrbG1KR3MiLCJhbGciOiJSUzI1NiIsImRxIjoiVENBcV9DMlJuX0RhakRlcUU2aUIzWWVWNVNtMHBMQk1Tbm10OHNENEp3ZVo4YWgzcGhrTFVxUm9qVGw1SDNhYXVtWl9UUmxiaWVNSVFnWDh4UUFnZ1l2YkNYeG9oZEx0aGt3ckZZdlp0WjBEeHJDYm9Md1hjc0Y3Ukwyejl4LWMwSFBGVFAzLVREQWF6UWlBNVVtRmNwYnAzeDYzWGFLSWFuYnVFc0NiSDdFIiwibiI6Imh5Sks4WnE2Wk8tRjFSSklVWVNCdUpfeG9RWkNNV1EyTVhrSFQ1bVROVVJJZmVWWWpCNWMwMzI0Uk5nc3ZPMEtXX0hUejRRSnptLV9rU1VaZ0h1Z2JoR0F3a1Vqc1lwTlJJRTBvLVNtdEExMlMxZHVCZWx6ajg2LVFrZkFzeFlwblNnSzl5OXpTS1B0YVlzMS1EcEVIb0hVdk9BSDJlNktFTXRaYUZPM0J0Yk9WUURXMENMYi1FY0UyaDBQRlFMMUp3NU8zeDhHcXBZeUFhamNoWnptcWlFbjBaSEd1QTNZZ1NyNGxQV1lkTzBNWHZmRFdyaFBTcnVTS3FodzBHMTlBRUpHOFhoek9xTWxLTUFIbW5ybk9XOHM2cWR2Sy1UQ1BiVGJJOU5XUWdFd2JpUFBBdlU0MUFITzZmTEYxUHZzQ3FhNjZTSGdYMkJzS3pvNVhORjhodyJ9" + } + }, + // Ed25519 keys for validating dialog tokens + "Ed25519Keys": { + "Primary": { + "Kid": "", + "PublicComponent": "" + }, + "Secondary": { + "Kid": "", + "PublicComponent": "" + } + } +} +``` + +Basic usage + +```C# +// Basic Usage example + +// Create a dialog +var createDialogCommand = new V1ServiceOwnerDialogsCommandsCreate_DialogCommand +{ + // createDialogCommand.Id = Guid.Parse("01927a6d-40d8-728b-b3da-845b680840d9"); + ServiceResource = "urn:altinn:resource:super-simple-service", + Party = "urn:altinn:person:identifier-no:14886498226", + SystemLabel = DialogEndUserContextsEntities_SystemLabel.Default, + Status = DialogsEntities_DialogStatus.New, + Progress = 2, + Content = new V1ServiceOwnerDialogsCommandsCreate_Content + { + Title = new V1CommonContent_ContentValue + { + Value = + [ + new V1CommonLocalizations_Localization + { + LanguageCode = "nb", + Value = "Hoved" + }, + new V1CommonLocalizations_Localization + { + LanguageCode = "en", + Value = "Main" + } + ], + MediaType = "text/plain" + }, + Summary = new V1CommonContent_ContentValue + { + Value = + [ + new V1CommonLocalizations_Localization + { + LanguageCode = "nb", + Value = "Hoved Summary" + }, + new V1CommonLocalizations_Localization + { + LanguageCode = "en", + Value = "Main Summary" + } + ], + MediaType = "text/plain" + } + + + }, + Transmissions = + [ + new V1ServiceOwnerDialogsCommandsCreate_Transmission + { + Attachments = + [ + new V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachment + { + DisplayName = + [ + new V1CommonLocalizations_Localization + { + LanguageCode = "nb", + Value = "Hoved misson" + } + ], + Urls = + [ + new V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachmentUrl + { + ConsumerType = Attachments_AttachmentUrlConsumerType.Gui, + Url = new Uri("https://digdir.apps.tt02.altinn.no/some-other-url") + } + ] + + } + ], + Content = new V1ServiceOwnerDialogsCommandsCreate_TransmissionContent + { + Summary = new V1CommonContent_ContentValue + { + MediaType = "text/plain", + Value = + [ + new V1CommonLocalizations_Localization + { + LanguageCode = "nb", + Value = "Tranmission summary" + } + ] + }, + Title = new V1CommonContent_ContentValue + { + MediaType = "text/plain", + Value = + [ + new V1CommonLocalizations_Localization + { + LanguageCode = "nb", + Value = "Tranmission Title" + } + ] + } + }, + Sender = new V1ServiceOwnerCommonActors_Actor + { + ActorType = Actors_ActorType.ServiceOwner + }, + Type = DialogsEntitiesTransmissions_DialogTransmissionType.Information + } + ] +}; +var response = await dialogportenClient.DialogsPost(createDialogCommand); +if (response.IsSuccessStatusCode) +{ + Console.WriteLine(response.StatusCode); + string guid = response.Content; +} +``` + +```C# +// Patch Dialog +List patchDocument = +[ + new() + { + Op = "replace", + OperationType = JsonPatchOperations_OperationType.Replace, + Path = "/progress", + Value = 50 + } +]; +var patchResponse = await dialogportenClient.V1ServiceOwnerDialogsPatchDialog(guid, patchDocument, null); +Console.WriteLine(patchResponse.IsSuccessStatusCode); +Console.WriteLine(patchResponse.StatusCode); +``` + +API REFERENCE/STRUCTURE + + +Links to changelog etc. diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Services/Base64Url.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Services/Base64Url.cs new file mode 100644 index 000000000..910bbc705 --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Services/Base64Url.cs @@ -0,0 +1,45 @@ +using System.Buffers.Text; + +namespace Digdir.Library.Dialogporten.WebApiClient.Services; + +public static class Base64Url +{ + public static int GetMaxEncodedToUtf8Length(int length) => (length + 2) / 3 * 4; + + public static void Encode(ReadOnlySpan data, Span destination, out int bytesWritten) + { + Base64.EncodeToUtf8(data, destination, out _, out bytesWritten); + for (var i = 0; i < bytesWritten; i++) + { + destination[i] = destination[i] switch + { + (byte)'+' => (byte)'-', + (byte)'/' => (byte)'_', + _ => destination[i] + }; + } + + while (bytesWritten > 0 && destination[bytesWritten - 1] == '=') + { + bytesWritten--; + } + } + + public static byte[] Decode(string input) + { + var output = input.Replace('-', '+').Replace('_', '/'); + switch (output.Length % 4) + { + case 0: break; + case 2: + output += "=="; + break; + case 3: + output += "="; + break; + default: + throw new ArgumentException("Illegal base64url string", nameof(input)); + } + return Convert.FromBase64String(output); + } +} diff --git a/src/Digdir.Library.Dialogporten.WebApiClient/Services/DialogTokenVerifier.cs b/src/Digdir.Library.Dialogporten.WebApiClient/Services/DialogTokenVerifier.cs new file mode 100644 index 000000000..7baf0ab2a --- /dev/null +++ b/src/Digdir.Library.Dialogporten.WebApiClient/Services/DialogTokenVerifier.cs @@ -0,0 +1,68 @@ +using System.Text; +using System.Text.Json; +using NSec.Cryptography; + +namespace Digdir.Library.Dialogporten.WebApiClient.Services; + +public sealed class DialogTokenVerifier(string kid, PublicKey publicKey) +{ + public bool Verify(string token) + { + var parts = token.Split('.'); + if (parts.Length != 3) return false; + var header = Base64Url.Decode(parts[0]); + + var headerJson = JsonSerializer.Deserialize(header); + if (headerJson.TryGetProperty("kid", out var value)) + { + if (value.GetString() != kid) return false; + } + else + { + return false; + } + var signature = Base64Url.Decode(parts[2]); + return SignatureAlgorithm.Ed25519.Verify(publicKey, Encoding.UTF8.GetBytes(parts[0] + '.' + parts[1]), signature); + + } + public static Dictionary GetDialogTokenClaims(string token) + { + var claims = new Dictionary(); + + var parts = token.Split('.'); + if (parts.Length != 3) + { + throw new ArgumentException("Invalid dialog token"); + } + + var bodyJson = JsonSerializer.Deserialize(Base64Url.Decode(parts[1])); + + var fieldsInfo = typeof(DialogTokenClaimTypes).GetFields().Where(f => f.FieldType == typeof(string)); + + foreach (var fieldInfo in fieldsInfo) + { + var value = fieldInfo.GetValue("string"); + if (value != null && bodyJson.TryGetProperty(value.ToString()!, out var jsonValue)) + { + claims.Add(value.ToString()!, jsonValue); + } + } + return claims; + } +} + +public static class DialogTokenClaimTypes +{ + public const string JwtId = "jti"; + public const string Issuer = "iss"; + public const string IssuedAt = "iat"; + public const string NotBefore = "nbf"; + public const string Expires = "exp"; + public const string AuthenticationLevel = "l"; + public const string AuthenticatedParty = "c"; + public const string DialogParty = "p"; + public const string SupplierParty = "u"; + public const string ServiceResource = "s"; + public const string DialogId = "i"; + public const string Actions = "a"; +} diff --git a/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/.refitter b/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/.refitter new file mode 100644 index 000000000..d0319a8d5 --- /dev/null +++ b/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/.refitter @@ -0,0 +1,14 @@ +{ + "openApiPath": "../../docs/schema/V1/swagger.verified.json", + "namespace": "Digdir.Library.Dialogporten.WebApiClient.Features.V1", + "outputFolder": "refitter", + "operationNameGenerator": "SingleClientFromOperationId", + "multipleInterfaces": "ByTag", + "includeTags": [ + "Serviceowner" + ], + "useCancellationTokens": true, + "returnIApiResponse": true, + "useDynamicQuerystringParameters": true, + "outputFilename": "RefitterInterface.cs" +} diff --git a/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests.csproj b/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests.csproj new file mode 100644 index 000000000..2a00c6d4d --- /dev/null +++ b/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests.csproj @@ -0,0 +1,31 @@ + + + + net9.0 + enable + enable + false + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + diff --git a/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/RefitterInterfaceTests.cs b/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/RefitterInterfaceTests.cs new file mode 100644 index 000000000..0b78f0b49 --- /dev/null +++ b/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/RefitterInterfaceTests.cs @@ -0,0 +1,66 @@ +namespace Digdir.Library.Dialogporten.WebApiClient.Integration.Tests; + +public sealed class RefitterInterfaceTests : IDisposable +{ + + [Fact] + public async Task FailIfRefitterInterfaceDoesNotMatch() + { + // Amund: prøv mæ mocka filesystem. det e litt for kult te å ikk prøve vartfall. + // ser ut som det er vrient å bruke verify sammen med mocka filesystem + // Constructor, dispose. Ser ut som å være en decent måte å takle cleanup på. Funker ikke når testen feiler så dør processen. + // Async dispose ikke lagt til enda. kommer i v3. som nå er i alpha/beta enda + // men AsyncLifetime er i V2. + var rootPath = GetSolutionRootFolder(); + var webApiClientPath = Path.Combine(rootPath!, "src/Digdir.Library.Dialogporten.WebApiClient/Features/V1"); + var currentDirectory = Path.Combine(rootPath!, "tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests"); + var newRifitterPath = Path.Combine(currentDirectory, "refitter/RefitterInterface.cs"); + var newRefitter = File.ReadAllText(newRifitterPath); + // Den feiler og viser diff samtidig. testene er av definisjon ferdig når diff vises. er det noe måte å unngå dette på? + // Den lager bare fil om den feiler. er det noe som kan skrus av? + // Om den feiler ved en diff så må den kjøres på nytt uansett. det e egt litt skuffed. men jaja. + // Træng i da egt å fjerne fila eller feil? + // treng da egt bære å fjerne om den finnes fra en gammel runde. altså slett før verify + Assert.True(File.Exists(newRifitterPath)); + await Verify(newRefitter, extension: "cs") + .UseFileName("RefitterInterface") + .UseDirectory(webApiClientPath) + .OnVerify( + before: () => { }, + after: () => + { + // Funke ikkje! DEN FÆILE OG ÅPNE DIFF! + // var path = Path.Combine(webApiClientPath, "RefitterInterface.received.cs"); + // if (File.Exists(path)) + // { + // File.Delete(path); + // } + // if (File.Exists(newRifitterPath)) + // { + // File.Delete(newRifitterPath); + // } + // Assert.False(File.Exists(newRifitterPath)); + }); + } + private static string? GetSolutionRootFolder() + { + var currentDirectory = Directory.GetCurrentDirectory(); + var solutionFolder = currentDirectory; + while (solutionFolder != null && Directory.GetFiles(solutionFolder, "*.sln").Length == 0) + { + solutionFolder = Directory.GetParent(solutionFolder)?.FullName; + } + return solutionFolder; + } + + public void Dispose() + { + // var rootPath = GetSolutionRootFolder(); + // var webApiClientPath = Path.Combine(rootPath!, "src/Digdir.Library.Dialogporten.WebApiClient/Features/V1"); + // var path = Path.Combine(webApiClientPath, "RefitterInterface.received.cs"); + // if (File.Exists(path)) + // { + // File.Delete(path); + // } + } +} diff --git a/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/refitter/RefitterInterface.cs b/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/refitter/RefitterInterface.cs new file mode 100644 index 000000000..6868d316a --- /dev/null +++ b/tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests/refitter/RefitterInterface.cs @@ -0,0 +1,5818 @@ +// +// This code was generated by Refitter. +// + + +using Refit; +using System.Collections.Generic; +using System.Text.Json.Serialization; +using System.Threading; +using System.Threading.Tasks; + +#nullable enable annotations + +namespace Digdir.Library.Dialogporten.WebApiClient.Features.V1 +{ + public class V1ServiceOwnerDialogsSearchSearchDialogQueryParams + { + + /// + /// Filter by one or more service resources + /// + [Query(CollectionFormat.Multi)] + public IEnumerable ServiceResource { get; set; } + + /// + /// Filter by one or more owning parties + /// + [Query(CollectionFormat.Multi)] + public IEnumerable Party { get; set; } + + /// + /// Filter by end user id + /// + [Query] + public string EndUserId { get; set; } + + /// + /// Filter by one or more extended statuses + /// + [Query(CollectionFormat.Multi)] + public IEnumerable ExtendedStatus { get; set; } + + /// + /// Filter by external reference + /// + [Query] + public string ExternalReference { get; set; } + + /// + /// Filter by status + /// + [Query(CollectionFormat.Multi)] + public IEnumerable Status { get; set; } + + /// + /// Only return dialogs created after this date + /// + [Query] + public System.DateTimeOffset? CreatedAfter { get; set; } + + /// + /// Only return dialogs created before this date + /// + [Query] + public System.DateTimeOffset? CreatedBefore { get; set; } + + /// + /// Only return dialogs updated after this date + /// + [Query] + public System.DateTimeOffset? UpdatedAfter { get; set; } + + /// + /// Only return dialogs updated before this date + /// + [Query] + public System.DateTimeOffset? UpdatedBefore { get; set; } + + /// + /// Only return dialogs with due date after this date + /// + [Query] + public System.DateTimeOffset? DueAfter { get; set; } + + /// + /// Only return dialogs with due date before this date + /// + [Query] + public System.DateTimeOffset? DueBefore { get; set; } + + /// + /// Only return dialogs with visible-from date after this date + /// + [Query] + public System.DateTimeOffset? VisibleAfter { get; set; } + + /// + /// Only return dialogs with visible-from date before this date + /// + [Query] + public System.DateTimeOffset? VisibleBefore { get; set; } + + /// + /// Filter by process + /// + [Query] + public string Process { get; set; } + + /// + /// Filter by Display state + /// + [Query(CollectionFormat.Multi)] + public IEnumerable SystemLabel { get; set; } + + /// + /// Search string for free text search. Will attempt to fuzzily match in all free text fields in the aggregate + /// + [Query] + public string Search { get; set; } + + /// + /// Limit free text search to texts with this language code, e.g. 'no', 'en'. Culture codes will be normalized to neutral language codes (ISO 639). Default: search all culture codes + /// + [Query] + public string SearchLanguageCode { get; set; } + + [Query] + public OrderSetOfTOrderDefinitionAndTTarget OrderBy { get; set; } + + /// + /// Supply "continuationToken" for the response to get the next page of results, if hasNextPage is true + /// + [Query] + public ContinuationTokenSetOfTOrderDefinitionAndTTarget ContinuationToken { get; set; } + + /// + /// Limit the number of results per page (1-1000, default: 100) + /// + [Query] + public int? Limit { get; set; } + + } + + public class V1ServiceOwnerDialogActivitiesNotificationConditionNotificationConditionQueryParams + { + public V1ServiceOwnerDialogActivitiesNotificationConditionNotificationConditionQueryParams(V1ServiceOwnerDialogActivitiesQueriesNotificationCondition_NotificationConditionType conditionType, DialogsEntitiesActivities_DialogActivityType activityType) + { + + ConditionType = conditionType; + ActivityType = activityType; + } + + [Query] + public V1ServiceOwnerDialogActivitiesQueriesNotificationCondition_NotificationConditionType ConditionType { get; set; } + + [Query] + public DialogsEntitiesActivities_DialogActivityType ActivityType { get; set; } + + [Query] + public System.Guid? TransmissionId { get; set; } + + } + + /// Gets a list of dialogs + [System.CodeDom.Compiler.GeneratedCode("Refitter", "1.4.1.0")] + 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). + /// + /// * 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. + /// * hasNextPage will be set to true if there are more items to get. + /// + /// The dynamic querystring parameter wrapping all others. + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog list. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider.search\". + /// + /// + /// + [Headers("Accept: application/json")] + [Get("/api/v1/serviceowner/dialogs")] + Task> V1ServiceOwnerDialogsSearchSearchDialog([Query] V1ServiceOwnerDialogsSearchSearchDialogQueryParams queryParams, CancellationToken cancellationToken = default); + + /// Creates a new dialog + /// + /// The dialog is created with the given configuration. For more information see the documentation (link TBD). + /// + /// For detailed information on validation rules, see [the source for CreateDialogCommandValidator](https://github.com/digdir/dialogporten/blob/main/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/Dialogs/Commands/Create/CreateDialogCommandValidator.cs) + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 201 + /// The UUID of the created the dialog aggregate. A relative URL to the newly created activity is set in the \"Location\" header. + /// + /// + /// 400 + /// Validation error occured. See problem details for a list of errors. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to create a dialog for the given serviceResource (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 422 + /// Domain error occured. See problem details for a list of errors. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Post("/api/v1/serviceowner/dialogs")] + Task> V1ServiceOwnerDialogsCreateDialog([Body, AliasAs("CreateDialogCommand")] V1ServiceOwnerDialogsCommandsCreate_DialogCommand createDialogCommand, CancellationToken cancellationToken = default); + + /// Deletes a dialog + /// + /// Deletes a given dialog (soft delete). For more information see the documentation (link TBD). + /// + /// 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. + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 204 + /// The dialog aggregate was deleted successfully. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to delete the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// 412 + /// The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied. + /// + /// + /// + [Headers("Accept: application/problem+json")] + [Delete("/api/v1/serviceowner/dialogs/{dialogId}")] + Task V1ServiceOwnerDialogsDeleteDialog(System.Guid dialogId, [Header("if-Match")] System.Guid? if_Match, CancellationToken cancellationToken = default); + + /// Gets a single dialog + /// + /// Gets a single dialog aggregate. For more information see the documentation (link TBD). + /// + /// Note that this operation may return deleted dialogs (see the field `DeletedAt`). + /// + /// Filter by end user id + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog aggregate. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to get the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}")] + Task> V1ServiceOwnerDialogsGetGetDialog(System.Guid dialogId, [Query] string endUserId, CancellationToken cancellationToken = default); + + /// Patch a single dialog + /// + /// Patches a dialog aggregate with a RFC6902 JSON Patch document. The patch document must be a JSON array of RFC6902 operations. + /// See [https://tools.ietf.org/html/rfc6902](https://tools.ietf.org/html/rfc6902) for more information. + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 204 + /// Patch was successfully applied. + /// + /// + /// 400 + /// Validation error occured. See problem details for a list of errors. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \\\"digdir:dialogporten.serviceprovider\\\" + /// + /// + /// 403 + /// Unauthorized to update a dialog for the given serviceResource (not owned by authenticated organization or has additional scope requirements defined in policy) + /// + /// + /// 404 + /// The given dialog ID was not found or is deleted + /// + /// + /// 412 + /// The supplied Revision does not match the current Revision of the dialog + /// + /// + /// 422 + /// Domain error occured. See problem details for a list of errors. + /// + /// + /// + [Headers("Accept: application/json")] + [Patch("/api/v1/serviceowner/dialogs/{dialogId}")] + Task V1ServiceOwnerDialogsPatchDialog(System.Guid dialogId, [Body] IEnumerable patchDocument, [Header("If-Match")] System.Guid? etag, CancellationToken cancellationToken = default); + + /// Replaces a dialog + /// + /// Replaces a given dialog with the supplied model. For more information see the documentation (link TBD). + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 204 + /// The dialog aggregate was updated successfully. + /// + /// + /// 400 + /// Validation error occured. See problem details for a list of errors. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to update the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// 412 + /// The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied. + /// + /// + /// 422 + /// Domain error occured. See problem details for a list of errors. + /// + /// + /// + [Headers("Accept: application/problem+json")] + [Put("/api/v1/serviceowner/dialogs/{dialogId}")] + Task V1ServiceOwnerDialogsUpdateDialog(System.Guid dialogId, [Body] V1ServiceOwnerDialogsCommandsUpdate_Dialog dto, [Header("if-Match")] System.Guid? if_Match, CancellationToken cancellationToken = default); + + /// Permanently deletes a dialog + /// + /// Deletes a given dialog (hard delete). For more information see the documentation (link TBD). + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 204 + /// The dialog aggregate was deleted successfully. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to delete the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// 412 + /// The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied. + /// + /// + /// + [Headers("Accept: application/problem+json")] + [Post("/api/v1/serviceowner/dialogs/{dialogId}/actions/purge")] + Task V1ServiceOwnerDialogsPurgePurgeDialog(System.Guid dialogId, [Header("if-Match")] System.Guid? if_Match, CancellationToken cancellationToken = default); + + /// Returns a boolean value based on conditions used to determine if a notification is to be sent + /// Used by Altinn Notification only. Takes a dialogId and returns a boolean value based on conditions used to determine if a notification is to be sent. + /// The dynamic querystring parameter wrapping all others. + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the notification determination. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"altinn:system/notifications.condition.check\". + /// + /// + /// 403 + /// Forbidden + /// + /// + /// + [Headers("Accept: application/json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/actions/should-send-notification")] + Task> V1ServiceOwnerDialogActivitiesNotificationConditionNotificationCondition(System.Guid dialogId, [Query] V1ServiceOwnerDialogActivitiesNotificationConditionNotificationConditionQueryParams queryParams, CancellationToken cancellationToken = default); + + /// Gets a list of dialog activities + /// Gets the list of activities belonging to a dialog + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog activity list. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to get the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// + [Headers("Accept: application/json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/activities")] + Task>> V1ServiceOwnerDialogActivitiesSearchSearchDialogActivity(System.Guid dialogId, CancellationToken cancellationToken = default); + + /// Adds a activity to a dialogs activity history + /// + /// The activity is created with the given configuration. For more information see the documentation (link TBD). + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 201 + /// The UUID of the created the dialog activity. A relative URL to the newly created activity is set in the \"Location\" header. + /// + /// + /// 400 + /// Validation error occured. See problem details for a list of errors. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to create child entity for the given dialog (dialog not owned by authenticated organization or has additional scope requirements defined in service identifiers policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// 412 + /// The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied. + /// + /// + /// 422 + /// Domain error occured. See problem details for a list of errors. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Post("/api/v1/serviceowner/dialogs/{dialogId}/activities")] + Task> V1ServiceOwnerDialogActivitiesCreateDialogActivity(System.Guid dialogId, [Body, AliasAs("CreateActivityRequest")] V1ServiceOwnerDialogActivitiesCreate_ActivityRequest createActivityRequest, [Header("if-Match")] System.Guid? if_Match, CancellationToken cancellationToken = default); + + /// Gets a single dialog activity + /// Gets a single activity belonging to a dialog. For more information see the documentation (link TBD). + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog activity. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to get child entity for the given dialog (dialog not owned by authenticated organization or has additional scope requirements defined in service identifiers policy). + /// + /// + /// 404 + /// The given dialog ID was not found or was deleted, or the given activity ID was not found. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/activities/{activityId}")] + Task> V1ServiceOwnerDialogActivitiesGetGetDialogActivity(System.Guid dialogId, System.Guid activityId, 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). + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog seen log records. + /// + /// + /// 401 + /// Unauthorized + /// + /// + /// 403 + /// Forbidden + /// + /// + /// 404 + /// Not Found + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/seenlog")] + 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). + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog seen log record. + /// + /// + /// 401 + /// Unauthorized + /// + /// + /// 403 + /// Forbidden + /// + /// + /// 404 + /// Not Found + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/seenlog/{seenLogId}")] + Task> V1ServiceOwnerDialogSeenLogsGetGetDialogSeenLog(System.Guid dialogId, System.Guid seenLogId, CancellationToken cancellationToken = default); + + /// Gets a list of dialog transmissions + /// Gets the list of transmissions belonging to a dialog + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog transmission list. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to get the supplied dialog (not owned by authenticated organization or has additional scope requirements defined in policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/transmissions")] + Task> V1ServiceOwnerDialogTransmissionsSearchSearchDialogTransmission(System.Guid dialogId, CancellationToken cancellationToken = default); + + /// Adds a transmission to a dialog + /// + /// The transmission is created with the given configuration. For more information see the documentation (link TBD). + /// + /// 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. + /// + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 201 + /// The UUID of the created the dialog transmission. A relative URL to the newly created activity is set in the \"Location\" header. + /// + /// + /// 400 + /// Validation error occured. See problem details for a list of errors. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to create child entity for the given dialog (dialog not owned by authenticated organization or has additional scope requirements defined in service identifiers policy). + /// + /// + /// 404 + /// The given dialog ID was not found or is already deleted. + /// + /// + /// 412 + /// The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied. + /// + /// + /// 422 + /// Domain error occured. See problem details for a list of errors. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Post("/api/v1/serviceowner/dialogs/{dialogId}/transmissions")] + 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). + /// + /// A representing the instance containing the result: + /// + /// + /// Status + /// Description + /// + /// + /// 200 + /// Successfully returned the dialog transmission. + /// + /// + /// 401 + /// Missing or invalid authentication token. Requires a Maskinporten-token with the scope \"digdir:dialogporten.serviceprovider\". + /// + /// + /// 403 + /// Unauthorized to get child entity for the given dialog (dialog not owned by authenticated organization or has additional scope requirements defined in service identifiers policy). + /// + /// + /// 404 + /// The given dialog ID was not found or was deleted, or the given transmission ID was not found. + /// + /// + /// + [Headers("Accept: application/json, application/problem+json")] + [Get("/api/v1/serviceowner/dialogs/{dialogId}/transmissions/{transmissionId}")] + Task> V1ServiceOwnerDialogTransmissionsGetGetDialogTransmission(System.Guid dialogId, System.Guid transmissionId, CancellationToken cancellationToken = default); + } + +} + +//---------------------- +// +// Generated using the NSwag toolchain v14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org) +// +//---------------------- + +#pragma warning disable 108 // Disable "CS0108 '{derivedDto}.ToJson()' hides inherited member '{dtoBase}.ToJson()'. Use the new keyword if hiding was intended." +#pragma warning disable 114 // Disable "CS0114 '{derivedDto}.RaisePropertyChanged(String)' hides inherited member 'dtoBase.RaisePropertyChanged(String)'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword." +#pragma warning disable 472 // Disable "CS0472 The result of the expression is always 'false' since a value of type 'Int32' is never equal to 'null' of type 'Int32?' +#pragma warning disable 612 // Disable "CS0612 '...' is obsolete" +#pragma warning disable 649 // Disable "CS0649 Field is never assigned to, and will always have its default value null" +#pragma warning disable 1573 // Disable "CS1573 Parameter '...' has no matching param tag in the XML comment for ... +#pragma warning disable 1591 // Disable "CS1591 Missing XML comment for publicly visible type or member ..." +#pragma warning disable 8073 // Disable "CS8073 The result of the expression is always 'false' since a value of type 'T' is never equal to 'null' of type 'T?'" +#pragma warning disable 3016 // Disable "CS3016 Arrays as attribute arguments is not CLS-compliant" +#pragma warning disable 8603 // Disable "CS8603 Possible null reference return" +#pragma warning disable 8604 // Disable "CS8604 Possible null reference argument for parameter" +#pragma warning disable 8625 // Disable "CS8625 Cannot convert null literal to non-nullable reference type" +#pragma warning disable 8765 // Disable "CS8765 Nullability of type of parameter doesn't match overridden member (possibly because of nullability attributes)." + +namespace Digdir.Library.Dialogporten.WebApiClient.Features.V1 +{ + using System = global::System; + + + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum Actors_ActorType + { + + [System.Runtime.Serialization.EnumMember(Value = @"PartyRepresentative")] + PartyRepresentative = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"ServiceOwner")] + ServiceOwner = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum Attachments_AttachmentUrlConsumerType + { + + [System.Runtime.Serialization.EnumMember(Value = @"Gui")] + Gui = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Api")] + Api = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ContinuationTokenSetOfTOrderDefinitionAndTTarget + { + + private IDictionary _additionalProperties; + + [JsonExtensionData] + public IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DialogEndUserContextsEntities_SystemLabel + { + + [System.Runtime.Serialization.EnumMember(Value = @"Default")] + Default = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Bin")] + Bin = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Archive")] + Archive = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DialogsEntities_DialogStatus + { + + [System.Runtime.Serialization.EnumMember(Value = @"New")] + New = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"InProgress")] + InProgress = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Draft")] + Draft = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Sent")] + Sent = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"RequiresAttention")] + RequiresAttention = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Completed")] + Completed = 5, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DialogsEntitiesActions_DialogGuiActionPriority + { + + [System.Runtime.Serialization.EnumMember(Value = @"Primary")] + Primary = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Secondary")] + Secondary = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Tertiary")] + Tertiary = 2, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DialogsEntitiesActivities_DialogActivityType + { + + [System.Runtime.Serialization.EnumMember(Value = @"DialogCreated")] + DialogCreated = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"DialogClosed")] + DialogClosed = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Information")] + Information = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"TransmissionOpened")] + TransmissionOpened = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"PaymentMade")] + PaymentMade = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"SignatureProvided")] + SignatureProvided = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"DialogOpened")] + DialogOpened = 6, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum DialogsEntitiesTransmissions_DialogTransmissionType + { + + [System.Runtime.Serialization.EnumMember(Value = @"Information")] + Information = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Acceptance")] + Acceptance = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Rejection")] + Rejection = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Request")] + Request = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Alert")] + Alert = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Decision")] + Decision = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"Submission")] + Submission = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"Correction")] + Correction = 7, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum Http_HttpVerb + { + + [System.Runtime.Serialization.EnumMember(Value = @"GET")] + GET = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"POST")] + POST = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"PUT")] + PUT = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"PATCH")] + PATCH = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"DELETE")] + DELETE = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"HEAD")] + HEAD = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"OPTIONS")] + OPTIONS = 6, + + [System.Runtime.Serialization.EnumMember(Value = @"TRACE")] + TRACE = 7, + + [System.Runtime.Serialization.EnumMember(Value = @"CONNECT")] + CONNECT = 8, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class JsonPatchOperations_Operation + { + + [JsonPropertyName("from")] + public string From { get; set; } + + [JsonPropertyName("op")] + public string Op { get; set; } + + [JsonPropertyName("operationType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public JsonPatchOperations_OperationType OperationType { get; set; } + + [JsonPropertyName("path")] + public string Path { get; set; } + + [JsonPropertyName("value")] + public object Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum JsonPatchOperations_OperationType + { + + [System.Runtime.Serialization.EnumMember(Value = @"Add")] + Add = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Remove")] + Remove = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"Replace")] + Replace = 2, + + [System.Runtime.Serialization.EnumMember(Value = @"Move")] + Move = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"Copy")] + Copy = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"Test")] + Test = 5, + + [System.Runtime.Serialization.EnumMember(Value = @"Invalid")] + Invalid = 6, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class OrderSetOfTOrderDefinitionAndTTarget + { + + private IDictionary _additionalProperties; + + [JsonExtensionData] + public IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PaginatedListOfV1EndUserDialogsQueriesSearch_Dialog + { + /// + /// The continuation token to be used to fetch the next page of items + /// + + [JsonPropertyName("continuationToken")] + public string ContinuationToken { get; set; } + + /// + /// Whether there are more items available that can be fetched by supplying the continuation token + /// + + [JsonPropertyName("hasNextPage")] + public bool HasNextPage { get; set; } + + /// + /// The paginated list of items + /// + + [JsonPropertyName("items")] + public ICollection Items { get; set; } + + /// + /// The current sorting order of the items + /// + + [JsonPropertyName("orderBy")] + public string OrderBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class PaginatedListOfV1ServiceOwnerDialogsQueriesSearch_Dialog + { + /// + /// The continuation token to be used to fetch the next page of items + /// + + [JsonPropertyName("continuationToken")] + public string ContinuationToken { get; set; } + + /// + /// Whether there are more items available that can be fetched by supplying the continuation token + /// + + [JsonPropertyName("hasNextPage")] + public bool HasNextPage { get; set; } + + /// + /// The paginated list of items + /// + + [JsonPropertyName("items")] + public ICollection Items { get; set; } + + /// + /// The current sorting order of the items + /// + + [JsonPropertyName("orderBy")] + public string OrderBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProblemDetails + { + + [JsonPropertyName("detail")] + public string Detail { get; set; } + + [JsonPropertyName("errors")] + public ICollection Errors { get; set; } + + [JsonPropertyName("instance")] + public string Instance { get; set; } = "/api/route"; + + [JsonPropertyName("status")] + public int Status { get; set; } = 400; + + [JsonPropertyName("title")] + public string Title { get; set; } = "One or more validation errors occurred."; + + [JsonPropertyName("traceId")] + public string TraceId { get; set; } = "0HMPNHL0JHL76:00000001"; + + [JsonPropertyName("type")] + public string Type { get; set; } = "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1"; + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProblemDetails_Error + { + + [JsonPropertyName("code")] + public string Code { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } = "Error or field name"; + + [JsonPropertyName("reason")] + public string Reason { get; set; } = "Error reason"; + + [JsonPropertyName("severity")] + public string Severity { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1CommonContent_ContentValue + { + /// + /// Media type of the content (plaintext, Markdown). Can also indicate that the content is embeddable. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// A list of localizations for the content. + /// + + [JsonPropertyName("value")] + public ICollection Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1CommonLocalizations_Localization + { + /// + /// The language code of the localization in ISO 639-1 format. + /// + + [JsonPropertyName("languageCode")] + public string LanguageCode { get; set; } + + /// + /// The localized text or URI reference. + /// + + [JsonPropertyName("value")] + public string Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserCommonActors_Actor + { + /// + /// The identifier of the person or organization that sent the transmission. Mutually exclusive with ActorName. + ///
Might be omitted if ActorType is "ServiceOwner". + ///
+ + [JsonPropertyName("actorId")] + public string ActorId { get; set; } + + /// + /// Specifies the name of the entity that sent the transmission. Mutually exclusive with ActorId. If ActorId + ///
is supplied, the name will be automatically populated from the name registries. + ///
+ + [JsonPropertyName("actorName")] + public string ActorName { get; set; } + + /// + /// The type of actor that sent the transmission. + /// + + [JsonPropertyName("actorType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Actors_ActorType ActorType { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogActivitiesQueriesGet_Activity + { + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("performedBy")] + public V1EndUserCommonActors_Actor PerformedBy { get; set; } + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogActivitiesQueriesSearch_Activity + { + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("seenByEndUserIdHash")] + public string SeenByEndUserIdHash { get; set; } + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogLabelAssignmentLogQueriesSearch_LabelAssignmentLog + { + + [JsonPropertyName("action")] + public string Action { get; set; } + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("performedBy")] + public V1EndUserCommonActors_Actor PerformedBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogSeenLogsQueriesGet_SeenLog + { + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + [JsonPropertyName("isViaServiceOwner")] + public bool IsViaServiceOwner { get; set; } + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + [JsonPropertyName("seenBy")] + public V1EndUserCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogSeenLogsQueriesSearch_SeenLog + { + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + [JsonPropertyName("isViaServiceOwner")] + public bool IsViaServiceOwner { get; set; } + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + [JsonPropertyName("seenBy")] + public V1EndUserCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_Content + { + /// + /// Additional information about the dialog, this may contain Markdown. + /// + + [JsonPropertyName("additionalInfo")] + public V1CommonContent_ContentValue AdditionalInfo { get; set; } + + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. + /// + + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + /// + + [JsonPropertyName("mainContentReference")] + public V1CommonContent_ContentValue MainContentReference { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. + /// + + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_Dialog + { + /// + /// An immutable list of activities associated with the dialog. + /// + + [JsonPropertyName("activities")] + public ICollection Activities { get; set; } + + /// + /// The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations. + /// + + [JsonPropertyName("apiActions")] + public ICollection ApiActions { get; set; } + + /// + /// The attachments associated with the dialog (on an aggregate level). + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The dialog unstructured text content. + /// + + [JsonPropertyName("content")] + public V1EndUserDialogsQueriesGet_Content Content { get; set; } + + /// + /// The date and time when the dialog was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The dialog token. May be used (if supported) against external URLs referred to in this dialog's apiActions, + ///
transmissions or attachments. It should also be used for front-channel embeds. + ///
+ + [JsonPropertyName("dialogToken")] + public string DialogToken { get; set; } + + /// + /// The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// The expiration date for the dialog. This is the last date when the dialog is available for the end user. + ///
+ ///
After this date is passed, the dialog will be considered expired and no longer available for the end user in any + ///
API. If not supplied, the dialog will be considered to never expire. This field can be changed by the service + ///
owner after the dialog has been created. + ///
+ + [JsonPropertyName("expiresAt")] + public System.DateTimeOffset? ExpiresAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details on the possible values (if + ///
in use). + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The GUI actions associated with the dialog. Should be used in browser-based interactive frontends. + /// + + [JsonPropertyName("guiActions")] + public ICollection GuiActions { get; set; } + + /// + /// The unique identifier for the dialog in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The service owner code representing the organization (service owner) related to this dialog. + /// + + [JsonPropertyName("org")] + public string Org { get; set; } + + /// + /// The party code representing the organization or person that the dialog belongs to in URN format. + /// + + [JsonPropertyName("party")] + public string Party { get; set; } + + /// + /// Optional preceding process identifier to indicate the business process that preceded the process indicated in the "Process" field. Cannot be set without also "Process" being set. + /// + + [JsonPropertyName("precedingProcess")] + public string PrecedingProcess { get; set; } + + /// + /// Optional process identifier used to indicate a business process this dialog belongs to. + /// + + [JsonPropertyName("process")] + public string Process { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// The unique identifier for the revision in UUIDv4 format. + /// + + [JsonPropertyName("revision")] + public System.Guid Revision { get; set; } + + /// + /// The list of seen log entries for the dialog newer than the dialog ChangedAt date. + /// + + [JsonPropertyName("seenSinceLastUpdate")] + public ICollection SeenSinceLastUpdate { get; set; } + + /// + /// The service identifier for the service that the dialog is related to in URN-format. + ///
This corresponds to a service resource in the Altinn Resource Registry. + ///
+ + [JsonPropertyName("serviceResource")] + public string ServiceResource { get; set; } + + /// + /// The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType). + /// + + [JsonPropertyName("serviceResourceType")] + public string ServiceResourceType { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// Current display state. + /// + + [JsonPropertyName("systemLabel")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel SystemLabel { get; set; } + + /// + /// The immutable list of transmissions associated with the dialog. + /// + + [JsonPropertyName("transmissions")] + public ICollection Transmissions { get; set; } + + /// + /// The date and time when the dialog was last updated. + /// + + [JsonPropertyName("updatedAt")] + public System.DateTimeOffset UpdatedAt { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogActivity + { + /// + /// The date and time when the activity was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// An arbitrary URI/URN with a service-specific activity type. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the activity in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1EndUserCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + /// + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of activity. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogApiAction + { + /// + /// String identifier for the action, corresponding to the "action" attributeId used in the XACML service policy, + ///
which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The endpoints associated with the action. + /// + + [JsonPropertyName("endpoints")] + public ICollection Endpoints { get; set; } + + /// + /// The unique identifier for the action in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// True if the authenticated user is authorized for this action. If not, the action will not be available + ///
and all endpoints will be replaced with a fixed placeholder. + ///
+ + [JsonPropertyName("isAuthorized")] + public bool IsAuthorized { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogApiActionEndpoint + { + /// + /// Boolean indicating if the endpoint is deprecated. Integrators should migrate to endpoints with a higher version. + /// + + [JsonPropertyName("deprecated")] + public bool Deprecated { get; set; } + + /// + /// Link to service provider documentation for the endpoint. Used for service owners to provide documentation for + ///
integrators. Should be a URL to a human-readable page. + ///
+ + [JsonPropertyName("documentationUrl")] + public System.Uri DocumentationUrl { get; set; } + + /// + /// The HTTP method that the endpoint expects for this action. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// The unique identifier for the endpoint in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Link to the request schema for the endpoint. Used by service owners to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("requestSchema")] + public System.Uri RequestSchema { get; set; } + + /// + /// Link to the response schema for the endpoint. Used for service owners to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("responseSchema")] + public System.Uri ResponseSchema { get; set; } + + /// + /// Date and time when the service owner has indicated that endpoint will no longer function. Only set if the endpoint + ///
is deprecated. Dialogporten will not enforce this date. + ///
+ + [JsonPropertyName("sunsetAt")] + public System.DateTimeOffset? SunsetAt { get; set; } + + /// + /// The fully qualified URL of the API endpoint. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to perform the action. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + /// + /// Arbitrary string indicating the version of the endpoint. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("version")] + public string Version { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogAttachmentUrl + { + /// + /// What type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogGuiAction + { + /// + /// The action identifier for the action, corresponding to the "action" attributeId used in the XACML service policy. + /// + + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The HTTP method that the frontend should use when redirecting the user. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// The unique identifier for the action in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Whether the user is authorized to perform the action. + /// + + [JsonPropertyName("isAuthorized")] + public bool IsAuthorized { get; set; } + + /// + /// Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX + ///
for delete actions. + ///
+ + [JsonPropertyName("isDeleteDialogAction")] + public bool IsDeleteDialogAction { get; set; } + + /// + /// Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action + ///
priority. + ///
+ + [JsonPropertyName("priority")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActions_DialogGuiActionPriority Priority { get; set; } + + /// + /// If there should be a prompt asking the user for confirmation before the action is executed, + ///
this field should contain the prompt text. + ///
+ + [JsonPropertyName("prompt")] + public ICollection Prompt { get; set; } + + /// + /// The title of the action, this should be short and in verb form. + /// + + [JsonPropertyName("title")] + public ICollection Title { get; set; } + + /// + /// The fully qualified URL of the action, to which the user will be redirected when the action is triggered. Will be set to + ///
"urn:dialogporten:unauthorized" if the user is not authorized to perform the action. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogSeenLog + { + /// + /// The unique identifier for the seen log entry in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating whether the seen log entry was created by the current end user. + /// + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + /// + /// Flag indicating whether the seen log entry was created via the service owner. + ///
+ ///
This is used when the service owner uses the service owner API to implement its own frontend. + ///
+ + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + /// + /// The timestamp when the dialog revision was seen. + /// + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + /// + /// The actor that saw the dialog revision. + /// + + [JsonPropertyName("seenBy")] + public V1EndUserCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogTransmission + { + /// + /// The transmission-level attachments. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The transmission unstructured text content. + /// + + [JsonPropertyName("content")] + public V1EndUserDialogsQueriesGet_DialogTransmissionContent Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating if the authenticated user is authorized for this transmission. If not, embedded content and + ///
the attachments will not be available. + ///
+ + [JsonPropertyName("isAuthorized")] + public bool IsAuthorized { get; set; } + + /// + /// Reference to any other transmission that this transmission is related to. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The actor that sent the transmission. + /// + + [JsonPropertyName("sender")] + public V1EndUserCommonActors_Actor Sender { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogTransmissionAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogTransmissionAttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesGet_DialogTransmissionContent + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The transmission summary. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The transmission title. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesSearch_Content + { + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. + /// + + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. + /// + + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesSearch_Dialog + { + /// + /// The content of the dialog in search results. + /// + + [JsonPropertyName("content")] + public V1EndUserDialogsQueriesSearch_Content Content { get; set; } + + /// + /// The date and time when the dialog was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The due date for the dialog. This is the last date when the dialog is expected to be completed. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details on the possible values (if + ///
in use). + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The number of attachments in the dialog made available for browser-based frontends. + /// + + [JsonPropertyName("guiAttachmentCount")] + public int? GuiAttachmentCount { get; set; } + + /// + /// The unique identifier for the dialog in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The latest entry in the dialog's activity log. + /// + + [JsonPropertyName("latestActivity")] + public V1EndUserDialogsQueriesSearch_DialogActivity LatestActivity { get; set; } + + /// + /// The service owner code representing the organization (service owner) related to this dialog. + /// + + [JsonPropertyName("org")] + public string Org { get; set; } + + /// + /// The party code representing the organization or person that the dialog belongs to in URN format. + /// + + [JsonPropertyName("party")] + public string Party { get; set; } + + /// + /// Optional preceding process identifier to indicate the business process that preceded the process indicated in the "Process" field. Cannot be set without also "Process" being set. + /// + + [JsonPropertyName("precedingProcess")] + public string PrecedingProcess { get; set; } + + /// + /// Optional process identifier used to indicate a business process this dialog belongs to. + /// + + [JsonPropertyName("process")] + public string Process { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// The list of seen log entries for the dialog newer than the dialog ChangedAt date. + /// + + [JsonPropertyName("seenSinceLastUpdate")] + public ICollection SeenSinceLastUpdate { get; set; } + + /// + /// The service identifier for the service that the dialog is related to in URN-format. + ///
This corresponds to a service resource in the Altinn Resource Registry. + ///
+ + [JsonPropertyName("serviceResource")] + public string ServiceResource { get; set; } + + /// + /// The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType). + /// + + [JsonPropertyName("serviceResourceType")] + public string ServiceResourceType { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// Current display state. + /// + + [JsonPropertyName("systemLabel")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel SystemLabel { get; set; } + + /// + /// The date and time when the dialog was last updated. + /// + + [JsonPropertyName("updatedAt")] + public System.DateTimeOffset UpdatedAt { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesSearch_DialogActivity + { + /// + /// The date and time when the activity was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// An arbitrary string with a service-specific activity type. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the activity in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1EndUserCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + /// + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of activity. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogsQueriesSearch_DialogSeenLog + { + /// + /// The unique identifier for the seen log entry in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating whether the seen log entry was created by the current end user. + /// + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + /// + /// Flag indicating whether the seen log entry was created via the service owner. + ///
+ ///
This is used when the service owner uses the service owner API to implement its own frontend. + ///
+ + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + /// + /// The timestamp when the dialog revision was seen. + /// + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + /// + /// The actor that saw the dialog revision. + /// + + [JsonPropertyName("seenBy")] + public V1EndUserCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogSystemLabelsCommandsSet_SystemLabelCommand + { + + [JsonPropertyName("ifMatchDialogRevision")] + public System.Guid? IfMatchDialogRevision { get; set; } + + [JsonPropertyName("label")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel Label { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesGet_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesGet_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesGet_Content + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The summary of the content. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the content. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesGet_Transmission + { + /// + /// The attachments associated with the transmission. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The authorization attribute associated with the transmission. + /// + + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The content of the transmission. + /// + + [JsonPropertyName("content")] + public V1EndUserDialogTransmissionsQueriesGet_Content Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The date and time when the transmission was deleted, if applicable. + /// + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + /// + /// The extended type URI for the transmission. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating if the authenticated user is authorized for this transmission. If not, embedded content and + ///
the attachments will not be available. + ///
+ + [JsonPropertyName("isAuthorized")] + public bool IsAuthorized { get; set; } + + /// + /// The unique identifier for the related transmission, if any. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The sender actor information for the transmission. + /// + + [JsonPropertyName("sender")] + public V1EndUserCommonActors_Actor Sender { get; set; } + + /// + /// The type of the transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesSearch_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesSearch_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesSearch_Content + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The summary of the content. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the content. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserDialogTransmissionsQueriesSearch_Transmission + { + /// + /// The attachments associated with the transmission. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The authorization attribute associated with the transmission. + /// + + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The content of the transmission. + /// + + [JsonPropertyName("content")] + public V1EndUserDialogTransmissionsQueriesSearch_Content Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The date and time when the transmission was deleted, if applicable. + /// + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + /// + /// The extended type URI for the transmission. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating if the authenticated user is authorized for this transmission. If not, embedded content and + ///
the attachments will not be available. + ///
+ + [JsonPropertyName("isAuthorized")] + public bool IsAuthorized { get; set; } + + /// + /// The unique identifier for the related transmission, if any. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The sender actor information for the transmission. + /// + + [JsonPropertyName("sender")] + public V1EndUserCommonActors_Actor Sender { get; set; } + + /// + /// The type of the transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserPartiesQueriesGet_AuthorizedParty + { + + [JsonPropertyName("hasKeyRole")] + public bool HasKeyRole { get; set; } + + [JsonPropertyName("hasOnlyAccessToSubParties")] + public bool HasOnlyAccessToSubParties { get; set; } + + [JsonPropertyName("isAccessManager")] + public bool IsAccessManager { get; set; } + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + [JsonPropertyName("isDeleted")] + public bool IsDeleted { get; set; } + + [JsonPropertyName("isMainAdministrator")] + public bool IsMainAdministrator { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("party")] + public string Party { get; set; } + + [JsonPropertyName("partyType")] + public string PartyType { get; set; } + + [JsonPropertyName("subParties")] + public ICollection SubParties { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1EndUserPartiesQueriesGet_Parties + { + + [JsonPropertyName("authorizedParties")] + public ICollection AuthorizedParties { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerCommonActors_Actor + { + /// + /// The identifier of the person or organization that sent the transmission. Mutually exclusive with ActorName. + ///
Might be omitted if ActorType is "ServiceOwner". + ///
+ + [JsonPropertyName("actorId")] + public string ActorId { get; set; } + + /// + /// Specifies the name of the entity that sent the transmission. Mutually exclusive with ActorId. If ActorId + ///
is supplied, the name will be automatically populated from the name registries. + ///
+ + [JsonPropertyName("actorName")] + public string ActorName { get; set; } + + /// + /// The type of actor that sent the transmission. + /// + + [JsonPropertyName("actorType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Actors_ActorType ActorType { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogActivitiesCreate_ActivityRequest + { + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The UUDIv7 of the action may be provided to support idempotent additions to the list of activities. + ///
If not supplied, a new UUIDv7 will be generated. + ///
+ + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + ///
Must be present in the request body. + ///
+ + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogActivitiesQueriesGet_Activity + { + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogActivitiesQueriesNotificationCondition_NotificationCondition + { + + [JsonPropertyName("sendNotification")] + public bool SendNotification { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public enum V1ServiceOwnerDialogActivitiesQueriesNotificationCondition_NotificationConditionType + { + + [System.Runtime.Serialization.EnumMember(Value = @"NotExists")] + NotExists = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"Exists")] + Exists = 1, + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogActivitiesQueriesSearch_Activity + { + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_Activity + { + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// A self-defined UUIDv7 may be provided to support idempotent creation of activities. If not provided, a new UUIDv7 will be generated. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + ///
Must be present in the request body. + ///
+ + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_ApiAction + { + /// + /// String identifier for the action, corresponding to the "action" attributeId used in the XACML service policy, + ///
which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The endpoints associated with the action. + /// + + [JsonPropertyName("endpoints")] + public ICollection Endpoints { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_ApiActionEndpoint + { + /// + /// Boolean indicating if the endpoint is deprecated. + /// + + [JsonPropertyName("deprecated")] + public bool Deprecated { get; set; } + + /// + /// Link to documentation for the endpoint, providing documentation for integrators. Should be a URL to a + ///
human-readable page. + ///
+ + [JsonPropertyName("documentationUrl")] + public System.Uri DocumentationUrl { get; set; } + + /// + /// The HTTP method that the endpoint expects for this action. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// Link to the request schema for the endpoint. Used to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("requestSchema")] + public System.Uri RequestSchema { get; set; } + + /// + /// Link to the response schema for the endpoint. Used to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("responseSchema")] + public System.Uri ResponseSchema { get; set; } + + /// + /// Date and time when the endpoint will no longer function. Only set if the endpoint is deprecated. Dialogporten + ///
will not enforce this date. + ///
+ + [JsonPropertyName("sunsetAt")] + public System.DateTimeOffset? SunsetAt { get; set; } + + /// + /// The fully qualified URL of the API endpoint. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + /// + /// Arbitrary string indicating the version of the endpoint. + /// + + [JsonPropertyName("version")] + public string Version { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_Content + { + /// + /// Additional information about the dialog. + ///
Supported media types: text/plain, text/markdown + ///
+ + [JsonPropertyName("additionalInfo")] + public V1CommonContent_ContentValue AdditionalInfo { get; set; } + + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. + ///
Supported media types: text/plain + ///
+ + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + ///
Supported media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("mainContentReference")] + public V1CommonContent_ContentValue MainContentReference { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. Must be text/plain if supplied. + ///
Supported media types: text/plain + ///
+ + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. + ///
Supported media types: text/plain + ///
+ + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. + ///
Supported media types: text/plain + ///
+ + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_DialogCommand + { + /// + /// An immutable list of activities associated with the dialog. + /// + + [JsonPropertyName("activities")] + public ICollection Activities { get; set; } + + /// + /// The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations. + /// + + [JsonPropertyName("apiActions")] + public ICollection ApiActions { get; set; } + + /// + /// The attachments associated with the dialog (on an aggregate level). + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The dialog unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsCommandsCreate_Content Content { get; set; } + + /// + /// If set, will override the date and time when the dialog is set as created. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// The expiration date for the dialog. This is the last date when the dialog is available for the end user. + ///
+ ///
After this date is passed, the dialog will be considered expired and no longer available for the end user in any + ///
API. If not supplied, the dialog will be considered to never expire. This field can be changed after creation. + ///
+ + [JsonPropertyName("expiresAt")] + public System.DateTimeOffset? ExpiresAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + /// + + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The GUI actions associated with the dialog. Should be used in browser-based interactive frontends. + /// + + [JsonPropertyName("guiActions")] + public ICollection GuiActions { get; set; } + + /// + /// A self-defined UUIDv7 may be provided to support idempotent creation of dialogs. If not provided, a new UUIDv7 will be generated. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The party code representing the organization or person that the dialog belongs to in URN format. + /// + + [JsonPropertyName("party")] + public string Party { get; set; } + + /// + /// Optional preceding process identifier to indicate the business process that preceded the process indicated in the "Process" field. Cannot be set without also "Process" being set. + /// + + [JsonPropertyName("precedingProcess")] + public string PrecedingProcess { get; set; } + + /// + /// Optional process identifier used to indicate a business process this dialog belongs to. + /// + + [JsonPropertyName("process")] + public string Process { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// A list of words (tags) that will be used in dialog search queries. Not visible in end-user DTO. + /// + + [JsonPropertyName("searchTags")] + public ICollection SearchTags { get; set; } + + /// + /// The service identifier for the service that the dialog is related to in URN-format. + ///
This corresponds to a resource in the Altinn Resource Registry, which the authenticated organization + ///
must own, i.e., be listed as the "competent authority" in the Resource Registry entry. + ///
+ + [JsonPropertyName("serviceResource")] + public string ServiceResource { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// Set the system label of the dialog Migration purposes. + /// + + [JsonPropertyName("systemLabel")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel? SystemLabel { get; set; } + + /// + /// The immutable list of transmissions associated with the dialog. + /// + + [JsonPropertyName("transmissions")] + public ICollection Transmissions { get; set; } + + /// + /// If set, will override the date and time when the dialog is set as last updated. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("updatedAt")] + public System.DateTimeOffset UpdatedAt { get; set; } + + /// + /// The timestamp when the dialog should be made visible for authorized end users. If not provided, the dialog will be + ///
immediately available. + ///
+ + [JsonPropertyName("visibleFrom")] + public System.DateTimeOffset? VisibleFrom { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_GuiAction + { + /// + /// The action identifier for the action, corresponding to the "action" attributeId used in the XACML service policy. + /// + + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The HTTP method that the frontend should use when redirecting the user. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb? HttpMethod { get; set; } + + /// + /// Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX + ///
for delete actions. + ///
+ + [JsonPropertyName("isDeleteDialogAction")] + public bool IsDeleteDialogAction { get; set; } + + /// + /// Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action + ///
priority. + ///
+ + [JsonPropertyName("priority")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActions_DialogGuiActionPriority Priority { get; set; } + + /// + /// If there should be a prompt asking the user for confirmation before the action is executed, + ///
this field should contain the prompt text. + ///
+ + [JsonPropertyName("prompt")] + public ICollection Prompt { get; set; } + + /// + /// The title of the action, this should be short and in verb form. Must be text/plain. + /// + + [JsonPropertyName("title")] + public ICollection Title { get; set; } + + /// + /// The fully qualified URL of the action, to which the user will be redirected when the action is triggered. Will be set to + ///
"urn:dialogporten:unauthorized" if the user is not authorized to perform the action. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_SearchTag + { + /// + /// A search tag value. + /// + + [JsonPropertyName("value")] + public string Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_Transmission + { + /// + /// The transmission-level attachments. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The transmission unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsCommandsCreate_TransmissionContent Content { get; set; } + + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// A self-defined UUIDv7 may be provided to support idempotent creation of transmissions. If not provided, a new UUIDv7 will be generated. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// Reference to any other transmission that this transmission is related to. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The actor that sent the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// A self-defined UUIDv7 may be provided to support idempotent creation of transmission attachments. If not provided, a new UUIDv7 will be generated. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsCreate_TransmissionContent + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The transmission summary. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The transmission title. Must be text/plain. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_Activity + { + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The UUDIv7 of the action may be provided to support idempotent additions to the list of activities. + ///
If not supplied, a new UUIDv7 will be generated. + ///
+ + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + ///
Must be present in the request body. + ///
+ + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_ApiAction + { + /// + /// String identifier for the action, corresponding to the "action" attributeId used in the XACML service policy, + ///
which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The endpoints associated with the action. + /// + + [JsonPropertyName("endpoints")] + public ICollection Endpoints { get; set; } + + /// + /// A UUIDv7 used for merging existing data, unknown IDs will be ignored as this entity does not support user-defined IDs. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_ApiActionEndpoint + { + /// + /// Boolean indicating if the endpoint is deprecated. + /// + + [JsonPropertyName("deprecated")] + public bool Deprecated { get; set; } + + /// + /// Link to documentation for the endpoint, providing documentation for integrators. Should be a URL to a + ///
human-readable page. + ///
+ + [JsonPropertyName("documentationUrl")] + public System.Uri DocumentationUrl { get; set; } + + /// + /// The HTTP method that the endpoint expects for this action. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// A UUIDv7 used for merging existing data, unknown IDs will be ignored as this entity does not support user-defined IDs. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// Link to the request schema for the endpoint. Used to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("requestSchema")] + public System.Uri RequestSchema { get; set; } + + /// + /// Link to the response schema for the endpoint. Used to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("responseSchema")] + public System.Uri ResponseSchema { get; set; } + + /// + /// Date and time when the endpoint will no longer function. Only set if the endpoint is deprecated. Dialogporten + ///
will not enforce this date. + ///
+ + [JsonPropertyName("sunsetAt")] + public System.DateTimeOffset? SunsetAt { get; set; } + + /// + /// The fully qualified URL of the API endpoint. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + /// + /// Arbitrary string indicating the version of the endpoint. + /// + + [JsonPropertyName("version")] + public string Version { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// A UUIDv7 used for merging existing data, unknown IDs will be ignored as this entity does not support user-defined IDs. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// A UUIDv7 used for merging existing data, unknown IDs will be ignored as this entity does not support user-defined IDs. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_Content + { + /// + /// Additional information about the dialog, this may contain Markdown. + /// + + [JsonPropertyName("additionalInfo")] + public V1CommonContent_ContentValue AdditionalInfo { get; set; } + + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. Must be text/plain. + /// + + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + /// + + [JsonPropertyName("mainContentReference")] + public V1CommonContent_ContentValue MainContentReference { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. Must be text/plain if supplied. + /// + + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. Must be text/plain. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. Must be text/plain. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_Dialog + { + /// + /// An immutable list of activities associated with the dialog. When updating via PUT, any activities added here + ///
will be appended to the existing list of activities. + ///
+ + [JsonPropertyName("activities")] + public ICollection Activities { get; set; } + + /// + /// The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations. + /// + + [JsonPropertyName("apiActions")] + public ICollection ApiActions { get; set; } + + /// + /// The attachments associated with the dialog (on an aggregate level). + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The dialog unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsCommandsUpdate_Content Content { get; set; } + + /// + /// The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// The expiration date for the dialog. This is the last date when the dialog is available for the end user. + ///
+ ///
After this date is passed, the dialog will be considered expired and no longer available for the end user in any + ///
API. If not supplied, the dialog will be considered to never expire. This field can be changed after creation. + ///
+ + [JsonPropertyName("expiresAt")] + public System.DateTimeOffset? ExpiresAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + /// + + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The GUI actions associated with the dialog. Should be used in browser-based interactive frontends. + /// + + [JsonPropertyName("guiActions")] + public ICollection GuiActions { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// A list of words (tags) that will be used in dialog search queries. Not visible in end-user DTO. + /// + + [JsonPropertyName("searchTags")] + public ICollection SearchTags { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// The immutable list of transmissions associated with the dialog. When updating via PUT, any transmissions + ///
added here will be appended to the existing list of transmissions. + ///
+ + [JsonPropertyName("transmissions")] + public ICollection Transmissions { get; set; } + + /// + /// The timestamp when the dialog should be made visible for authorized end users. If not provided, the dialog will be + ///
immediately available. + ///
+ + [JsonPropertyName("visibleFrom")] + public System.DateTimeOffset? VisibleFrom { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_GuiAction + { + /// + /// The action identifier for the action, corresponding to the "action" attributeId used in the XACML service policy. + /// + + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The HTTP method that the frontend should use when redirecting the user. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb? HttpMethod { get; set; } + + /// + /// A UUIDv7 used for merging existing data, unknown IDs will be ignored as this entity does not support user-defined IDs. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX + ///
for delete actions. + ///
+ + [JsonPropertyName("isDeleteDialogAction")] + public bool IsDeleteDialogAction { get; set; } + + /// + /// Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action + ///
priority. + ///
+ + [JsonPropertyName("priority")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActions_DialogGuiActionPriority Priority { get; set; } + + /// + /// If there should be a prompt asking the user for confirmation before the action is executed, + ///
this field should contain the prompt text. + ///
+ + [JsonPropertyName("prompt")] + public ICollection Prompt { get; set; } + + /// + /// The title of the action, this should be short and in verb form. Must be text/plain. + /// + + [JsonPropertyName("title")] + public ICollection Title { get; set; } + + /// + /// The fully qualified URL of the action, to which the user will be redirected when the action is triggered. Will be set to + ///
"urn:dialogporten:unauthorized" if the user is not authorized to perform the action. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_SearchTag + { + /// + /// A search tag value. + /// + + [JsonPropertyName("value")] + public string Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_Transmission + { + /// + /// The transmission-level attachments. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The transmission unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsCommandsUpdate_TransmissionContent Content { get; set; } + + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The UUDIv7 of the action may be provided to support idempotent additions to the list of transmissions. + ///
If not supplied, a new UUIDv7 will be generated. + ///
+ + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// Reference to any other transmission that this transmission is related to. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The actor that sent the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_TransmissionAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// A self-defined UUIDv7 may be provided to support idempotent creation of transmission attachments. If not provided, a new UUIDv7 will be generated. + /// + + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_TransmissionAttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsCommandsUpdate_TransmissionContent + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The transmission summary. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The transmission title. Must be text/plain. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogSeenLogsQueriesGet_SeenLog + { + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + [JsonPropertyName("seenBy")] + public V1ServiceOwnerCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogSeenLogsQueriesSearch_SeenLog + { + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + [JsonPropertyName("seenBy")] + public V1ServiceOwnerCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_Content + { + /// + /// Additional information about the dialog, this may contain Markdown. + /// + + [JsonPropertyName("additionalInfo")] + public V1CommonContent_ContentValue AdditionalInfo { get; set; } + + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. + /// + + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("mainContentReference")] + public V1CommonContent_ContentValue MainContentReference { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. + /// + + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_Dialog + { + /// + /// An immutable list of activities associated with the dialog. + /// + + [JsonPropertyName("activities")] + public ICollection Activities { get; set; } + + /// + /// The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations. + /// + + [JsonPropertyName("apiActions")] + public ICollection ApiActions { get; set; } + + /// + /// The attachments associated with the dialog (on an aggregate level). + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The dialog unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsQueriesGet_Content Content { get; set; } + + /// + /// The date and time when the dialog was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// If deleted, the date and time when the deletion was performed. + /// + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + /// + /// The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// The expiration date for the dialog. This is the last date when the dialog is available for the end user. + ///
+ ///
After this date is passed, the dialog will be considered expired and no longer available for the end user in any + ///
API. If not supplied, the dialog will be considered to never expire. This field can be changed by the service + ///
owner after the dialog has been created. + ///
+ + [JsonPropertyName("expiresAt")] + public System.DateTimeOffset? ExpiresAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details on the possible values (if + ///
in use). + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The GUI actions associated with the dialog. Should be used in browser-based interactive frontends. + /// + + [JsonPropertyName("guiActions")] + public ICollection GuiActions { get; set; } + + /// + /// The unique identifier for the dialog in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The service owner code representing the organization (service owner) related to this dialog. + /// + + [JsonPropertyName("org")] + public string Org { get; set; } + + /// + /// The party code representing the organization or person that the dialog belongs to in URN format. + /// + + [JsonPropertyName("party")] + public string Party { get; set; } + + /// + /// Optional preceding process identifier to indicate the business process that preceded the process indicated in the "Process" field. Cannot be set without also "Process" being set. + /// + + [JsonPropertyName("precedingProcess")] + public string PrecedingProcess { get; set; } + + /// + /// Optional process identifier used to indicate a business process this dialog belongs to. + /// + + [JsonPropertyName("process")] + public string Process { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// The unique identifier for the revision in UUIDv4 format. + /// + + [JsonPropertyName("revision")] + public System.Guid Revision { get; set; } + + /// + /// The list of words (tags) that will be used in dialog search queries. Not visible in end-user DTO. + /// + + [JsonPropertyName("searchTags")] + public ICollection SearchTags { get; set; } + + /// + /// The list of seen log entries for the dialog newer than the dialog ChangedAt date. + /// + + [JsonPropertyName("seenSinceLastUpdate")] + public ICollection SeenSinceLastUpdate { get; set; } + + /// + /// The service identifier for the service that the dialog is related to in URN-format. + ///
This corresponds to a service resource in the Altinn Resource Registry. + ///
+ + [JsonPropertyName("serviceResource")] + public string ServiceResource { get; set; } + + /// + /// The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType). + /// + + [JsonPropertyName("serviceResourceType")] + public string ServiceResourceType { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// Current display state. + /// + + [JsonPropertyName("systemLabel")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel SystemLabel { get; set; } + + /// + /// The immutable list of transmissions associated with the dialog. + /// + + [JsonPropertyName("transmissions")] + public ICollection Transmissions { get; set; } + + /// + /// The date and time when the dialog was last updated. + /// + + [JsonPropertyName("updatedAt")] + public System.DateTimeOffset UpdatedAt { get; set; } + + /// + /// The timestamp when the dialog will be made visible for authorized end users. + /// + + [JsonPropertyName("visibleFrom")] + public System.DateTimeOffset? VisibleFrom { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogActivity + { + /// + /// The date and time when the activity was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// An arbitrary URI/URN with a service-specific activity type. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the activity in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + /// + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of activity. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogApiAction + { + /// + /// String identifier for the action, corresponding to the "action" attributeId used in the XACML service policy, + ///
which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The endpoints associated with the action. + /// + + [JsonPropertyName("endpoints")] + public ICollection Endpoints { get; set; } + + /// + /// The unique identifier for the action in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// True if the authenticated user (set in the query) is authorized for this action. + /// + + [JsonPropertyName("isAuthorized")] + public bool? IsAuthorized { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogApiActionEndpoint + { + /// + /// Boolean indicating if the endpoint is deprecated. Integrators should migrate to endpoints with a higher version. + /// + + [JsonPropertyName("deprecated")] + public bool Deprecated { get; set; } + + /// + /// Link to service provider documentation for the endpoint. Used for service owners to provide documentation for + ///
integrators. Should be a URL to a human-readable page. + ///
+ + [JsonPropertyName("documentationUrl")] + public System.Uri DocumentationUrl { get; set; } + + /// + /// The HTTP method that the endpoint expects for this action. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// The unique identifier for the endpoint in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Link to the request schema for the endpoint. Used by service owners to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("requestSchema")] + public System.Uri RequestSchema { get; set; } + + /// + /// Link to the response schema for the endpoint. Used for service owners to provide documentation for integrators. + ///
Dialogporten will not validate information on this endpoint. + ///
+ + [JsonPropertyName("responseSchema")] + public System.Uri ResponseSchema { get; set; } + + /// + /// Date and time when the service owner has indicated that endpoint will no longer function. Only set if the endpoint + ///
is deprecated. Dialogporten will not enforce this date. + ///
+ + [JsonPropertyName("sunsetAt")] + public System.DateTimeOffset? SunsetAt { get; set; } + + /// + /// The fully qualified URL of the API endpoint. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + /// + /// Arbitrary string indicating the version of the endpoint. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("version")] + public string Version { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogAttachmentUrl + { + /// + /// What type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogGuiAction + { + /// + /// The action identifier for the action, corresponding to the "action" attributeId used in the XACML service policy. + /// + + [JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The HTTP method that the frontend should use when redirecting the user. + /// + + [JsonPropertyName("httpMethod")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Http_HttpVerb HttpMethod { get; set; } + + /// + /// The unique identifier for the action in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Whether the user, if supplied in the query, is authorized to perform the action. + /// + + [JsonPropertyName("isAuthorized")] + public bool? IsAuthorized { get; set; } + + /// + /// Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX + ///
for delete actions. + ///
+ + [JsonPropertyName("isDeleteDialogAction")] + public bool IsDeleteDialogAction { get; set; } + + /// + /// Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action + ///
priority. + ///
+ + [JsonPropertyName("priority")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActions_DialogGuiActionPriority Priority { get; set; } + + /// + /// If there should be a prompt asking the user for confirmation before the action is executed, + ///
this field should contain the prompt text. + ///
+ + [JsonPropertyName("prompt")] + public ICollection Prompt { get; set; } + + /// + /// The title of the action, this should be short and in verb form. + /// + + [JsonPropertyName("title")] + public ICollection Title { get; set; } + + /// + /// The fully qualified URL of the action, to which the user will be redirected when the action is triggered. + /// + + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogSeenLog + { + /// + /// The unique identifier for the seen log entry in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating whether the seen log entry was created by the current end user, if provided in the query. + /// + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + /// + /// Flag indicating whether the seen log entry was created via the service owner. + ///
+ ///
This is used when the service owner uses the service owner API to implement its own frontend. + ///
+ + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + /// + /// The timestamp when the dialog revision was seen. + /// + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + /// + /// The actor that saw the dialog revision. + /// + + [JsonPropertyName("seenBy")] + public V1ServiceOwnerCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogTransmission + { + /// + /// The transmission-level attachments. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The transmission unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsQueriesGet_DialogTransmissionContent Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating if the authenticated user supplied in the query is authorized for this transmission. + /// + + [JsonPropertyName("isAuthorized")] + public bool? IsAuthorized { get; set; } + + /// + /// Reference to any other transmission that this transmission is related to. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The actor that sent the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogTransmissionAttachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogTransmissionAttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_DialogTransmissionContent + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The transmission summary. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The transmission title. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesGet_SearchTag + { + /// + /// A search tag value. + /// + + [JsonPropertyName("value")] + public string Value { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesSearch_Content + { + /// + /// Used as the human-readable label used to describe the "ExtendedStatus" field. + /// + + [JsonPropertyName("extendedStatus")] + public V1CommonContent_ContentValue ExtendedStatus { get; set; } + + /// + /// Overridden sender name. If not supplied, assume "org" as the sender name. + /// + + [JsonPropertyName("senderName")] + public V1CommonContent_ContentValue SenderName { get; set; } + + /// + /// A short summary of the dialog and its current state. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the dialog. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesSearch_Dialog + { + /// + /// The content of the dialog in search results. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsQueriesSearch_Content Content { get; set; } + + /// + /// The date and time when the dialog was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The due date for the dialog. This is the last date when the dialog is expected to be completed. + /// + + [JsonPropertyName("dueAt")] + public System.DateTimeOffset? DueAt { get; set; } + + /// + /// Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of + ///
the dialog to further specify the "status" enum. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details on the possible values (if + ///
in use). + ///
+ + [JsonPropertyName("extendedStatus")] + public string ExtendedStatus { get; set; } + + /// + /// Arbitrary string with a service-specific reference to an external system or service. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("externalReference")] + public string ExternalReference { get; set; } + + /// + /// The number of attachments in the dialog made available for browser-based frontends. + /// + + [JsonPropertyName("guiAttachmentCount")] + public int? GuiAttachmentCount { get; set; } + + /// + /// The unique identifier for the dialog in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The latest entry in the dialog's activity log. + /// + + [JsonPropertyName("latestActivity")] + public V1ServiceOwnerDialogsQueriesSearch_DialogActivity LatestActivity { get; set; } + + /// + /// The service owner code representing the organization (service owner) related to this dialog. + /// + + [JsonPropertyName("org")] + public string Org { get; set; } + + /// + /// The party code representing the organization or person that the dialog belongs to in URN format. + /// + + [JsonPropertyName("party")] + public string Party { get; set; } + + /// + /// Optional preceding process identifier to indicate the business process that preceded the process indicated in the "Process" field. Cannot be set without also "Process" being set. + /// + + [JsonPropertyName("precedingProcess")] + public string PrecedingProcess { get; set; } + + /// + /// Optional process identifier used to indicate a business process this dialog belongs to. + /// + + [JsonPropertyName("process")] + public string Process { get; set; } + + /// + /// Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come + ///
to a natural completion (successful or not). + ///
+ + [JsonPropertyName("progress")] + public int? Progress { get; set; } + + /// + /// The unique identifier for the revision in UUIDv4 format. + /// + + [JsonPropertyName("revision")] + public System.Guid Revision { get; set; } + + /// + /// The list of seen log entries for the dialog newer than the dialog ChangedAt date. + /// + + [JsonPropertyName("seenSinceLastUpdate")] + public ICollection SeenSinceLastUpdate { get; set; } + + /// + /// The service identifier for the service that the dialog is related to in URN-format. + ///
This corresponds to a service resource in the Altinn Resource Registry. + ///
+ + [JsonPropertyName("serviceResource")] + public string ServiceResource { get; set; } + + /// + /// The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType). + /// + + [JsonPropertyName("serviceResourceType")] + public string ServiceResourceType { get; set; } + + /// + /// The aggregated status of the dialog. + /// + + [JsonPropertyName("status")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntities_DialogStatus Status { get; set; } + + /// + /// Current display state. + /// + + [JsonPropertyName("systemLabel")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogEndUserContextsEntities_SystemLabel SystemLabel { get; set; } + + /// + /// The date and time when the dialog was last updated. + /// + + [JsonPropertyName("updatedAt")] + public System.DateTimeOffset UpdatedAt { get; set; } + + /// + /// The timestamp when the dialog will be made visible for authorized end users. + /// + + [JsonPropertyName("visibleFrom")] + public System.DateTimeOffset? VisibleFrom { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesSearch_DialogActivity + { + /// + /// The date and time when the activity was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset? CreatedAt { get; set; } + + /// + /// Unstructured text describing the activity. Only set if the activity type is "Information". + /// + + [JsonPropertyName("description")] + public ICollection Description { get; set; } + + /// + /// An arbitrary string with a service-specific activity type. + ///
+ ///
Consult the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the activity in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The actor that performed the activity. + /// + + [JsonPropertyName("performedBy")] + public V1ServiceOwnerCommonActors_Actor PerformedBy { get; set; } + + /// + /// If the activity is related to a particular transmission, this field will contain the transmission identifier. + /// + + [JsonPropertyName("transmissionId")] + public System.Guid? TransmissionId { get; set; } + + /// + /// The type of activity. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesActivities_DialogActivityType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsQueriesSearch_DialogSeenLog + { + /// + /// The unique identifier for the seen log entry in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// Flag indicating whether the seen log entry was created by the end user supplied in the query. + /// + + [JsonPropertyName("isCurrentEndUser")] + public bool IsCurrentEndUser { get; set; } + + /// + /// Flag indicating whether the seen log entry was created via the service owner. + ///
+ ///
This is used when the service owner uses the service owner API to implement its own frontend. + ///
+ + [JsonPropertyName("isViaServiceOwner")] + public bool? IsViaServiceOwner { get; set; } + + /// + /// The timestamp when the dialog revision was seen. + /// + + [JsonPropertyName("seenAt")] + public System.DateTimeOffset SeenAt { get; set; } + + /// + /// The actor that saw the dialog revision. + /// + + [JsonPropertyName("seenBy")] + public V1ServiceOwnerCommonActors_Actor SeenBy { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogsUpdate_DialogRequest + { + + [JsonPropertyName("dto")] + public V1ServiceOwnerDialogsCommandsUpdate_Dialog Dto { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsCreate_TransmissionRequest + { + /// + /// The transmission-level attachments. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service + ///
policy, which by default is the policy belonging to the service referred to by "serviceResource" in the dialog. + ///
+ ///
Can also be used to refer to other service policies. + ///
+ + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The transmission unstructured text content. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogsCommandsUpdate_TransmissionContent Content { get; set; } + + /// + /// If supplied, overrides the creating date and time for the transmission. + ///
If not supplied, the current date /time will be used. + ///
+ + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// Arbitrary URI/URN describing a service-specific transmission type. + ///
+ ///
Refer to the service-specific documentation provided by the service owner for details (if in use). + ///
+ + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The UUDIv7 of the action may be provided to support idempotent additions to the list of transmissions. + ///
If not supplied, a new UUIDv7 will be generated. + ///
+ + [JsonPropertyName("id")] + public System.Guid? Id { get; set; } + + /// + /// Reference to any other transmission that this transmission is related to. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The actor that sent the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesGet_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesGet_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesGet_Content + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + ///
Allowed media types: application/vnd.dialogporten.frontchannelembed+json;type=markdown + ///
+ + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The summary of the content. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the content. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesGet_Transmission + { + /// + /// The attachments associated with the transmission. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The authorization attribute associated with the transmission. + /// + + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The content of the transmission. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogTransmissionsQueriesGet_Content Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The date and time when the transmission was deleted, if applicable. + /// + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + /// + /// The extended type URI for the transmission. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The unique identifier for the related transmission, if any. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The sender actor information for the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of the transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesSearch_Attachment + { + /// + /// The display name of the attachment that should be used in GUIs. + /// + + [JsonPropertyName("displayName")] + public ICollection DisplayName { get; set; } + + /// + /// The unique identifier for the attachment in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The URLs associated with the attachment, each referring to a different representation of the attachment. + /// + + [JsonPropertyName("urls")] + public ICollection Urls { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesSearch_AttachmentUrl + { + /// + /// The type of consumer the URL is intended for. + /// + + [JsonPropertyName("consumerType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public Attachments_AttachmentUrlConsumerType ConsumerType { get; set; } + + /// + /// The unique identifier for the attachment URL in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The media type of the attachment. + /// + + [JsonPropertyName("mediaType")] + public string MediaType { get; set; } + + /// + /// The fully qualified URL of the attachment. Will be set to "urn:dialogporten:unauthorized" if the user is + ///
not authorized to access the transmission. + ///
+ + [JsonPropertyName("url")] + public System.Uri Url { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesSearch_Content + { + /// + /// Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. + /// + + [JsonPropertyName("contentReference")] + public V1CommonContent_ContentValue ContentReference { get; set; } + + /// + /// The summary of the content. + /// + + [JsonPropertyName("summary")] + public V1CommonContent_ContentValue Summary { get; set; } + + /// + /// The title of the content. + /// + + [JsonPropertyName("title")] + public V1CommonContent_ContentValue Title { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1ServiceOwnerDialogTransmissionsQueriesSearch_Transmission + { + /// + /// The attachments associated with the transmission. + /// + + [JsonPropertyName("attachments")] + public ICollection Attachments { get; set; } + + /// + /// The authorization attribute associated with the transmission. + /// + + [JsonPropertyName("authorizationAttribute")] + public string AuthorizationAttribute { get; set; } + + /// + /// The content of the transmission. + /// + + [JsonPropertyName("content")] + public V1ServiceOwnerDialogTransmissionsQueriesSearch_Content Content { get; set; } + + /// + /// The date and time when the transmission was created. + /// + + [JsonPropertyName("createdAt")] + public System.DateTimeOffset CreatedAt { get; set; } + + /// + /// The date and time when the transmission was deleted, if applicable. + /// + + [JsonPropertyName("deletedAt")] + public System.DateTimeOffset? DeletedAt { get; set; } + + /// + /// The extended type URI for the transmission. + /// + + [JsonPropertyName("extendedType")] + public System.Uri ExtendedType { get; set; } + + /// + /// The unique identifier for the transmission in UUIDv7 format. + /// + + [JsonPropertyName("id")] + public System.Guid Id { get; set; } + + /// + /// The unique identifier for the related transmission, if any. + /// + + [JsonPropertyName("relatedTransmissionId")] + public System.Guid? RelatedTransmissionId { get; set; } + + /// + /// The sender actor information for the transmission. + /// + + [JsonPropertyName("sender")] + public V1ServiceOwnerCommonActors_Actor Sender { get; set; } + + /// + /// The type of the transmission. + /// + + [JsonPropertyName("type")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public DialogsEntitiesTransmissions_DialogTransmissionType Type { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1WellKnownJwksQueriesGet_GetJwks + { + + [JsonPropertyName("keys")] + public ICollection Keys { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1WellKnownJwksQueriesGet_Jwk + { + + [JsonPropertyName("alg")] + public string Alg { get; set; } + + [JsonPropertyName("crv")] + public string Crv { get; set; } + + [JsonPropertyName("kid")] + public string Kid { get; set; } + + [JsonPropertyName("kty")] + public string Kty { get; set; } + + [JsonPropertyName("use")] + public string Use { get; set; } + + [JsonPropertyName("x")] + public string X { get; set; } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class V1WellKnownOauthAuthorizationServerQueriesGet_GetOauthAuthorizationServer + { + + [JsonPropertyName("issuer")] + public string Issuer { get; set; } + + [JsonPropertyName("jwks_uri")] + public string Jwks_uri { get; set; } + + } + + +} + +#pragma warning restore 108 +#pragma warning restore 114 +#pragma warning restore 472 +#pragma warning restore 612 +#pragma warning restore 1573 +#pragma warning restore 1591 +#pragma warning restore 8073 +#pragma warning restore 3016 +#pragma warning restore 8603 +#pragma warning restore 8604 +#pragma warning restore 8625 \ No newline at end of file