{
  "openapi": "3.0.0",
  "info": {
    "title": "Dialogporten",
    "description": "Dialogporten API description for both enduser and serviceowner users, as well as open metadata information for public key material.<br><br>All operations* described within this document require authentication and authorization. Read more at <a href=\"https://docs.altinn.studio/en/dialogporten/user-guides/authenticating/\">https://docs.altinn.studio/en/dialogporten/user-guides/authenticating/</a><br><br><strong>All GET operations* and POST operations may return or contain, respectively, personal identifiable information (national identity numbers and names).</strong><br><br>For more information about this product, see <a href=\"https://docs.altinn.studio/en/dialogporten\">https://docs.altinn.studio/en/dialogporten</a><br><br><em>* Except the metadata APIs\n### About HTTP 409 Conflict\n\nAll `409 Conflict` responses in Dialogporten\nwill contain a RFC 9457 compliant ProblemDetails in the response body.\nThe ProblemDetails will contain the offending conflict(s), along with \nany extra fields necessary to describe the conflict(s).\nThese extra fields are not visible in the specification for 409 responses.\nPlease refer to this table to learn what extra fields each conflict has:\n\n| Code | Description | Extra fields |\n| --- | --- | --- |\n<a id=\"DP.CFL-00000\">DP.CFL-00000</a> | The request conflicted with a concurrent operation. Please try again. | \n<a id=\"DP.CFL-00001\">DP.CFL-00001</a> | Idempotent key already exist. | idempotentKey (String)\n<a id=\"DP.CFL-00002\">DP.CFL-00002</a> | Idempotent Key caused a dialog id conflict. | dialogId (Guid), idempotentKey (String)",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://platform.tt02.altinn.no/dialogporten"
    }
  ],
  "paths": {
    "/api/v1/.well-known/oauth-authorization-server": {
      "get": {
        "tags": [
          "Metadata"
        ],
        "summary": "Gets the OAuth 2.0 Metadata for automatic configuration of clients verifying dialog tokens",
        "description": "This endpoint can be used by client integrations supporting automatic discovery of \"OAuth 2.0 Authorization Server\" metadata, enabling verification of dialog tokens issued by Dialogporten.\n\nDialogporten issues a single token type, the dialog token, signed with the published keys and carrying the JOSE \"typ\" header \"JWT\". Besides the action grants in the \"a\" claim, the token's \"e\" claim lists the entities carrying an authorization context that the end user is authorized for, by entity id or by the \"tokenRef\" the service owner supplied on the context; a receiving service handling a request scoped to such an entity must check both that the entity is listed there and that \"i\" identifies the dialog being accessed. A tokenRef shared by multiple entities represents an OR-group: authorization for any group member adds the shared value.",
        "operationId": "V1WellKnownOauthAuthorizationServerGet_OauthAuthorizationServer",
        "responses": {
          "200": {
            "description": "The OAuth 2.0 Authorization Server Metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1WellKnownOauthAuthorizationServerQueriesGet_OauthAuthorizationServer"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/.well-known/jwks.json": {
      "get": {
        "tags": [
          "Metadata"
        ],
        "summary": "Gets the JSON Web Key Set (JWKS) containing the public keys used to verify dialog token signatures",
        "description": "This endpoint can be used by client integrations supporting automatic discovery of \"OAuth 2.0 Authorization Server\" metadata, enabling verification of dialog tokens issued by Dialogporten.\n\nDialogporten issues a single token type, the dialog token, signed with these keys and carrying the JOSE \"typ\" header \"JWT\". Besides the action grants in the \"a\" claim, the token's \"e\" claim lists the entities carrying an authorization context that the end user is authorized for, by entity id or by the \"tokenRef\" the service owner supplied on the context; a receiving service handling a request scoped to such an entity must check both that the entity is listed there and that \"i\" identifies the dialog being accessed. A tokenRef shared by multiple entities represents an OR-group: authorization for any group member adds the shared value.",
        "operationId": "V1WellKnownJwksGet_Jwks",
        "responses": {
          "200": {
            "description": "The OAuth 2.0 Authorization Server Metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1WellKnownJwksQueriesGet_Jwks"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/context/labels": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Retrieve service owner labels for a dialog.",
        "description": "Fetches all labels associated with the service owner context of a specific dialog.",
        "operationId": "V1ServiceOwnerServiceOwnerContextQueriesGetServiceOwnerLabel_ServiceOwnerLabel",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the service owner labels.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the ServiceOwner Context",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/V1ServiceOwnerServiceOwnerContextQueriesGetServiceOwnerLabels_ServiceOwnerLabel"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Add a service owner label to a dialog",
        "description": "Add a label to the service owner context.\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.",
        "operationId": "V1ServiceOwnerServiceOwnerContextCommandsCreateServiceOwnerLabel_ServiceOwnerLabel",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "x-name": "dto",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1ServiceOwnerServiceOwnerContextCommandsCreateServiceOwnerLabel_Label"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "The dialog DialogServiceOwnerLabel was updated successfully.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the ServiceOwner Context",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider digdir:dialogporten.serviceprovider.changetransmissions\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider",
              "digdir:dialogporten.serviceprovider.changetransmissions"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/context/labels/{label}": {
      "delete": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Delete a service owner label for a dialog",
        "description": "Removes a specific label from the service owner context of a dialog. If the label does not exist, a NotFound response is returned.",
        "operationId": "V1ServiceOwnerServiceOwnerContextCommandsDeleteServiceOwnerLabel_ServiceOwnerLabel",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "label",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted the service owner label.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the ServiceOwner Context",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog or service owner label was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/endusercontext/systemlabels": {
      "put": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Sets the system labels of a dialog",
        "description": "Sets the system labels of the dialog.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply EnduserContextRevision to ensure that the context is not modified/deleted by another request in the meantime.",
        "operationId": "V1ServiceOwnerEndUserContextCommandsSetSystemLabel_SetDialogSystemLabels",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "enduserId",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "x-name": "SetDialogSystemLabelRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1ServiceOwnerEndUserContextCommandsSetSystemLabel_SetDialogSystemLabelRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "204": {
            "description": "The dialog system label was updated successfully.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the dialog",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to update the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/endusercontext/systemlabels/actions/bulkset": {
      "post": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Sets system labels for multiple dialogs",
        "description": "Sets the system labels for a list of dialogs, optionally including a end user context revision for each dialog.",
        "operationId": "V1ServiceOwnerEndUserContextCommandsBulkSetSystemLabels_BulkSetDialogSystemLabels",
        "parameters": [
          {
            "name": "enduserId",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "x-name": "dto",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1ServiceOwnerEndUserContextCommandsBulkSetSystemLabels_BulkSetSystemLabel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "The dialog system labels was updated successfully."
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to update the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/transmissions": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Gets a list of dialog transmissions",
        "description": "Gets the list of transmissions belonging to a dialog",
        "operationId": "V1ServiceOwnerDialogsQueriesSearchTransmissions_DialogTransmission",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog transmission list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchTransmissions_Transmission"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to get the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Adds a transmission to a dialog",
        "description": "The transmission is created with the given configuration.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.",
        "operationId": "V1ServiceOwnerDialogsCommandsCreateTransmission_DialogTransmission",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "x-name": "CreateTransmissionRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreateTransmission_TransmissionRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "201": {
            "description": "The UUID of the created dialog transmission. A relative URL to the newly created activity is set in the \"Location\" header.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the dialog",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "018bb8e5-d9d0-7434-8ec5-569a6c8e01fc"
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to create child entity for the given dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "One of: \n- [DP.CFL-00000](#DP.CFL-00000)\n- [DP.CFL-00001](#DP.CFL-00001)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/seenlog": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Gets all seen log records for a dialog",
        "description": "Gets all seen log records for a dialog.",
        "operationId": "V1ServiceOwnerDialogsQueriesSearchSeenLogs_DialogSeenLog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog seen log records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchSeenLogs_SeenLog"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/endusercontext": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Gets end user context system labels for dialogs",
        "description": "Performs a search for dialog end user context labels, returning a paginated list of dialog ids and end user context revisions.\n\n* Party is required.\n* System labels are matched with OR semantics.\n* See \\\"continuationToken\\\" in the response for how to get the next page of results.\n* hasNextPage will be set to true if there are more items to get.",
        "operationId": "V1ServiceOwnerDialogsQueriesSearchEndUserContext_DialogEndUserContext",
        "parameters": [
          {
            "name": "party",
            "in": "query",
            "style": "form",
            "explode": true,
            "required": true,
            "description": "Filter by one or more owning parties",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": [
              "urn:altinn:organization:identifier-no:912345678"
            ]
          },
          {
            "name": "contentUpdatedAfter",
            "in": "query",
            "description": "Only return context for dialogs with contentUpdatedAt greater than or equal to the supplied date-time.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "label",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by one or more system labels",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
              }
            }
          },
          {
            "name": "continuationToken",
            "in": "query",
            "description": "Supply \"continuationToken\" for the response to get the next page of results, if hasNextPage is true",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of results per page (1-1000, default: 100)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog list.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedListOfV1ServiceOwnerDialogsQueriesSearchEndUserContext_DialogEndUserContextItem"
                }
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider digdir:dialogporten.serviceprovider.search\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider",
              "digdir:dialogporten.serviceprovider.search"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/activities": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Gets a list of dialog activities",
        "description": "Gets the list of activities belonging to a dialog",
        "operationId": "V1ServiceOwnerDialogsQueriesSearchActivities_DialogActivity",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog activity list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchActivities_Activity"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to get the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Adds an activity to a dialog's activity history",
        "description": "The activity is created with the given configuration.\n\nCreating an activity does not count as a content change, \nso it leaves the end user's system labels untouched; a dialog in 'Bin' or 'Archive' stays there.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.",
        "operationId": "V1ServiceOwnerDialogsCommandsCreateActivity_DialogActivity",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "x-name": "CreateActivityRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreateActivity_ActivityRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "201": {
            "description": "The UUID of the created dialog activity. A relative URL to the newly created activity is set in the \"Location\" header.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the dialog",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "018bb8e5-d9d0-7434-8ec5-569a6c8e01fc"
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to create child entity for the given dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Gets a list of dialogs",
        "description": "Performs a search for dialogs, returning a paginated list of dialogs.\n\n* All date parameters must contain explicit time zone. Example: 2023-10-27T10:00:00Z or 2023-10-27T10:00:00+01:00\n* See \"continuationToken\" in the response for how to get the next page of results.\n* hasNextPage will be set to true if there are more items to get.",
        "operationId": "V1ServiceOwnerDialogsQueriesSearch_Dialog",
        "parameters": [
          {
            "name": "serviceResource",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by one or more service resources",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "party",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by one or more owning parties",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "endUserId",
            "in": "query",
            "description": "Filter by end user id",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "extendedStatus",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by one or more extended statuses",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "externalReference",
            "in": "query",
            "description": "Filter by external reference",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "status",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by status",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "$ref": "#/components/schemas/DialogsEntities_DialogStatus"
              }
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "description": "If set to 'include', the result will include both deleted and non-deleted dialogs. If set to 'exclude', the result will only include non-deleted dialogs. If set to 'only', the result will only include deleted dialogs",
            "schema": {
              "nullable": true,
              "allOf": [
                {
                  "$ref": "#/components/schemas/V1Common_DeletedFilter"
                }
              ]
            }
          },
          {
            "name": "createdAfter",
            "in": "query",
            "description": "Only return dialogs created after this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "createdBefore",
            "in": "query",
            "description": "Only return dialogs created before this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "updatedAfter",
            "in": "query",
            "description": "Only return dialogs updated after this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "updatedBefore",
            "in": "query",
            "description": "Only return dialogs updated before this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "contentUpdatedAfter",
            "in": "query",
            "description": "Only return dialogs with content updated after this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "contentUpdatedBefore",
            "in": "query",
            "description": "Only return dialogs with content updated before this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "isContentSeen",
            "in": "query",
            "description": "Only return dialogs that have content that has/hasn't been seen.\nIf null, no filtering is applied\nIf true, returns dialogs that have been seen\nIf false, returns dialogs that have not been seen\n            \nA dialog's content is considered seen if:\n- It has been visited by the GET .../dialogs/{dialogId} endpoint since the last content update, and\n- It does not have a system label MarkedAsUnopened.",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "dueAfter",
            "in": "query",
            "description": "Only return dialogs with due date after this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "dueBefore",
            "in": "query",
            "description": "Only return dialogs with due date before this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "visibleAfter",
            "in": "query",
            "description": "Only return dialogs with visible-from date after this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "visibleBefore",
            "in": "query",
            "description": "Only return dialogs with visible-from date before this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "process",
            "in": "query",
            "description": "Filter by process",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "systemLabel",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by Display state",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
              }
            }
          },
          {
            "name": "excludeApiOnly",
            "in": "query",
            "description": "Whether to exclude API-only dialogs from the results. Defaults to false.",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Search string for free text search. Will attempt to fuzzily match in all free text fields in the aggregate",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "serviceOwnerLabels",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by one or more labels. Multiple labels are combined with AND, i.e., all labels must match. Supports prefix matching with '*' at the end of the label. For example, 'label*' will match 'label', 'label1', 'label2', etc.",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "searchLanguageCode",
            "in": "query",
            "description": "Limit free text search to texts with this language code, e.g. 'nb', 'en'. Culture codes will be normalized to neutral language codes (ISO 639). Default: search all culture codes",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "continuationToken",
            "in": "query",
            "description": "Supply \"continuationToken\" for the response to get the next page of results, if hasNextPage is true",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of results per page (1-1000, default: 100)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog list.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedListOfV1ServiceOwnerDialogsQueriesSearch_Dialog"
                }
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider digdir:dialogporten.serviceprovider.search\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider",
              "digdir:dialogporten.serviceprovider.search"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Creates a new dialog",
        "description": "The dialog is created with the given configuration.\n\nFor detailed information on validation rules, see [the source for create dialog validators](https://github.com/Altinn/dialogporten/tree/main/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/Dialogs/Commands/Create/Validators)",
        "operationId": "V1ServiceOwnerDialogsCommandsCreate_Dialog",
        "requestBody": {
          "x-name": "dto",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_Dialog"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The UUID of the created dialog aggregate. A relative URL to the newly created activity is set in the \"Location\" header.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the dialog",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "018bb8e5-d9d0-7434-8ec5-569a6c8e01fc"
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to create a dialog for the given serviceResource (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "One of: \n- [DP.CFL-00000](#DP.CFL-00000)\n- [DP.CFL-00001](#DP.CFL-00001)\n- [DP.CFL-00002](#DP.CFL-00002)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/actions/should-send-notification": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Returns a boolean value based on conditions used to determine if a notification is to be sent",
        "description": "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.",
        "operationId": "V1ServiceOwnerDialogsQueriesNotificationCondition_NotificationCondition",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "conditionType",
            "in": "query",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesNotificationCondition_NotificationConditionType"
                }
              ]
            }
          },
          {
            "name": "activityType",
            "in": "query",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
                }
              ]
            }
          },
          {
            "name": "transmissionId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the notification determination.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesNotificationCondition_NotificationCondition"
                }
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from Maskinporten with the scope(s) \"altinn:system/notifications.condition.check\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "altinn:system/notifications.condition.check"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/transmissions/{transmissionId}": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Gets a single dialog transmission",
        "description": "Gets a single transmission belonging to a dialog.",
        "operationId": "V1ServiceOwnerDialogsQueriesGetTransmission_DialogTransmission",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "transmissionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog transmission.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetTransmission_Transmission"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to get child entity for the given dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The specified dialog ID or transmission ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      },
      "put": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Replaces a transmission",
        "description": "Replaces a given transmission with the supplied model.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.",
        "operationId": "V1ServiceOwnerDialogsCommandsUpdateTransmission_DialogTransmission",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "transmissionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "x-name": "UpdateTransmissionRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdateTransmission_TransmissionRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "204": {
            "description": "The dialog transmission was updated successfully.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the dialog",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider digdir:dialogporten.serviceprovider.changetransmissions\".\n- Unauthorized to update child entity for the given dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The specified dialog ID or transmission ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "One of: \n- [DP.CFL-00000](#DP.CFL-00000)\n- [DP.CFL-00001](#DP.CFL-00001)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider",
              "digdir:dialogporten.serviceprovider.changetransmissions"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/seenlog/{seenLogId}": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Gets a single dialog seen log record",
        "description": "Gets a single dialog seen log record.",
        "operationId": "V1ServiceOwnerDialogsQueriesGetSeenLog_DialogSeenLog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "seenLogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog seen log record.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetSeenLog_SeenLog"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/activities/{activityId}": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Gets a single dialog activity",
        "description": "Gets a single activity belonging to a dialog.",
        "operationId": "V1ServiceOwnerDialogsQueriesGetActivity_DialogActivity",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "activityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog activity.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetActivity_Activity"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to get child entity for the given dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The specified dialog ID or activity ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Gets a single dialog",
        "description": "Gets a single dialog aggregate.\n\nNote that this operation may return deleted dialogs (see the field `DeletedAt`).",
        "operationId": "V1ServiceOwnerDialogsQueriesGet_Dialog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "endUserId",
            "in": "query",
            "description": "Filter by end user id",
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog aggregate.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_Dialog"
                }
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to get the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      },
      "put": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Replaces a dialog",
        "description": "Replaces a given dialog with the supplied model.\n\nIf the update changes the dialog's content (transmissions, content, attachments, GUI/API actions, status or extended status), \nany end user system label of 'Bin' or 'Archive' is reset to 'Default', moving the dialog back to the inbox. \nChanges to other fields leave the end user's system labels untouched. \nThis reset is suppressed for silent updates.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.",
        "operationId": "V1ServiceOwnerDialogsCommandsUpdate_Dialog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "x-name": "dto",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_Dialog"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "The dialog aggregate was updated successfully.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the dialog",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to update the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "One of: \n- [DP.CFL-00000](#DP.CFL-00000)\n- [DP.CFL-00001](#DP.CFL-00001)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Deletes a dialog",
        "description": "Deletes a given dialog (soft delete).\n\nNote that the dialog will still be available on the single details endpoint, but will have a deleted status. It will not appear on the list endpoint for either service owners nor end users.\nIf end users attempt to access the dialog via the details endpoint, they will get a 410 Gone response.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not deleted by another request in the meantime.",
        "operationId": "V1ServiceOwnerDialogsCommandsDelete_Dialog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The dialog aggregate was deleted successfully.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the dialog",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to delete the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Patch a single dialog",
        "description": "Patches a dialog aggregate with a RFC6902 JSON Patch document. The patch document must be a JSON array of RFC6902 operations.\nSee [https://tools.ietf.org/html/rfc6902](https://tools.ietf.org/html/rfc6902) for more information.\n            \nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not modified/deleted by another request in the meantime.",
        "operationId": "V1ServiceOwnerDialogsPatchDialog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "If-Match",
            "x-originalName": "etag",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            },
            "x-position": 2
          }
        ],
        "requestBody": {
          "x-name": "patchDocument",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/JsonPatchOperations_Operation"
                }
              }
            },
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/JsonPatchOperations_Operation"
                }
              }
            }
          },
          "required": true,
          "x-position": 3
        },
        "responses": {
          "204": {
            "description": "Patch was successfully applied.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the dialog",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Requires a Maskinporten-token with the scope \\\"digdir:dialogporten.serviceprovider\\\""
          },
          "403": {
            "description": "Unauthorized to update a dialog for the given serviceResource (not owned by authenticated organization or has additional scope requirements defined in policy)"
          },
          "404": {
            "description": "The given dialog ID was not found or is deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "The dialog with the given key is removed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied Revision does not match the current Revision of the dialog",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/actions/restore": {
      "post": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Restore a dialog",
        "description": "Restore a dialog. ",
        "operationId": "V1ServiceOwnerDialogsCommandsRestore_Dialog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The dialog aggregate was restored successfully."
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/actions/purge": {
      "post": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Permanently deletes a dialog",
        "description": "Deletes a given dialog (hard delete).\n\nOptimistic concurrency control is implemented using the If-Match header. Supply the Revision value from the GetDialog endpoint to ensure that the dialog is not deleted by another request in the meantime.",
        "operationId": "V1ServiceOwnerDialogsCommandsPurge_Dialog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The dialog aggregate was deleted successfully."
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to delete the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialogs/{dialogId}/actions/freeze": {
      "post": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Freezes a dialog",
        "description": "Freezes a given dialog.\nThe dialog cannot be updated/deleted by the service owner (but can still be altered via admin-scope) when frozen",
        "operationId": "V1ServiceOwnerDialogsCommandsFreeze_FreezeDialog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The dialog aggregate was frozen successfully.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the dialog",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Unauthorized to freeze the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/serviceowner/dialoglookup": {
      "get": {
        "tags": [
          "Serviceowner"
        ],
        "summary": "Looks up a dialog by instance reference",
        "description": "Resolves dialog metadata for a supported instance reference in service owner context.",
        "operationId": "V1ServiceOwnerDialogLookupQueriesGet_DialogLookup",
        "parameters": [
          {
            "name": "instanceRef",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accept-Language",
            "in": "header",
            "schema": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully resolved instance reference lookup metadata.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1CommonIdentifierLookup_ServiceOwnerIdentifierLookup"
                }
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from Maskinporten with the scope(s) \"digdir:dialogporten.serviceprovider\".\n- Authenticated service owner does not own the resolved dialog.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "No dialog match was found for the supplied instance reference.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten.serviceprovider"
            ]
          }
        ]
      }
    },
    "/api/v1/metadata/serviceresources": {
      "get": {
        "tags": [
          "Metadata"
        ],
        "summary": "Gets service resources currently in use in Dialogporten.",
        "description": "Returns public service resource metadata with related service owner, role, and access package metadata.",
        "operationId": "V1MetadataServiceResourcesGet_ServiceResourceMetadata",
        "parameters": [
          {
            "name": "accept-Language",
            "in": "header",
            "schema": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Service resource metadata.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1MetadataServiceResourcesQueriesGet_ServiceResourceMetadata"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/metadata/limits": {
      "get": {
        "tags": [
          "Metadata"
        ],
        "summary": "Gets currently enforced application-level query limits",
        "description": "Returns the active limits for EndUser and ServiceOwner search filters.",
        "operationId": "V1MetadataLimitsGet_Limits",
        "responses": {
          "200": {
            "description": "The currently enforced application-level query limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1MetadataLimitsQueriesGet_Limits"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/enduser/serviceresources": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets the service resources the authenticated end user is authorized to use.",
        "description": "Returns the same service resource metadata as the public metadata endpoint, filtered to the resources the calling end user is authorized to use. Optionally narrowed by one or more party URNs. For callers authorized to a very large number of parties on an unfiltered request, the full referenced catalogue is returned instead of the authorized subset, signalled by 'isFullCatalogueFallback' (supply a party filter to always get an authorization-scoped result).",
        "operationId": "V1EndUserServiceResourcesSearch_AuthorizedServiceResources",
        "parameters": [
          {
            "name": "party",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by one or more party URNs. Parties the caller is not authorized for are silently ignored.",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "accept-Language",
            "in": "header",
            "schema": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Authorized service resource metadata.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1EndUserServiceResourcesQueriesSearch_AuthorizedServiceResources"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs/{dialogId}/context/labellog": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets a list of dialog label assignment logs",
        "description": "Gets the list of label assignment logs belonging to a dialog",
        "operationId": "V1EndUserEndUserContextQueriesSearchLabelAssignmentLogs_DialogLabelAssignmentLog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog label assignment log list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/V1EndUserEndUserContextQueriesSearchLabelAssignmentLog_LabelAssignmentLog"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".\n- Unauthorized to get the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs/{dialogId}/context/systemlabels": {
      "put": {
        "tags": [
          "Enduser"
        ],
        "summary": "Sets the system labels of a dialog",
        "description": "Sets the system labels of the dialog.\n\nOptimistic concurrency control is implemented using the If-Match header. Supply EnduserContextRevision to ensure that the context is not modified/deleted by another request in the meantime.",
        "operationId": "V1EndUserEndUserContextCommandsSetSystemLabel_SetDialogSystemLabels",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "if-Match",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "guid",
              "nullable": true
            }
          }
        ],
        "requestBody": {
          "x-name": "SetDialogSystemLabelRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1EndUserEndUserContextCommandsSetSystemLabel_SetDialogSystemLabelRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "204": {
            "description": "The dialog system label was updated successfully.",
            "headers": {
              "Etag": {
                "description": "The new UUID ETag of the dialog",
                "schema": {
                  "type": "string"
                },
                "example": "123e4567-e89b-12d3-a456-426614174000"
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".\n- Unauthorized to update the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs/context/systemlabels/actions/bulkset": {
      "post": {
        "tags": [
          "Enduser"
        ],
        "summary": "Sets system labels for multiple dialogs",
        "description": "Sets the system labels for a list of dialogs, optionally including a end user context revision for each dialog.",
        "operationId": "V1EndUserEndUserContextCommandsBulkSetSystemLabels_BulkSetDialogSystemLabels",
        "requestBody": {
          "x-name": "dto",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1EndUserEndUserContextCommandsBulkSetSystemLabels_BulkSetSystemLabel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "The dialog system labels was updated successfully."
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".\n- Unauthorized to update the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "[DP.CFL-00000](#DP.CFL-00000)",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictProblemDetails"
                }
              }
            }
          },
          "412": {
            "description": "The supplied If-Match header did not match the current Revision value for the dialog. The request was not applied.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs/{dialogId}/transmissions": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets a list of dialog transmissions",
        "description": "Gets the list of transmissions belonging to a dialog",
        "operationId": "V1EndUserDialogsQueriesSearchTransmissions_DialogTransmission",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "accept-Language",
            "in": "header",
            "schema": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog transmission list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearchTransmissions_Transmission"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".\n- Unauthorized to get the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs/{dialogId}/seenlog": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets all seen log records for a dialog",
        "description": "Gets all seen log records for a dialog.",
        "operationId": "V1EndUserDialogsQueriesSearchSeenLogs_DialogSeenLog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog seen log records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearchSeenLogs_SeenLog"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".\n- Altinn authentication level too low.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs/{dialogId}/activities": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets a list of dialog activities",
        "description": "Gets the list of activities belonging to a dialog",
        "operationId": "V1EndUserDialogsQueriesSearchActivities_DialogActivity",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "accept-Language",
            "in": "header",
            "schema": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog activity list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearchActivities_Activity"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".\n- Unauthorized to get the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets a list of dialogs",
        "description": "Performs a search for dialogs, returning a paginated list of dialogs. \n\n* All date parameters must contain explicit time zone. Example: 2023-10-27T10:00:00Z or 2023-10-27T10:00:00+01:00\n* See \"continuationToken\" in the response for how to get the next page of results.\n* hasNextPage will be set to true if there are more items to get.",
        "operationId": "V1EndUserDialogsQueriesSearch_Dialog",
        "parameters": [
          {
            "name": "org",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by one or more service owner codes",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "serviceResource",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by one or more service resources",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "party",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by one or more owning parties",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "extendedStatus",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by one or more extended statuses",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "externalReference",
            "in": "query",
            "description": "Filter by external reference",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "status",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by status",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "$ref": "#/components/schemas/DialogsEntities_DialogStatus"
              }
            }
          },
          {
            "name": "createdAfter",
            "in": "query",
            "description": "Only return dialogs created after this date. For free text search this does not limit how much the search has to scan; use 'contentUpdatedAfter' to narrow a broad search and avoid a 422 timeout.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "createdBefore",
            "in": "query",
            "description": "Only return dialogs created before this date. For free text search this does not limit how much the search has to scan; use 'contentUpdatedAfter' to narrow a broad search and avoid a 422 timeout.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "updatedAfter",
            "in": "query",
            "description": "Only return dialogs updated after this date. For free text search this does not limit how much the search has to scan; use 'contentUpdatedAfter' to narrow a broad search and avoid a 422 timeout.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "updatedBefore",
            "in": "query",
            "description": "Only return dialogs updated before this date. For free text search this does not limit how much the search has to scan; use 'contentUpdatedAfter' to narrow a broad search and avoid a 422 timeout.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "contentUpdatedAfter",
            "in": "query",
            "description": "Only return dialogs with content updated after this date. Recommended for free text search: this is the only date filter that limits how much a broad search has to scan. A broad search term without a 'contentUpdatedAfter' bound may exceed the server-side time limit and return 422 - narrow it with this filter (and/or fewer parties or a service resource).",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "contentUpdatedBefore",
            "in": "query",
            "description": "Only return dialogs with content updated before this date. Unlike 'contentUpdatedAfter', this upper bound does not by itself limit how much a free text search has to scan.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "isContentSeen",
            "in": "query",
            "description": "Only return dialogs that have content that has/hasn't been seen.\nIf null, no filtering is applied\nIf true, returns dialogs that have been seen\nIf false, returns dialogs that have not been seen\n            \nA dialog's content is considered seen if:\n- It has been visited by the GET .../dialogs/{dialogId} endpoint since the last content update, and\n- It does not have a system label MarkedAsUnopened.",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "dueAfter",
            "in": "query",
            "description": "Only return dialogs with due date after this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "dueBefore",
            "in": "query",
            "description": "Only return dialogs with due date before this date",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "process",
            "in": "query",
            "description": "Filter by process",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "systemLabel",
            "in": "query",
            "style": "form",
            "explode": true,
            "description": "Filter by Display state",
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
              }
            }
          },
          {
            "name": "excludeApiOnly",
            "in": "query",
            "description": "Whether to exclude API-only dialogs from the results. Defaults to false.",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Search string for free text search. Will attempt to fuzzily match in all free text fields in the aggregate",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "searchLanguageCode",
            "in": "query",
            "description": "Limit free text search to texts with this language code, e.g. 'nb', 'en'. Culture codes will be normalized to neutral language codes (ISO 639). Default: search all culture codes",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "Order the results by one or more fields. Defaults to \"contentUpdatedAt\" descending. For free text search, keeping the default \"contentUpdatedAt\" ordering together with \"contentUpdatedAfter\" gives the fastest results.",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "continuationToken",
            "in": "query",
            "description": "Supply \"continuationToken\" for the response to get the next page of results, if hasNextPage is true",
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of results per page (1-1000, default: 100)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "accept-Language",
            "in": "header",
            "schema": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog list.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedListOfV1EndUserDialogsQueriesSearch_Dialog"
                }
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Domain error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs/{dialogId}/transmissions/{transmissionId}": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets a single dialog transmission",
        "description": "Gets a single transmission belonging to a dialog.",
        "operationId": "V1EndUserDialogsQueriesGetTransmission_DialogTransmission",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "transmissionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "accept-Language",
            "in": "header",
            "schema": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog transmission.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1EndUserDialogsQueriesGetTransmission_Transmission"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".\n- Unauthorized to get child entity for the given dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The specified dialog ID or transmission ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs/{dialogId}/seenlog/{seenLogId}": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets a single dialog seen log record",
        "description": "Gets a single dialog seen log record.",
        "operationId": "V1EndUserDialogsQueriesGetSeenLog_DialogSeenLog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "seenLogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog seen log record.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1EndUserDialogsQueriesGetSeenLog_SeenLog"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs/{dialogId}/activities/{activityId}": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets a single dialog activity",
        "description": "Gets a single activity belonging to a dialog.",
        "operationId": "V1EndUserDialogsQueriesGetActivity_DialogActivity",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "activityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "accept-Language",
            "in": "header",
            "schema": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog activity.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1EndUserDialogsQueriesGetActivity_Activity"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".\n- Unauthorized to get child entity for the given dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The specified dialog ID or activity ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialogs/{dialogId}": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets a single dialog",
        "description": "Gets a single dialog aggregate.",
        "operationId": "V1EndUserDialogsQueriesGet_Dialog",
        "parameters": [
          {
            "name": "dialogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            }
          },
          {
            "name": "accept-Language",
            "in": "header",
            "schema": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned the dialog aggregate.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_Dialog"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".\n- Unauthorized to get the supplied dialog (not owned by authenticated organization).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The given dialog ID was not found.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Entity with the given key(s) is removed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/dialoglookup": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Looks up a dialog by instance reference",
        "description": "Resolves dialog metadata and authorization evidence for a supported instance reference.",
        "operationId": "V1EndUserDialogLookupQueriesGet_DialogLookup",
        "parameters": [
          {
            "name": "instanceRef",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accept-Language",
            "in": "header",
            "schema": {
              "nullable": true,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully resolved dialog lookup metadata.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1CommonIdentifierLookup_EndUserIdentifierLookup"
                }
              }
            }
          },
          "400": {
            "description": "Validation error occurred. See problem details for a list of errors.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "One of: \n- This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".\n- Authenticated end user is not authorized for the supplied instance reference.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "No dialog match was found for the supplied instance reference.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    },
    "/api/v1/enduser/parties": {
      "get": {
        "tags": [
          "Enduser"
        ],
        "summary": "Gets the list of authorized parties for the end user",
        "description": "Gets the list of authorized parties for the end user.",
        "operationId": "V1EndUserAccessManagementQueriesGetParties_Parties",
        "responses": {
          "200": {
            "description": "The list of authorized parties for the end user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1AccessManagementQueriesGetParties_Parties"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication token. Please verify your access token.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "This endpoint requires a token from ID-porten or Maskinporten with the scope(s) \"digdir:dialogporten\".",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable, used when Dialogporten is in maintenance mode",
            "headers": {
              "Retry-After": {
                "description": "Delay before retrying the request. Datetime format RFC1123",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Unavailable"
                }
              }
            }
          }
        },
        "security": [
          {
            "maskinporten": [
              "digdir:dialogporten"
            ]
          },
          {
            "idporten": [
              "digdir:dialogporten"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "V1WellKnownOauthAuthorizationServerQueriesGet_OauthAuthorizationServer": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "issuer": {
            "type": "string"
          },
          "jwks_uri": {
            "type": "string"
          }
        }
      },
      "V1WellKnownJwksQueriesGet_Jwks": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "keys": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1WellKnownJwksQueriesGet_Jwk"
            }
          }
        }
      },
      "V1WellKnownJwksQueriesGet_Jwk": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "kty": {
            "type": "string"
          },
          "use": {
            "type": "string"
          },
          "kid": {
            "type": "string"
          },
          "crv": {
            "type": "string"
          },
          "x": {
            "type": "string"
          },
          "alg": {
            "type": "string"
          }
        }
      },
      "V1ServiceOwnerServiceOwnerContextQueriesGetServiceOwnerLabels_ServiceOwnerLabel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "description": "A label value."
          }
        }
      },
      "ProblemDetails": {
        "type": "object",
        "additionalProperties": {
          "nullable": true
        },
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "nullable": true
          },
          "statusDescription": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "validationErrors": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ProblemDetails_Error"
            }
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      },
      "ProblemDetails_Error": {
        "type": "object",
        "additionalProperties": {
          "nullable": true
        },
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "paths": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ConflictProblemDetails": {
        "type": "object",
        "additionalProperties": {
          "nullable": true
        },
        "properties": {
          "traceId": {
            "type": "string",
            "nullable": true
          },
          "statusDescription": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "validationErrors": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ProblemDetails_Error"
            }
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          },
          "conflicts": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ProblemDetailsConflict"
            }
          }
        }
      },
      "ProblemDetailsConflict": {
        "type": "object",
        "additionalProperties": {
          "nullable": true
        },
        "properties": {
          "code": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "V1ServiceOwnerServiceOwnerContextCommandsCreateServiceOwnerLabel_ServiceOwnerLabelRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dto": {
            "$ref": "#/components/schemas/V1ServiceOwnerServiceOwnerContextCommandsCreateServiceOwnerLabel_Label"
          }
        }
      },
      "V1ServiceOwnerServiceOwnerContextCommandsCreateServiceOwnerLabel_Label": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string"
          }
        }
      },
      "V1ServiceOwnerEndUserContextCommandsSetSystemLabel_SetDialogSystemLabelRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "systemLabels": {
            "type": "array",
            "description": "List of system labels to set on target dialogs",
            "deprecated": true,
            "x-deprecatedMessage": "Use AddLabels instead. This property will be removed in a future version.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          },
          "addLabels": {
            "type": "array",
            "description": "List of system labels to add to target dialogs. If multiple instances of 'bin', 'archive', or 'default' are provided, the last one will be used.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          },
          "removeLabels": {
            "type": "array",
            "description": "List of system labels to remove from target dialogs. If 'bin' or 'archive' is removed, the 'default' label will be added automatically unless 'bin' or 'archive' is also in the AddLabels list.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          },
          "performedBy": {
            "description": "Optional actor metadata describing who performed the change. Only available for admin-integrations when EnduserId is omitted.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          }
        }
      },
      "DialogEndUserContextsEntities_SystemLabel": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "Default",
          "Bin",
          "Archive",
          "MarkedAsUnopened",
          "Sent"
        ],
        "enum": [
          "Default",
          "Bin",
          "Archive",
          "MarkedAsUnopened",
          "Sent"
        ]
      },
      "V1ServiceOwnerCommonActors_Actor": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "actorType": {
            "description": "The type of actor; either the service owner, or someone representing the party.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Actors_ActorType"
              }
            ]
          },
          "actorName": {
            "type": "string",
            "description": "The name of the actor.",
            "nullable": true,
            "example": "Ola Nordmann"
          },
          "actorId": {
            "type": "string",
            "description": "The identifier (national identity number or organization number) of the actor.",
            "nullable": true,
            "example": "urn:altinn:person:identifier-no:12018212345"
          }
        }
      },
      "Actors_ActorType": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "PartyRepresentative",
          "ServiceOwner"
        ],
        "enum": [
          "PartyRepresentative",
          "ServiceOwner"
        ]
      },
      "V1ServiceOwnerEndUserContextCommandsBulkSetSystemLabels_BulkSetDialogSystemLabelsRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dto": {
            "$ref": "#/components/schemas/V1ServiceOwnerEndUserContextCommandsBulkSetSystemLabels_BulkSetSystemLabel"
          }
        }
      },
      "V1ServiceOwnerEndUserContextCommandsBulkSetSystemLabels_BulkSetSystemLabel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dialogs": {
            "type": "array",
            "description": "List of target dialog ids with optional revision ids",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerEndUserContextCommandsBulkSetSystemLabels_DialogRevision"
            }
          },
          "systemLabels": {
            "type": "array",
            "description": "List of system labels to set on target dialogs",
            "deprecated": true,
            "x-deprecatedMessage": "Use AddLabels instead. This property will be removed in a future version.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          },
          "addLabels": {
            "type": "array",
            "description": "List of system labels to add to the target dialogs. If multiple instances of 'bin', 'archive', or 'default' are provided, the last one will be used.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          },
          "removeLabels": {
            "type": "array",
            "description": "List of system labels to remove from the target dialogs. If 'bin' or 'archive' is removed, the 'default' label will be added automatically unless 'bin' or 'archive' is also in the AddLabels list.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          },
          "performedBy": {
            "description": "Optional actor metadata describing who performed the operation. Only available for admin-integrations when EndUserId is omitted.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerEndUserContextCommandsBulkSetSystemLabels_DialogRevision": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dialogId": {
            "type": "string",
            "description": "Target dialog id for system labels",
            "format": "guid"
          },
          "endUserContextRevision": {
            "type": "string",
            "description": "Optional end user context revision to match against. If supplied and not matching current revision, the entire operation will fail.",
            "format": "guid",
            "nullable": true
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearchTransmissions_Transmission": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the transmission in UUIDv7 format.",
            "format": "guid"
          },
          "idempotentKey": {
            "type": "string",
            "description": "An optional key to ensure idempotency in transmission creation. If provided, it must be unique within the dialog; reusing the same key for the same dialog results in Conflict and no new transmission is created.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the transmission was created.",
            "format": "date-time"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "The authorization attribute associated with the transmission.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this transmission.\nNull when no authorization context is set, including when the transmission uses the legacy\n\"authorizationAttribute\".",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchTransmissions_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "extendedType": {
            "type": "string",
            "description": "The extended type URI for the transmission.",
            "format": "uri",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "relatedTransmissionId": {
            "type": "string",
            "description": "The unique identifier for the related transmission, if any.",
            "format": "guid",
            "nullable": true
          },
          "type": {
            "description": "The type of the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesTransmissions_DialogTransmissionType"
              }
            ]
          },
          "sender": {
            "description": "The sender actor information for the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "content": {
            "description": "The content of the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchTransmissions_Content"
              }
            ]
          },
          "attachments": {
            "type": "array",
            "description": "The attachments associated with the transmission.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchTransmissions_Attachment"
            }
          },
          "navigationalActions": {
            "type": "array",
            "description": "The navigational actions associated with the transmission.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchTransmissions_NavigationalAction"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearchTransmissions_AuthorizationContext": {
        "type": "object",
        "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.",
        "additionalProperties": false,
        "properties": {
          "serviceResource": {
            "type": "string",
            "description": "A service resource that overrides the dialog's own service resource in the authorization evaluation,\nreferring to another service policy.",
            "nullable": true,
            "example": "urn:altinn:resource:some-other-service-identifier"
          },
          "additionalResourceAttribute": {
            "type": "string",
            "description": "An additional resource attribute to be matched within the effective service policy, e.g. a task or\nsubresource.",
            "nullable": true,
            "example": "urn:altinn:task:Task_1\nurn:altinn:subresource:mycustomresource"
          },
          "parties": {
            "type": "array",
            "description": "Other parties than the dialog's that access is evaluated on behalf of, each at its own party and without\naccess restriction. Access is granted if the end user has access to the effective resource for at least\none of the parties, or if any of \"dialogPartyChecks\" permits.",
            "nullable": true,
            "example": "urn:altinn:organization:identifier-no:912345678",
            "items": {
              "type": "string"
            }
          },
          "dialogPartyChecks": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nChecks evaluated on behalf of the dialog's own party. Access is granted if any check, or any entry in\n\"parties\", permits. Empty when the dialog's party is not evaluated.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchTransmissions_DialogPartyCheck"
            },
            "x-experimental": true
          },
          "action": {
            "type": "string",
            "description": "The XACML action to evaluate. Null when not overridden; the effective action is then \"read\".",
            "nullable": true,
            "example": "read"
          },
          "tokenRef": {
            "type": "string",
            "description": "The service owner supplied reference identifying this context in the dialog token's \"e\" claim, if any.\nNull when the carrying entity's id is used instead. Sharing a value between entities in one dialog forms\nan OR-group: authorization for any group member adds the shared value to \"e\". Recipients must also validate\nthe token's dialog id (\"i\").",
            "nullable": true,
            "example": "my-own-reference"
          },
          "unauthorizedPresentation": {
            "description": "Controls how the entity is presented to end users that fail the authorization check:\n\"disabled\" keeps the entity visible but masks its URLs and embedded content references, while\n\"excluded\" removes it from the collection it belongs to entirely, leaving only its id and\ncreation time in the sibling \"excluded\" list (e.g. \"excludedTransmissions\" beside\n\"transmissions\").",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesAuthorizationContexts_AuthorizationContextUnauthorizedPresentation"
              }
            ]
          }
        },
        "x-experimental": true
      },
      "V1ServiceOwnerDialogsQueriesSearchTransmissions_DialogPartyCheck": {
        "type": "object",
        "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.",
        "additionalProperties": false,
        "properties": {
          "accessRestriction": {
            "description": "Restricts how the end user's access at the dialog's party must have been obtained for this check to grant\naccess: \"none\" accepts all access, \"directAndHierarchy\" only access that does not pass through another\norganization, and \"clientDelegation\" only client delegations made through the organization in \"viaParty\".",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesAuthorizationContexts_DialogPartyCheckAccessRestriction"
              }
            ]
          },
          "viaParty": {
            "type": "string",
            "description": "The organization the end user's access must have been client delegated through. Only set when\n\"accessRestriction\" is \"clientDelegation\".",
            "nullable": true,
            "example": "urn:altinn:organization:identifier-no:912345678"
          },
          "serviceResource": {
            "type": "string",
            "description": "The service resource evaluated for this check instead of the context's. Null when not overridden.",
            "nullable": true,
            "example": "urn:altinn:resource:some-other-service-identifier"
          },
          "action": {
            "type": "string",
            "description": "The XACML action evaluated for this check instead of the context's. Null when not overridden.",
            "nullable": true,
            "example": "readall"
          }
        },
        "x-experimental": true
      },
      "DialogsEntitiesAuthorizationContexts_DialogPartyCheckAccessRestriction": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "None",
          "DirectAndHierarchy",
          "ClientDelegation"
        ],
        "enum": [
          "None",
          "DirectAndHierarchy",
          "ClientDelegation"
        ]
      },
      "DialogsEntitiesAuthorizationContexts_AuthorizationContextUnauthorizedPresentation": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "Disabled",
          "Excluded"
        ],
        "enum": [
          "Disabled",
          "Excluded"
        ]
      },
      "DialogsEntitiesTransmissions_DialogTransmissionType": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "Information",
          "Acceptance",
          "Rejection",
          "Request",
          "Alert",
          "Decision",
          "Submission",
          "Correction"
        ],
        "enum": [
          "Information",
          "Acceptance",
          "Rejection",
          "Request",
          "Alert",
          "Decision",
          "Submission",
          "Correction"
        ]
      },
      "V1ServiceOwnerDialogsQueriesSearchTransmissions_Content": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The title of the content.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "The summary of the content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "contentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1CommonContent_ContentValue": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "array",
            "description": "A list of localizations for the content.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "mediaType": {
            "type": "string",
            "description": "Media type of the content, this can also indicate that the content is embeddable."
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "True if the authenticated user is authorized for this content. If not, the endpoints will\nbe replaced with a fixed placeholder. Can be null if not applicable.\n            ",
            "nullable": true
          }
        }
      },
      "V1CommonLocalizations_Localization": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "description": "The localized text (or URL if a front-channel embed)."
          },
          "languageCode": {
            "type": "string",
            "description": "The language code of the localization in ISO 639-1 format.",
            "example": "nb"
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearchTransmissions_Attachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment in UUIDv7 format.",
            "format": "guid"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchTransmissions_AttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this attachment.\nThe XACML action defaults to \"read\". Access to the parent transmission is always required in addition;\nthis context can only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchTransmissions_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearchTransmissions_AttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment URL in UUIDv7 format.",
            "format": "guid"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment. Will be set to \"urn:dialogporten:unauthorized\" if the user is\nnot authorized to access the transmission.",
            "format": "uri",
            "example": "https://someendpoint.com/someattachment.pdf\nurn:dialogporten:unauthorized"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "Attachments_AttachmentUrlConsumerType": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "Gui",
          "Api"
        ],
        "enum": [
          "Gui",
          "Api"
        ]
      },
      "V1ServiceOwnerDialogsQueriesSearchTransmissions_NavigationalAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the navigational action in UUIDv7 format.",
            "format": "guid"
          },
          "title": {
            "type": "array",
            "description": "The title of the navigational action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the navigational action.",
            "format": "uri",
            "example": "https://example.com/path"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the navigational action expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this navigational action.\nThe XACML action defaults to \"read\". Access to the parent transmission is always required in addition;\nthis context can only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchTransmissions_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearchSeenLogs_SeenLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "seenAt": {
            "type": "string",
            "format": "date-time"
          },
          "seenBy": {
            "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
          },
          "isViaServiceOwner": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "PaginatedListOfV1ServiceOwnerDialogsQueriesSearchEndUserContext_DialogEndUserContextItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "items": {
            "type": "array",
            "description": "The paginated list of items",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearchEndUserContext_DialogEndUserContextItem"
            }
          },
          "hasNextPage": {
            "type": "boolean",
            "description": "Whether there are more items available that can be fetched by supplying the continuation token"
          },
          "continuationToken": {
            "type": "string",
            "description": "The continuation token to be used to fetch the next page of items",
            "nullable": true,
            "example": "createdat_2024-07-31T09:09:03.0257090Z,id_0c089101-b7cf-a476-955c-f00a78d74a4e"
          },
          "orderBy": {
            "type": "string",
            "description": "The current sorting order of the items",
            "example": "contentupdatedat_desc,id_desc"
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearchEndUserContext_DialogEndUserContextItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dialogId": {
            "type": "string",
            "format": "guid"
          },
          "endUserContextRevision": {
            "type": "string",
            "format": "guid"
          },
          "systemLabels": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearchActivities_Activity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "extendedType": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
          },
          "transmissionId": {
            "type": "string",
            "format": "guid",
            "nullable": true
          }
        }
      },
      "DialogsEntitiesActivities_DialogActivityType": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "DialogCreated",
          "DialogClosed",
          "Information",
          "TransmissionOpened",
          "PaymentMade",
          "SignatureProvided",
          "DialogOpened",
          "DialogDeleted",
          "DialogRestored",
          "SentToSigning",
          "SentToFormFill",
          "SentToSendIn",
          "SentToPayment",
          "FormSubmitted",
          "FormSaved",
          "CorrespondenceOpened",
          "CorrespondenceConfirmed"
        ],
        "enum": [
          "DialogCreated",
          "DialogClosed",
          "Information",
          "TransmissionOpened",
          "PaymentMade",
          "SignatureProvided",
          "DialogOpened",
          "DialogDeleted",
          "DialogRestored",
          "SentToSigning",
          "SentToFormFill",
          "SentToSendIn",
          "SentToPayment",
          "FormSubmitted",
          "FormSaved",
          "CorrespondenceOpened",
          "CorrespondenceConfirmed"
        ]
      },
      "PaginatedListOfV1ServiceOwnerDialogsQueriesSearch_Dialog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "items": {
            "type": "array",
            "description": "The paginated list of items",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearch_Dialog"
            }
          },
          "hasNextPage": {
            "type": "boolean",
            "description": "Whether there are more items available that can be fetched by supplying the continuation token"
          },
          "continuationToken": {
            "type": "string",
            "description": "The continuation token to be used to fetch the next page of items",
            "nullable": true,
            "example": "createdat_2024-07-31T09:09:03.0257090Z,id_0c089101-b7cf-a476-955c-f00a78d74a4e"
          },
          "orderBy": {
            "type": "string",
            "description": "The current sorting order of the items",
            "example": "contentupdatedat_desc,id_desc"
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearch_Dialog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the dialog in UUIDv7 format.",
            "format": "guid",
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "org": {
            "type": "string",
            "description": "The service owner code representing the organization (service owner) related to this dialog.",
            "example": "ske"
          },
          "revision": {
            "type": "string",
            "description": "The unique identifier for the revision in UUIDv4 format.",
            "format": "guid",
            "example": "a312cb9c-7632-43c2-aa38-69b06aed56ca"
          },
          "serviceResource": {
            "type": "string",
            "description": "The service identifier for the service that the dialog is related to in URN-format.\nThis corresponds to a service resource in the Altinn Resource Registry.",
            "example": "urn:altinn:resource:some-service-identifier"
          },
          "serviceResourceType": {
            "type": "string",
            "description": "The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType)."
          },
          "party": {
            "type": "string",
            "description": "The party code representing the organization or person that the dialog belongs to in URN format.",
            "example": "urn:altinn:person:identifier-no:01125512345\nurn:altinn:organization:identifier-no:912345678"
          },
          "progress": {
            "type": "integer",
            "description": "Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come\nto a natural completion (successful or not).",
            "format": "int32",
            "nullable": true
          },
          "process": {
            "type": "string",
            "description": "Optional process identifier used to indicate a business process this dialog belongs to.",
            "nullable": true
          },
          "precedingProcess": {
            "type": "string",
            "description": "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.",
            "nullable": true
          },
          "guiAttachmentCount": {
            "type": "integer",
            "description": "The number of attachments in the dialog made available for browser-based frontends.",
            "format": "int32",
            "nullable": true
          },
          "extendedStatus": {
            "type": "string",
            "description": "Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of\nthe dialog to further specify the \"status\" enum.\n            \nRefer to the service-specific documentation provided by the service owner for details on the possible values (if\nin use).",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.\n            \nRefer to the service-specific documentation provided by the service owner for details (if in use).",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the dialog was created.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "updatedAt": {
            "type": "string",
            "description": "The date and time when the dialog was last updated.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "contentUpdatedAt": {
            "type": "string",
            "description": "The date and time when the dialog content was last updated.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "dueAt": {
            "type": "string",
            "description": "The due date for the dialog. This is the last date when the dialog is expected to be completed.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "deletedAt": {
            "type": "string",
            "description": "If deleted, the date and time when the deletion was performed.",
            "format": "date-time",
            "nullable": true
          },
          "visibleFrom": {
            "type": "string",
            "description": "The timestamp when the dialog will be made visible for authorized end users.",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "description": "The aggregated status of the dialog.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntities_DialogStatus"
              }
            ]
          },
          "systemLabel": {
            "description": "System defined label used to categorize dialogs.\nThis is obsolete and will only show; Default, Bin or Archive.\nUse SystemLabels on EndUserContext instead.",
            "deprecated": true,
            "x-deprecatedMessage": "Use EndUserContext.SystemLabels instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
              }
            ]
          },
          "isApiOnly": {
            "type": "boolean",
            "description": "Indicates if this dialog is intended for API consumption only and should not be shown in frontends aimed at humans."
          },
          "fromServiceOwnerTransmissionsCount": {
            "type": "integer",
            "description": "The number of transmissions sent by a service owner",
            "format": "int32"
          },
          "fromPartyTransmissionsCount": {
            "type": "integer",
            "description": "The number of transmissions sent by a party representative",
            "format": "int32"
          },
          "hasUnopenedContent": {
            "type": "boolean",
            "description": "Whether the service owner has not yet reported all dialog Transmissions they sent as seen by the end user.\nA Transmission is considered \"sent from the service owner\" if the DialogTransmissionType is not one of Submission or Correction.\n            \nThe value of this field is:\n- true when there are any new unopened Transmissions sent from the service owner.\n- false when the service owner has created an Activity of type TransmissionOpened for all Transmissions sent from the service owner. The Activities must each contain the relevant Id for all relevant Transmissions.\n            \nNote that the value is\n- determined by the service owner and not to be confused with IsContentSeen\n- not affected by SystemLabels\n            \nFor correspondence: HasUnopenedContent is still true until the service owner also adds a Dialog level Activity (no transmission id) of type CorrespondenceOpened"
          },
          "latestActivity": {
            "description": "The latest entry in the dialog's activity log.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearch_DialogActivity"
              }
            ]
          },
          "seenSinceLastUpdate": {
            "type": "array",
            "description": "The list of seen log entries for the dialog newer than the dialog UpdatedAt date.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearch_DialogSeenLog"
            }
          },
          "seenSinceLastContentUpdate": {
            "type": "array",
            "description": "The list of seen log entries for the dialog newer than the dialog ContentUpdatedAt date.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearch_DialogSeenLog"
            }
          },
          "isContentSeen": {
            "type": "boolean",
            "description": "Indicates whether a dialog has been seen since its last content update.\n            \nThe value of this field is\n- true if the dialog has been retrieved since its last content update by either GET /enduser/dialogs/{dialogId} or GET /serviceowner/dialogs/{dialogId}?EndUserId={userId} and there is no SystemLabels MarkedAsUnopened\n- false if there is a SystemLabels MarkedAsUnopened, even if the dialog has been seen since its last content update\n- false after the dialog receives a content update.\n            \nNote that the value is determined by Dialogporten and not to be confused with HasUnopenedContent"
          },
          "serviceOwnerContext": {
            "description": "Metadata about the dialog owned by the service owner.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearch_DialogServiceOwnerContext"
              }
            ]
          },
          "endUserContext": {
            "description": "Metadata about the dialog owned by end-users.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearch_DialogEndUserContext"
              }
            ]
          },
          "content": {
            "description": "The content of the dialog in search results.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearch_Content"
              }
            ]
          }
        }
      },
      "DialogsEntities_DialogStatus": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "InProgress",
          "Draft",
          "RequiresAttention",
          "Completed",
          "NotApplicable",
          "Awaiting"
        ],
        "enum": [
          "InProgress",
          "Draft",
          "RequiresAttention",
          "Completed",
          "NotApplicable",
          "Awaiting"
        ]
      },
      "V1ServiceOwnerDialogsQueriesSearch_DialogActivity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the activity in UUIDv7 format.",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the activity was created.",
            "format": "date-time",
            "nullable": true
          },
          "extendedType": {
            "type": "string",
            "description": "An arbitrary string with a service-specific activity type.\n            \nConsult the service-specific documentation provided by the service owner for details (if in use).",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "description": "The type of activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
              }
            ]
          },
          "transmissionId": {
            "type": "string",
            "description": "If the activity is related to a particular transmission, this field will contain the transmission identifier.",
            "format": "guid",
            "nullable": true
          },
          "performedBy": {
            "description": "The actor that performed the activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "description": {
            "type": "array",
            "description": "Unstructured text describing the activity. Only set if the activity type is \"Information\".",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearch_DialogSeenLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the seen log entry in UUIDv7 format.",
            "format": "guid"
          },
          "seenAt": {
            "type": "string",
            "description": "The timestamp when the dialog revision was seen.",
            "format": "date-time"
          },
          "seenBy": {
            "description": "The actor that saw the dialog revision.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "isViaServiceOwner": {
            "type": "boolean",
            "description": "Flag indicating whether the seen log entry was created via the service owner.\n            \nThis is used when the service owner uses the service owner API to implement its own frontend.",
            "nullable": true
          },
          "isCurrentEndUser": {
            "type": "boolean",
            "description": "Flag indicating whether the seen log entry was created by the end user supplied in the query."
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearch_DialogServiceOwnerContext": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "revision": {
            "type": "string",
            "description": "The unique identifier for the service owner context revision in UUIDv4 format.",
            "format": "guid",
            "example": "0196fccd-bf48-7d27-bdfc-4ad3b0f3bee5"
          },
          "serviceOwnerLabels": {
            "type": "array",
            "description": "A list of labels, not visible in end-user APIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesSearch_ServiceOwnerLabel"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearch_ServiceOwnerLabel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "description": "A label value."
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearch_DialogEndUserContext": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "revision": {
            "type": "string",
            "description": "The unique identifier for the end user context revision in UUIDv4 format.",
            "format": "guid",
            "example": "0196fccd-bf48-7d27-bdfc-4ad3b0f3bee5"
          },
          "systemLabels": {
            "type": "array",
            "description": "System defined labels used to categorize dialogs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesSearch_Content": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The title of the dialog.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "nonSensitiveTitle": {
            "description": "An optional non-sensitive title of the dialog.\nUsed for search and list views if the user authorization does not meet the required eIDAS level",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "A short summary of the dialog and its current state.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "nonSensitiveSummary": {
            "description": "An optional non-sensitive summary of the dialog and its current state.\nUsed for search and list views if the user authorization does not meet the required eIDAS level",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "senderName": {
            "description": "Overridden sender name. If not supplied, assume \"org\" as the sender name.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "extendedStatus": {
            "description": "Used as the human-readable label used to describe the \"ExtendedStatus\" field.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesNotificationCondition_NotificationCondition": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "sendNotification": {
            "type": "boolean"
          }
        }
      },
      "V1Common_DeletedFilter": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "Exclude",
          "Include",
          "Only"
        ],
        "enum": [
          "Exclude",
          "Include",
          "Only"
        ]
      },
      "V1ServiceOwnerDialogsQueriesGetTransmission_Transmission": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the transmission in UUIDv7 format.",
            "format": "guid"
          },
          "idempotentKey": {
            "type": "string",
            "description": "An optional key to ensure idempotency in transmission creation. If provided, it must be unique within the dialog; reusing the same key for the same dialog results in Conflict and no new transmission is created.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the transmission was created.",
            "format": "date-time"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "The authorization attribute associated with the transmission.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this transmission.\nNull when no authorization context is set, including when the transmission uses the legacy\n\"authorizationAttribute\".",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetTransmission_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "extendedType": {
            "type": "string",
            "description": "The extended type URI for the transmission.",
            "format": "uri",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "relatedTransmissionId": {
            "type": "string",
            "description": "The unique identifier for the related transmission, if any.",
            "format": "guid",
            "nullable": true
          },
          "type": {
            "description": "The type of the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesTransmissions_DialogTransmissionType"
              }
            ]
          },
          "sender": {
            "description": "The sender actor information for the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "content": {
            "description": "The content of the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetTransmission_Content"
              }
            ]
          },
          "attachments": {
            "type": "array",
            "description": "The attachments associated with the transmission.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetTransmission_Attachment"
            }
          },
          "navigationalActions": {
            "type": "array",
            "description": "The navigational actions associated with the transmission.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetTransmission_NavigationalAction"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesNotificationCondition_NotificationConditionType": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "NotExists",
          "Exists"
        ],
        "enum": [
          "NotExists",
          "Exists"
        ]
      },
      "V1ServiceOwnerDialogsQueriesGetTransmission_AuthorizationContext": {
        "type": "object",
        "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.",
        "additionalProperties": false,
        "properties": {
          "serviceResource": {
            "type": "string",
            "description": "A service resource that overrides the dialog's own service resource in the authorization evaluation,\nreferring to another service policy.",
            "nullable": true,
            "example": "urn:altinn:resource:some-other-service-identifier"
          },
          "additionalResourceAttribute": {
            "type": "string",
            "description": "An additional resource attribute to be matched within the effective service policy, e.g. a task or\nsubresource.",
            "nullable": true,
            "example": "urn:altinn:task:Task_1\nurn:altinn:subresource:mycustomresource"
          },
          "parties": {
            "type": "array",
            "description": "Other parties than the dialog's that access is evaluated on behalf of, each at its own party and without\naccess restriction. Access is granted if the end user has access to the effective resource for at least\none of the parties, or if any of \"dialogPartyChecks\" permits.",
            "nullable": true,
            "example": "urn:altinn:organization:identifier-no:912345678",
            "items": {
              "type": "string"
            }
          },
          "dialogPartyChecks": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nChecks evaluated on behalf of the dialog's own party. Access is granted if any check, or any entry in\n\"parties\", permits. Empty when the dialog's party is not evaluated.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetTransmission_DialogPartyCheck"
            },
            "x-experimental": true
          },
          "action": {
            "type": "string",
            "description": "The XACML action to evaluate. Null when not overridden; the effective action is then \"read\".",
            "nullable": true,
            "example": "read"
          },
          "tokenRef": {
            "type": "string",
            "description": "The service owner supplied reference identifying this context in the dialog token's \"e\" claim, if any.\nNull when the carrying entity's id is used instead. Sharing a value between entities in one dialog forms\nan OR-group: authorization for any group member adds the shared value to \"e\". Recipients must also validate\nthe token's dialog id (\"i\").",
            "nullable": true,
            "example": "my-own-reference"
          },
          "unauthorizedPresentation": {
            "description": "Controls how the entity is presented to end users that fail the authorization check:\n\"disabled\" keeps the entity visible but masks its URLs and embedded content references, while\n\"excluded\" removes it from the collection it belongs to entirely, leaving only its id and\ncreation time in the sibling \"excluded\" list (e.g. \"excludedTransmissions\" beside\n\"transmissions\").",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesAuthorizationContexts_AuthorizationContextUnauthorizedPresentation"
              }
            ]
          }
        },
        "x-experimental": true
      },
      "V1ServiceOwnerDialogsQueriesGetTransmission_DialogPartyCheck": {
        "type": "object",
        "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.",
        "additionalProperties": false,
        "properties": {
          "accessRestriction": {
            "description": "Restricts how the end user's access at the dialog's party must have been obtained for this check to grant\naccess: \"none\" accepts all access, \"directAndHierarchy\" only access that does not pass through another\norganization, and \"clientDelegation\" only client delegations made through the organization in \"viaParty\".",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesAuthorizationContexts_DialogPartyCheckAccessRestriction"
              }
            ]
          },
          "viaParty": {
            "type": "string",
            "description": "The organization the end user's access must have been client delegated through. Only set when\n\"accessRestriction\" is \"clientDelegation\".",
            "nullable": true,
            "example": "urn:altinn:organization:identifier-no:912345678"
          },
          "serviceResource": {
            "type": "string",
            "description": "The service resource evaluated for this check instead of the context's. Null when not overridden.",
            "nullable": true,
            "example": "urn:altinn:resource:some-other-service-identifier"
          },
          "action": {
            "type": "string",
            "description": "The XACML action evaluated for this check instead of the context's. Null when not overridden.",
            "nullable": true,
            "example": "readall"
          }
        },
        "x-experimental": true
      },
      "V1ServiceOwnerDialogsQueriesGetTransmission_Content": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The title of the content.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "The summary of the content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "contentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGetTransmission_Attachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment in UUIDv7 format.",
            "format": "guid"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetTransmission_AttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this attachment.\nThe XACML action defaults to \"read\". Access to the parent transmission is always required in addition;\nthis context can only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetTransmission_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGetTransmission_AttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment URL in UUIDv7 format.",
            "format": "guid"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment. Will be set to \"urn:dialogporten:unauthorized\" if the user is\nnot authorized to access the transmission.",
            "format": "uri",
            "example": "https://someendpoint.com/someattachment.pdf\nurn:dialogporten:unauthorized"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGetTransmission_NavigationalAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the navigational action in UUIDv7 format.",
            "format": "guid"
          },
          "title": {
            "type": "array",
            "description": "The title of the navigational action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the navigational action.",
            "format": "uri",
            "example": "https://example.com/path"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the navigational action expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this navigational action.\nThe XACML action defaults to \"read\". Access to the parent transmission is always required in addition;\nthis context can only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGetTransmission_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGetSeenLog_SeenLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "seenAt": {
            "type": "string",
            "format": "date-time"
          },
          "seenBy": {
            "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
          },
          "isViaServiceOwner": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGetActivity_Activity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "extendedType": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
          },
          "transmissionId": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "performedBy": {
            "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
          },
          "description": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_Dialog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the dialog in UUIDv7 format.",
            "format": "guid",
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "idempotentKey": {
            "type": "string",
            "description": "An optional key to ensure idempotency in dialog creation. If provided, it allows for the safe re-submission of the same dialog creation request without creating duplicate entries.\n            ",
            "nullable": true
          },
          "revision": {
            "type": "string",
            "description": "The unique identifier for the revision in UUIDv4 format.",
            "format": "guid",
            "example": "a312cb9c-7632-43c2-aa38-69b06aed56ca"
          },
          "org": {
            "type": "string",
            "description": "The service owner code representing the organization (service owner) related to this dialog.",
            "example": "ske"
          },
          "serviceResource": {
            "type": "string",
            "description": "The service identifier for the service that the dialog is related to in URN-format.\nThis corresponds to a service resource in the Altinn Resource Registry.",
            "example": "urn:altinn:resource:some-service-identifier"
          },
          "serviceResourceType": {
            "type": "string",
            "description": "The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType)."
          },
          "party": {
            "type": "string",
            "description": "The party code representing the organization or person that the dialog belongs to in URN format.",
            "example": "urn:altinn:person:identifier-no:01125512345\nurn:altinn:organization:identifier-no:912345678"
          },
          "progress": {
            "type": "integer",
            "description": "Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come\nto a natural completion (successful or not).",
            "format": "int32",
            "nullable": true
          },
          "process": {
            "type": "string",
            "description": "Optional process identifier used to indicate a business process this dialog belongs to.",
            "nullable": true
          },
          "precedingProcess": {
            "type": "string",
            "description": "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.",
            "nullable": true
          },
          "extendedStatus": {
            "type": "string",
            "description": "Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of\nthe dialog to further specify the \"status\" enum.\n            \nRefer to the service-specific documentation provided by the service owner for details on the possible values (if\nin use).",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.\n            \nRefer to the service-specific documentation provided by the service owner for details (if in use).",
            "nullable": true
          },
          "deletedAt": {
            "type": "string",
            "description": "If deleted, the date and time when the deletion was performed.",
            "format": "date-time",
            "nullable": true
          },
          "visibleFrom": {
            "type": "string",
            "description": "The timestamp when the dialog will be made visible for authorized end users.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "dueAt": {
            "type": "string",
            "description": "The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "expiresAt": {
            "type": "string",
            "description": "The expiration date for the dialog. This is the last date when the dialog is available for the end user.\n            \nAfter this date is passed, the dialog will be considered expired and no longer available for the end user in any\nAPI. If not supplied, the dialog will be considered to never expire. This field can be changed by the service\nowner after the dialog has been created.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the dialog was created.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "updatedAt": {
            "type": "string",
            "description": "The date and time when the dialog was last updated.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "contentUpdatedAt": {
            "type": "string",
            "description": "The date and time when the dialog content was last updated.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "status": {
            "description": "The aggregated status of the dialog.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntities_DialogStatus"
              }
            ]
          },
          "systemLabel": {
            "description": "System defined label used to categorize dialogs.\nThis is obsolete and will only show; Default, Bin or Archive.\nUse SystemLabels on EndUserContext instead.",
            "deprecated": true,
            "x-deprecatedMessage": "Use EndUserContext.SystemLabels instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
              }
            ]
          },
          "isApiOnly": {
            "type": "boolean",
            "description": "Indicates if this dialog is intended for API consumption only and should not be shown in frontends aimed at humans."
          },
          "hasUnopenedContent": {
            "type": "boolean",
            "description": "Whether the service owner has not yet reported all dialog Transmissions they sent as seen by the end user.\nA Transmission is considered \"sent from the service owner\" if the DialogTransmissionType is not one of Submission or Correction.\n            \nThe value of this field is:\n- true when there are any new unopened Transmissions sent from the service owner.\n- false when the service owner has created an Activity of type TransmissionOpened for all Transmissions sent from the service owner. The Activities must each contain the relevant Id for all relevant Transmissions.\n            \nNote that the value is\n- determined by the service owner and not to be confused with IsContentSeen\n- not affected by SystemLabels\n            \nFor correspondence: HasUnopenedContent is still true until the service owner also adds a Dialog level Activity (no transmission id) of type CorrespondenceOpened"
          },
          "content": {
            "description": "The dialog unstructured text content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_Content"
              }
            ]
          },
          "fromServiceOwnerTransmissionsCount": {
            "type": "integer",
            "description": "The number of transmissions sent by the service owner.",
            "format": "int32"
          },
          "fromPartyTransmissionsCount": {
            "type": "integer",
            "description": "The number of transmissions sent by a party representative.",
            "format": "int32"
          },
          "searchTags": {
            "type": "array",
            "description": "The list of words (tags) that will be used in dialog search queries. Not visible in end-user DTO.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_Tag"
            }
          },
          "attachments": {
            "type": "array",
            "description": "The attachments associated with the dialog (on an aggregate level).",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogAttachment"
            }
          },
          "transmissions": {
            "type": "array",
            "description": "The immutable list of transmissions associated with the dialog.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogTransmission"
            }
          },
          "guiActions": {
            "type": "array",
            "description": "The GUI actions associated with the dialog. Should be used in browser-based interactive frontends.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogGuiAction"
            }
          },
          "apiActions": {
            "type": "array",
            "description": "The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogApiAction"
            }
          },
          "activities": {
            "type": "array",
            "description": "An immutable list of activities associated with the dialog.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogActivity"
            }
          },
          "seenSinceLastUpdate": {
            "type": "array",
            "description": "The list of seen log entries for the dialog newer than the dialog UpdatedAt date.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogSeenLog"
            }
          },
          "seenSinceLastContentUpdate": {
            "type": "array",
            "description": "The list of seen log entries for the dialog newer than the dialog ContentUpdatedAt date.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogSeenLog"
            }
          },
          "isContentSeen": {
            "type": "boolean",
            "description": "Indicates whether a dialog has been seen since its last content update.\n            \nThe value of this field is\n- true if the dialog has been retrieved since its last content update by either GET /enduser/dialogs/{dialogId} or GET /serviceowner/dialogs/{dialogId}?EndUserId={userId} and there is no SystemLabels MarkedAsUnopened\n- false if there is a SystemLabels MarkedAsUnopened, even if the dialog has been seen since its last content update\n- false after the dialog receives a content update.\n            \nNote that the value is determined by Dialogporten and not to be confused with HasUnopenedContent"
          },
          "serviceOwnerContext": {
            "description": "Metadata about the dialog owned by the service owner.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogServiceOwnerContext"
              }
            ]
          },
          "endUserContext": {
            "description": "Metadata about the dialog owned by end-users.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogEndUserContext"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_Content": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The title of the dialog.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "nonSensitiveTitle": {
            "description": "An optional non-sensitive title of the dialog.\nUsed for search and list views if the user authorization does not meet the required eIDAS level",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "A short summary of the dialog and its current state.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "nonSensitiveSummary": {
            "description": "An optional non-sensitive summary of the dialog and its current state.\nUsed for search and list views if the user authorization does not meet the required eIDAS level",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "senderName": {
            "description": "Overridden sender name. If not supplied, assume \"org\" as the sender name.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "additionalInfo": {
            "description": "Additional information about the dialog, this may contain Markdown.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "extendedStatus": {
            "description": "Used as the human-readable label used to describe the \"ExtendedStatus\" field.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "mainContentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS.\nIsAuthorized is evaluated only when you use the EndUserId query-parameter, otherwise it is null.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_Tag": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "description": "A search tag value."
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogAttachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment in UUIDv7 format.",
            "format": "guid"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogAttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this attachment.\nThe XACML action defaults to \"read\". Access to the parent is always required in addition; this context\ncan only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "Indicates whether the end user is authorized for this attachment.\n            \nIsAuthorized is evaluated only when you use the EndUserId query-parameter, otherwise it is null.",
            "nullable": true
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogAttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment URL in UUIDv7 format.",
            "format": "guid"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment.",
            "format": "uri",
            "example": "https://someendpoint.com/someattachment.pdf"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "What type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_AuthorizationContext": {
        "type": "object",
        "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.",
        "additionalProperties": false,
        "properties": {
          "serviceResource": {
            "type": "string",
            "description": "A service resource that overrides the dialog's own service resource in the authorization evaluation,\nreferring to another service policy.",
            "nullable": true,
            "example": "urn:altinn:resource:some-other-service-identifier"
          },
          "additionalResourceAttribute": {
            "type": "string",
            "description": "An additional resource attribute to be matched within the effective service policy, e.g. a task or\nsubresource.",
            "nullable": true,
            "example": "urn:altinn:task:Task_1\nurn:altinn:subresource:mycustomresource"
          },
          "parties": {
            "type": "array",
            "description": "Other parties than the dialog's that access is evaluated on behalf of, each at its own party and without\naccess restriction. Access is granted if the end user has access to the effective resource for at least\none of the parties, or if any of \"dialogPartyChecks\" permits.",
            "nullable": true,
            "example": "urn:altinn:organization:identifier-no:912345678",
            "items": {
              "type": "string"
            }
          },
          "dialogPartyChecks": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nChecks evaluated on behalf of the dialog's own party. Access is granted if any check, or any entry in\n\"parties\", permits. Empty when the dialog's party is not evaluated.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogPartyCheck"
            },
            "x-experimental": true
          },
          "action": {
            "type": "string",
            "description": "The XACML action to evaluate. Null when not overridden; the effective action is then \"read\".",
            "nullable": true,
            "example": "read"
          },
          "tokenRef": {
            "type": "string",
            "description": "The service owner supplied reference identifying this context in the dialog token's \"e\" claim, if any.\nNull when the carrying entity's id is used instead. Sharing a value between entities in one dialog forms\nan OR-group: authorization for any group member adds the shared value to \"e\". Recipients must also validate\nthe token's dialog id (\"i\").",
            "nullable": true,
            "example": "my-own-reference"
          },
          "unauthorizedPresentation": {
            "description": "Controls how the entity is presented to end users that fail the authorization check:\n\"disabled\" keeps the entity visible but masks its URLs and embedded content references, while\n\"excluded\" removes it from the collection it belongs to entirely, leaving only its id and\ncreation time in the sibling \"excluded\" list (e.g. \"excludedTransmissions\" beside\n\"transmissions\").",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesAuthorizationContexts_AuthorizationContextUnauthorizedPresentation"
              }
            ]
          }
        },
        "x-experimental": true
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogPartyCheck": {
        "type": "object",
        "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.",
        "additionalProperties": false,
        "properties": {
          "accessRestriction": {
            "description": "Restricts how the end user's access at the dialog's party must have been obtained for this check to grant\naccess: \"none\" accepts all access, \"directAndHierarchy\" only access that does not pass through another\norganization, and \"clientDelegation\" only client delegations made through the organization in \"viaParty\".",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesAuthorizationContexts_DialogPartyCheckAccessRestriction"
              }
            ]
          },
          "viaParty": {
            "type": "string",
            "description": "The organization the end user's access must have been client delegated through. Only set when\n\"accessRestriction\" is \"clientDelegation\".",
            "nullable": true,
            "example": "urn:altinn:organization:identifier-no:912345678"
          },
          "serviceResource": {
            "type": "string",
            "description": "The service resource evaluated for this check instead of the context's. Null when not overridden.",
            "nullable": true,
            "example": "urn:altinn:resource:some-other-service-identifier"
          },
          "action": {
            "type": "string",
            "description": "The XACML action evaluated for this check instead of the context's. Null when not overridden.",
            "nullable": true,
            "example": "readall"
          }
        },
        "x-experimental": true
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogTransmission": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the transmission in UUIDv7 format.",
            "format": "guid"
          },
          "idempotentKey": {
            "type": "string",
            "description": "An optional key to ensure idempotency in transmission creation. If provided, it must be unique within the dialog; reusing the same key for the same dialog results in Conflict and no new transmission is created.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the transmission was created.",
            "format": "date-time"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this transmission.\nNull when no authorization context is set, including when the transmission uses legacy\nauthorization fields.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "Flag indicating if the authenticated user supplied in the query is authorized for this transmission.",
            "nullable": true
          },
          "extendedType": {
            "type": "string",
            "description": "Arbitrary URI/URN describing a service-specific transmission type.\n            \nRefer to the service-specific documentation provided by the service owner for details (if in use).",
            "format": "uri",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "relatedTransmissionId": {
            "type": "string",
            "description": "Reference to any other transmission that this transmission is related to.",
            "format": "guid",
            "nullable": true
          },
          "type": {
            "description": "The type of transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesTransmissions_DialogTransmissionType"
              }
            ]
          },
          "sender": {
            "description": "The actor that sent the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "content": {
            "description": "The transmission unstructured text content.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogTransmissionContent"
              }
            ]
          },
          "isOpened": {
            "type": "boolean",
            "description": "Indicates whether the dialog transmission has been opened."
          },
          "attachments": {
            "type": "array",
            "description": "The transmission-level attachments.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogTransmissionAttachment"
            }
          },
          "navigationalActions": {
            "type": "array",
            "description": "The transmission-level navigational actions.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogTransmissionNavigationalAction"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogTransmissionContent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The transmission title.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "The transmission summary.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "contentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogTransmissionAttachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment in UUIDv7 format.",
            "format": "guid"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogTransmissionAttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this attachment.\nThe XACML action defaults to \"read\". Access to the parent is always required in addition; this context\ncan only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "Indicates whether the end user is authorized for this attachment.\n            \nIsAuthorized is evaluated only when you use the EndUserId query-parameter, otherwise it is null.",
            "nullable": true
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogTransmissionAttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment URL in UUIDv7 format.",
            "format": "guid"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment. Will be set to \"urn:dialogporten:unauthorized\" if the user is\nnot authorized to access the transmission.",
            "format": "uri",
            "example": "https://someendpoint.com/someattachment.pdf\nurn:dialogporten:unauthorized"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogTransmissionNavigationalAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the navigational action in UUIDv7 format.",
            "format": "guid"
          },
          "title": {
            "type": "array",
            "description": "The title of the navigational action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the navigational action.",
            "format": "uri",
            "example": "https://example.com/path"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the navigational action expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this navigational action.\nThe XACML action defaults to \"read\". Access to the parent is always required in addition; this context\ncan only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "Indicates whether the end user is authorized for this navigational action.\n            \nIsAuthorized is evaluated only when you use the EndUserId query-parameter, otherwise it is null.",
            "nullable": true
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogGuiAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the action in UUIDv7 format.",
            "format": "guid"
          },
          "action": {
            "type": "string",
            "description": "The action identifier for the action, corresponding to the \"action\" attributeId used in the XACML service policy.\n            \nEmpty when the action was supplied with an authorizationContext, in which case the action is found in\nauthorizationContext.action.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext.Action' instead."
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the action, to which the user will be redirected when the action is triggered.",
            "format": "uri"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this action.\nNull when no authorization context is set, including when the action uses legacy\nauthorization fields.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "Whether the user, if supplied in the query, is authorized to perform the action.",
            "nullable": true
          },
          "isDeleteDialogAction": {
            "type": "boolean",
            "description": "Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX\nfor delete actions."
          },
          "priority": {
            "description": "Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action\npriority.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActions_DialogGuiActionPriority"
              }
            ]
          },
          "httpMethod": {
            "description": "The HTTP method that the frontend should use when redirecting the user.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Http_HttpVerb"
              }
            ]
          },
          "title": {
            "type": "array",
            "description": "The title of the action, this should be short and in verb form.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "prompt": {
            "type": "array",
            "description": "If there should be a prompt asking the user for confirmation before the action is executed,\nthis field should contain the prompt text.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "DialogsEntitiesActions_DialogGuiActionPriority": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "Primary",
          "Secondary",
          "Tertiary"
        ],
        "enum": [
          "Primary",
          "Secondary",
          "Tertiary"
        ]
      },
      "Http_HttpVerb": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "GET",
          "POST",
          "PUT",
          "PATCH",
          "DELETE",
          "HEAD",
          "OPTIONS",
          "TRACE",
          "CONNECT"
        ],
        "enum": [
          "GET",
          "POST",
          "PUT",
          "PATCH",
          "DELETE",
          "HEAD",
          "OPTIONS",
          "TRACE",
          "CONNECT"
        ]
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogApiAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the action in UUIDv7 format.",
            "format": "guid"
          },
          "action": {
            "type": "string",
            "description": "String identifier for the action, corresponding to the \"action\" attributeId used in the XACML service policy,\nwhich by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nEmpty when the action was supplied with an authorizationContext, in which case the action is found in\nauthorizationContext.action.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext.Action' instead.",
            "example": "write"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this action.\nNull when no authorization context is set, including when the action uses legacy\nauthorization fields.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "True if the authenticated user (set in the query) is authorized for this action.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The logical name of the operation the API action refers to.",
            "nullable": true,
            "example": "confirm"
          },
          "endpoints": {
            "type": "array",
            "description": "The endpoints associated with the action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogApiActionEndpoint"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogApiActionEndpoint": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the endpoint in UUIDv7 format.",
            "format": "guid"
          },
          "version": {
            "type": "string",
            "description": "Arbitrary string indicating the version of the endpoint.\n            \nConsult the service-specific documentation provided by the service owner for details (if in use).",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the API endpoint.",
            "format": "uri"
          },
          "httpMethod": {
            "description": "The HTTP method that the endpoint expects for this action.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Http_HttpVerb"
              }
            ]
          },
          "documentationUrl": {
            "type": "string",
            "description": "Link to service provider documentation for the endpoint. Used for service owners to provide documentation for\nintegrators. Should be a URL to a human-readable page.",
            "format": "uri",
            "nullable": true
          },
          "requestSchema": {
            "type": "string",
            "description": "Link to the request schema for the endpoint. Used by service owners to provide documentation for integrators.\nDialogporten will not validate information on this endpoint.",
            "format": "uri",
            "nullable": true
          },
          "responseSchema": {
            "type": "string",
            "description": "Link to the response schema for the endpoint. Used for service owners to provide documentation for integrators.\nDialogporten will not validate information on this endpoint.",
            "format": "uri",
            "nullable": true
          },
          "deprecated": {
            "type": "boolean",
            "description": "Boolean indicating if the endpoint is deprecated. Integrators should migrate to endpoints with a higher version."
          },
          "sunsetAt": {
            "type": "string",
            "description": "Date and time when the service owner has indicated that endpoint will no longer function. Only set if the endpoint\nis deprecated. Dialogporten will not enforce this date.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogActivity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the activity in UUIDv7 format.",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the activity was created.",
            "format": "date-time",
            "nullable": true
          },
          "extendedType": {
            "type": "string",
            "description": "An arbitrary URI/URN with a service-specific activity type.\n            \nConsult the service-specific documentation provided by the service owner for details (if in use).",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "description": "The type of activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
              }
            ]
          },
          "transmissionId": {
            "type": "string",
            "description": "If the activity is related to a particular transmission, this field will contain the transmission identifier.",
            "format": "guid",
            "nullable": true
          },
          "performedBy": {
            "description": "The actor that performed the activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "description": {
            "type": "array",
            "description": "Unstructured text describing the activity. Only set if the activity type is \"Information\".",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogSeenLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the seen log entry in UUIDv7 format.",
            "format": "guid"
          },
          "seenAt": {
            "type": "string",
            "description": "The timestamp when the dialog revision was seen.",
            "format": "date-time"
          },
          "seenBy": {
            "description": "The actor that saw the dialog revision.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "isViaServiceOwner": {
            "type": "boolean",
            "description": "Flag indicating whether the seen log entry was created via the service owner.\n            \nThis is used when the service owner uses the service owner API to implement its own frontend.",
            "nullable": true
          },
          "isCurrentEndUser": {
            "type": "boolean",
            "description": "Flag indicating whether the seen log entry was created by the current end user, if provided in the query."
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogServiceOwnerContext": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serviceOwnerLabels": {
            "type": "array",
            "description": "A list of labels, not visible in end-user APIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsQueriesGet_DialogServiceOwnerLabel"
            }
          },
          "revision": {
            "type": "string",
            "description": "The unique identifier for the service owner context revision in UUIDv4 format.",
            "format": "guid",
            "example": "0196fccd-bf48-7d27-bdfc-4ad3b0f3bee5"
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogServiceOwnerLabel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "description": "A label value."
          }
        }
      },
      "V1ServiceOwnerDialogsQueriesGet_DialogEndUserContext": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "revision": {
            "type": "string",
            "description": "The unique identifier for the end user context revision in UUIDv4 format.",
            "format": "guid",
            "example": "0196fccd-bf48-7d27-bdfc-4ad3b0f3bee5"
          },
          "systemLabels": {
            "type": "array",
            "description": "System defined labels used to categorize dialogs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdateTransmission_TransmissionRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "idempotentKey": {
            "type": "string",
            "description": "An optional key to ensure idempotency in transmission creation. If provided, it must be unique within the dialog; reusing the same key for the same dialog results in Conflict and the transmission is not updated.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "Overrides the creating date and time for the transmission.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this transmission.\nCannot be combined with \"authorizationAttribute\".",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "extendedType": {
            "type": "string",
            "description": "Arbitrary URI/URN describing a service-specific transmission type.\n            \nRefer to the service-specific documentation provided by the service owner for details (if in use).",
            "format": "uri",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "relatedTransmissionId": {
            "type": "string",
            "description": "Reference to any other transmission that this transmission is related to.",
            "format": "guid",
            "nullable": true
          },
          "type": {
            "description": "The type of transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesTransmissions_DialogTransmissionType"
              }
            ]
          },
          "sender": {
            "description": "The actor that sent the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "content": {
            "description": "The transmission unstructured text content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdateTransmission_TransmissionContent"
              }
            ]
          },
          "attachments": {
            "type": "array",
            "description": "The transmission-level attachments.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdateTransmission_TransmissionAttachment"
            }
          },
          "navigationalActions": {
            "type": "array",
            "description": "The transmission-level navigational actions.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdateTransmission_TransmissionNavigationalAction"
            }
          },
          "isSilentUpdate": {
            "type": "boolean"
          }
        }
      },
      "V1CommonAuthorizationContexts_AuthorizationContext": {
        "type": "object",
        "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.",
        "additionalProperties": false,
        "properties": {
          "serviceResource": {
            "type": "string",
            "description": "A service resource that overrides the dialog's own service resource in the authorization evaluation,\nreferring to another service policy. The service owner must have access to the referenced resource.\nWhen set, the dialog's instance reference no longer applies to the evaluation of this entity.",
            "nullable": true,
            "example": "urn:altinn:resource:some-other-service-identifier"
          },
          "additionalResourceAttribute": {
            "type": "string",
            "description": "An additional resource attribute to be matched within the effective service policy, e.g. a task or\nsubresource. Cannot contain a service resource reference; use \"serviceResource\" for that. References\nto an app (\"urn:altinn:app\") or an organization (\"urn:altinn:org\") are not allowed either; both are\nderived from the effective service resource.",
            "nullable": true,
            "example": "urn:altinn:task:Task_1\nurn:altinn:subresource:mycustomresource"
          },
          "parties": {
            "type": "array",
            "description": "Other parties than the dialog's to evaluate access on behalf of, each at its own party and without access\nrestriction. Access is granted if the end user has access to the effective resource for at least one of\nthe parties, or if any of \"dialogPartyChecks\" permits. Cannot contain the dialog's own party; use a\n\"dialogPartyChecks\" entry with access restriction \"None\" for that. Together with \"dialogPartyChecks\", at\nleast 1 and at most 4 entries.",
            "nullable": true,
            "example": "urn:altinn:organization:identifier-no:912345678",
            "items": {
              "type": "string"
            }
          },
          "dialogPartyChecks": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nChecks evaluated on behalf of the dialog's own party. Access is granted if any check, or any entry in\n\"parties\", permits. An empty list means the dialog's party is not evaluated. Together with \"parties\",\nat least 1 and at most 4 entries.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonAuthorizationContexts_DialogPartyCheck"
            },
            "x-experimental": true
          },
          "action": {
            "type": "string",
            "description": "The XACML action to evaluate. Optional; defaults to \"read\" if not supplied.",
            "nullable": true,
            "example": "read"
          },
          "tokenRef": {
            "type": "string",
            "description": "An optional reference identifying this context in the dialog token. When the end user is authorized for\nthis context, the dialog token's \"e\" claim lists this value instead of the id of the entity carrying the\ncontext, allowing the service owner to recognize the grant without tracking Dialogporten entity ids.\nThe same value may be shared by multiple entities in one dialog to form an OR-group: authorization for any\nentity in the group adds the shared value to \"e\", so a recipient validating that value cannot distinguish\nwhich individual entity was authorized. Only group entities that intentionally share access semantics.\nToken references are scoped to a dialog; recipients must also validate the token's dialog id (\"i\").\nMaximum 50 characters.",
            "nullable": true,
            "example": "my-own-reference"
          },
          "unauthorizedPresentation": {
            "description": "Required. Controls how the entity is presented to end users that fail the authorization check:\n\"disabled\" keeps the entity visible but masks its URLs and embedded content references, while\n\"excluded\" removes it from the collection it belongs to entirely, leaving only its id and\ncreation time in the sibling \"excluded\" list (e.g. \"excludedTransmissions\" beside\n\"transmissions\").",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesAuthorizationContexts_AuthorizationContextUnauthorizedPresentation"
              }
            ]
          }
        },
        "x-experimental": true
      },
      "V1CommonAuthorizationContexts_DialogPartyCheck": {
        "type": "object",
        "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.",
        "additionalProperties": false,
        "properties": {
          "accessRestriction": {
            "description": "Required. Restricts how the end user's access at the dialog's party must have been obtained for this\ncheck to grant access: \"none\" accepts all access, \"directAndHierarchy\" only access that does not pass\nthrough another organization (direct grants, ER roles and their role mappings at the dialog party, and\ninheritance from its main unit), and \"clientDelegation\" only client delegations made through the\norganization given in \"viaParty\".",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesAuthorizationContexts_DialogPartyCheckAccessRestriction"
              }
            ]
          },
          "viaParty": {
            "type": "string",
            "description": "The organization the end user's access must have been client delegated through. Required when\n\"accessRestriction\" is \"clientDelegation\", and not allowed otherwise. Cannot be the dialog's own party.",
            "nullable": true,
            "example": "urn:altinn:organization:identifier-no:912345678"
          },
          "serviceResource": {
            "type": "string",
            "description": "A service resource to evaluate for this check instead of the context's. If omitted, the context's\n\"serviceResource\" is used, or the dialog's own service resource if the context sets none. The same rules\napply as for the context's \"serviceResource\", including that the service owner must have access to it.\nThe context's \"additionalResourceAttribute\", if any, is layered on the resulting resource.",
            "nullable": true,
            "example": "urn:altinn:resource:some-other-service-identifier"
          },
          "action": {
            "type": "string",
            "description": "The XACML action to evaluate for this check instead of the context's. If omitted, the context's \"action\"\nis used, or \"read\" if the context sets none.",
            "nullable": true,
            "example": "readall"
          }
        },
        "x-experimental": true
      },
      "V1ServiceOwnerDialogsCommandsUpdateTransmission_TransmissionContent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The transmission title. Must be text/plain.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "The transmission summary.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "contentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdateTransmission_TransmissionAttachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent additions of transmission attachments. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdateTransmission_TransmissionAttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this attachment.\nThe XACML action defaults to \"read\". Access to the parent transmission is always required in addition;\nthis context can only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdateTransmission_TransmissionAttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent additions and updates of attachment URLs. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment.",
            "format": "uri"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdateTransmission_TransmissionNavigationalAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent additions of navigational actions. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "title": {
            "type": "array",
            "description": "The title of the navigational action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the navigational action.",
            "format": "uri"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the navigational action expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this navigational action.\nThe XACML action defaults to \"read\". Access to the parent transmission is always required in addition; this\ncontext can only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_DialogRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dto": {
            "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_Dialog"
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_Dialog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "progress": {
            "type": "integer",
            "description": "Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come\nto a natural completion (successful or not).",
            "format": "int32",
            "nullable": true
          },
          "extendedStatus": {
            "type": "string",
            "description": "Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of\nthe dialog to further specify the \"status\" enum.",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "dueAt": {
            "type": "string",
            "description": "The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "process": {
            "type": "string",
            "description": "Optional process identifier used to indicate a business process this dialog belongs to.",
            "nullable": true
          },
          "precedingProcess": {
            "type": "string",
            "description": "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.",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "description": "The expiration date for the dialog. This is the last date when the dialog is available for the end user.\n            \nAfter this date is passed, the dialog will be considered expired and no longer available for the end user in any\nAPI. If not supplied, the dialog will be considered to never expire. This field can be changed after creation.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "isApiOnly": {
            "type": "boolean",
            "description": "Indicates if this dialog is intended for API consumption only and should not be displayed in user interfaces.\nWhen true, the dialog will not be visible in portals designed for human users, but will remain accessible via API.\nIf any Transmissions were created without Content while this property was true, the flag cannot be reverted to false."
          },
          "status": {
            "description": "The aggregated status of the dialog.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonDialogStatuses_DialogStatusInput"
              }
            ]
          },
          "content": {
            "description": "The dialog unstructured text content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_Content"
              }
            ]
          },
          "searchTags": {
            "type": "array",
            "description": "A list of words (tags) that will be used in dialog search queries. Not visible in end-user DTO.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_Tag"
            }
          },
          "attachments": {
            "type": "array",
            "description": "The attachments associated with the dialog (on an aggregate level).",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_Attachment"
            }
          },
          "transmissions": {
            "type": "array",
            "description": "The immutable list of transmissions associated with the dialog. When updating via PUT, any transmissions\nadded here will be appended to the existing list of transmissions.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_Transmission"
            }
          },
          "guiActions": {
            "type": "array",
            "description": "The GUI actions associated with the dialog. Should be used in browser-based interactive frontends.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_GuiAction"
            }
          },
          "apiActions": {
            "type": "array",
            "description": "The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_ApiAction"
            }
          },
          "activities": {
            "type": "array",
            "description": "An immutable list of activities associated with the dialog. When updating via PUT, any activities added here\nwill be appended to the existing list of activities.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_Activity"
            }
          }
        }
      },
      "V1ServiceOwnerCommonDialogStatuses_DialogStatusInput": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "New",
          "InProgress",
          "Draft",
          "Sent",
          "RequiresAttention",
          "Completed",
          "NotApplicable",
          "Awaiting"
        ],
        "enum": [
          "New",
          "InProgress",
          "Draft",
          "Sent",
          "RequiresAttention",
          "Completed",
          "NotApplicable",
          "Awaiting"
        ]
      },
      "V1ServiceOwnerDialogsCommandsUpdate_Content": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The title of the dialog. Must be text/plain.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "nonSensitiveTitle": {
            "description": "An optional non-sensitive title of the dialog.\nUsed for search and list views if the user authorization does not meet the required eIDAS level",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "A short summary of the dialog and its current state. Must be text/plain.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "nonSensitiveSummary": {
            "description": "An optional non-sensitive summary of the dialog and its current state.\nUsed for search and list views if the user authorization does not meet the required eIDAS level",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "senderName": {
            "description": "Overridden sender name. If not supplied, assume \"org\" as the sender name. Must be text/plain if supplied.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "additionalInfo": {
            "description": "Additional information about the dialog, this may contain Markdown.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "extendedStatus": {
            "description": "Used as the human-readable label used to describe the \"ExtendedStatus\" field. Must be text/plain.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "mainContentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_Tag": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "description": "A search tag value."
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_Attachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent additions of attachments. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_AttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this attachment.\nThe XACML action defaults to \"read\". Access to the parent is always required in addition; this context\ncan only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_AttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent additions and updates of attachment URLs. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment.",
            "format": "uri"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_Transmission": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A UUIDv7 may be provided to support idempotent additions to the list of transmissions.\nIf not supplied, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "idempotentKey": {
            "type": "string",
            "description": "An optional key to ensure idempotency in transmission creation. If provided, it must be unique within the dialog; reusing the same key for the same dialog results in Conflict and no new transmission is created.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "If supplied, overrides the creating date and time for the transmission.\nIf not supplied, the current date /time will be used.",
            "format": "date-time"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this transmission.\nCannot be combined with \"authorizationAttribute\".",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "extendedType": {
            "type": "string",
            "description": "Arbitrary URI/URN describing a service-specific transmission type.\n            \nRefer to the service-specific documentation provided by the service owner for details (if in use).",
            "format": "uri",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "relatedTransmissionId": {
            "type": "string",
            "description": "Reference to any other transmission that this transmission is related to.",
            "format": "guid",
            "nullable": true
          },
          "type": {
            "description": "The type of transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesTransmissions_DialogTransmissionType"
              }
            ]
          },
          "sender": {
            "description": "The actor that sent the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "content": {
            "description": "The transmission unstructured text content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_TransmissionContent"
              }
            ]
          },
          "attachments": {
            "type": "array",
            "description": "The transmission-level attachments.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_TransmissionAttachment"
            }
          },
          "navigationalActions": {
            "type": "array",
            "description": "The transmission-level navigational actions.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_TransmissionNavigationalAction"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_TransmissionContent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The transmission title. Must be text/plain.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "The transmission summary.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "contentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_TransmissionAttachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent additions of transmission attachments. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_TransmissionAttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this attachment.\nThe XACML action defaults to \"read\". Access to the parent is always required in addition; this context\ncan only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_TransmissionAttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment.",
            "format": "uri"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_TransmissionNavigationalAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent additions of navigational actions. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "title": {
            "type": "array",
            "description": "The title of the navigational action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the navigational action.",
            "format": "uri"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the navigational action expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this navigational action.\nThe XACML action defaults to \"read\". Access to the parent transmission is always required in addition; this\ncontext can only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_GuiAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent additions of Gui Actions. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "action": {
            "type": "string",
            "description": "The action identifier for the action, corresponding to the \"action\" attributeId used in the XACML service policy.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext.Action' instead.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the action, to which the user will be redirected when the action is triggered. Will be set to\n\"urn:dialogporten:unauthorized\" if the user is not authorized to perform the action.",
            "format": "uri",
            "example": "urn:dialogporten:unauthorized\nhttps://someendpoint.com/gui/some-service-instance-id"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this action.\nCannot be combined with \"authorizationAttribute\" or \"action\"; the XACML action is given by\n\"authorizationContext.action\".",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "isDeleteDialogAction": {
            "type": "boolean",
            "description": "Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX\nfor delete actions."
          },
          "httpMethod": {
            "description": "The HTTP method that the frontend should use when redirecting the user.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Http_HttpVerb"
              }
            ]
          },
          "priority": {
            "description": "Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action\npriority.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActions_DialogGuiActionPriority"
              }
            ]
          },
          "title": {
            "type": "array",
            "description": "The title of the action, this should be short and in verb form. Must be text/plain.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "prompt": {
            "type": "array",
            "description": "If there should be a prompt asking the user for confirmation before the action is executed,\nthis field should contain the prompt text.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_ApiAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent additions of Api Actions. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "action": {
            "type": "string",
            "description": "String identifier for the action, corresponding to the \"action\" attributeId used in the XACML service policy,\nwhich by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext.Action' instead.",
            "nullable": true,
            "example": "write"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this action.\nCannot be combined with \"authorizationAttribute\" or \"action\"; the XACML action is given by\n\"authorizationContext.action\".",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "name": {
            "type": "string",
            "description": "The logical name of the operation the API action refers to.",
            "nullable": true,
            "example": "confirm"
          },
          "endpoints": {
            "type": "array",
            "description": "The endpoints associated with the action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsUpdate_ApiActionEndpoint"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_ApiActionEndpoint": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of Api Action Endpoints. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "version": {
            "type": "string",
            "description": "Arbitrary string indicating the version of the endpoint.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the API endpoint.",
            "format": "uri"
          },
          "httpMethod": {
            "description": "The HTTP method that the endpoint expects for this action.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Http_HttpVerb"
              }
            ]
          },
          "documentationUrl": {
            "type": "string",
            "description": "Link to documentation for the endpoint, providing documentation for integrators. Should be a URL to a\nhuman-readable page.",
            "format": "uri",
            "nullable": true
          },
          "requestSchema": {
            "type": "string",
            "description": "Link to the request schema for the endpoint. Used to provide documentation for integrators.\nDialogporten will not validate information on this endpoint.",
            "format": "uri",
            "nullable": true
          },
          "responseSchema": {
            "type": "string",
            "description": "Link to the response schema for the endpoint. Used to provide documentation for integrators.\nDialogporten will not validate information on this endpoint.",
            "format": "uri",
            "nullable": true
          },
          "deprecated": {
            "type": "boolean",
            "description": "Boolean indicating if the endpoint is deprecated."
          },
          "sunsetAt": {
            "type": "string",
            "description": "Date and time when the endpoint will no longer function. Only set if the endpoint is deprecated. Dialogporten\nwill not enforce this date.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsUpdate_Activity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A UUIDv7 may be provided to support idempotent additions to the list of activities.\nIf not supplied, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "createdAt": {
            "type": "string",
            "description": "If supplied, overrides the creating date and time for the activity.\nIf not supplied, the current date /time will be used.",
            "format": "date-time",
            "nullable": true
          },
          "extendedType": {
            "type": "string",
            "description": "Arbitrary URI/URN describing a service-specific activity type.",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "description": "The type of activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
              }
            ]
          },
          "transmissionId": {
            "type": "string",
            "description": "If the activity is related to a particular transmission, this field will contain the transmission identifier.\nMust be present in the request body.",
            "format": "guid",
            "nullable": true
          },
          "performedBy": {
            "description": "The actor that performed the activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "description": {
            "type": "array",
            "description": "Unstructured text describing the activity. Only set if the activity type is \"Information\".",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreateTransmission_TransmissionRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A UUIDv7 may be provided to support idempotent additions to the list of transmissions.\nIf not supplied, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "idempotentKey": {
            "type": "string",
            "description": "An optional key to ensure idempotency in transmission creation. If provided, it must be unique within the dialog; reusing the same key for the same dialog results in Conflict and no new transmission is created.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "If supplied, overrides the creating date and time for the transmission.\nIf not supplied, the current date /time will be used.",
            "format": "date-time"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this transmission.\nCannot be combined with \"authorizationAttribute\".",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "extendedType": {
            "type": "string",
            "description": "Arbitrary URI/URN describing a service-specific transmission type.\n            \nRefer to the service-specific documentation provided by the service owner for details (if in use).",
            "format": "uri",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "relatedTransmissionId": {
            "type": "string",
            "description": "Reference to any other transmission that this transmission is related to.",
            "format": "guid",
            "nullable": true
          },
          "type": {
            "description": "The type of transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesTransmissions_DialogTransmissionType"
              }
            ]
          },
          "sender": {
            "description": "The actor that sent the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "content": {
            "description": "The transmission unstructured text content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreateTransmission_TransmissionContent"
              }
            ]
          },
          "attachments": {
            "type": "array",
            "description": "The transmission-level attachments.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreateTransmission_TransmissionAttachment"
            }
          },
          "navigationalActions": {
            "type": "array",
            "description": "The transmission-level navigational actions.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreateTransmission_TransmissionNavigationalAction"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreateTransmission_TransmissionContent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The transmission title. Must be text/plain.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "The transmission summary.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "contentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreateTransmission_TransmissionAttachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent additions of transmission attachments. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreateTransmission_TransmissionAttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this attachment.\nThe XACML action defaults to \"read\". Access to the parent transmission is always required in addition;\nthis context can only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreateTransmission_TransmissionAttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment.",
            "format": "uri"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreateTransmission_TransmissionNavigationalAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of navigational actions. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "title": {
            "type": "array",
            "description": "The title of the navigational action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the navigational action.",
            "format": "uri"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the navigational action expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this navigational action.\nThe XACML action defaults to \"read\". Access to the parent transmission is always required in addition; this\ncontext can only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreateActivity_ActivityRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A UUIDv7 may be provided to support idempotent additions to the list of activities.\nIf not supplied, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "createdAt": {
            "type": "string",
            "description": "If supplied, overrides the creating date and time for the activity.\nIf not supplied, the current date /time will be used.",
            "format": "date-time",
            "nullable": true
          },
          "extendedType": {
            "type": "string",
            "description": "Arbitrary URI/URN describing a service-specific activity type.",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "description": "The type of activity",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
              }
            ]
          },
          "transmissionId": {
            "type": "string",
            "description": "If the activity is related to a particular transmission, this field will contain the transmission identifier.\nMust be present in the request body.",
            "format": "guid",
            "nullable": true
          },
          "performedBy": {
            "description": "The actor that performed the activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "description": {
            "type": "array",
            "description": "Unstructured text describing the activity. Only set if the activity type is \"Information\".",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_DialogRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dto": {
            "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_Dialog"
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_Dialog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of dialogs. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "idempotentKey": {
            "type": "string",
            "description": "An optional key to ensure idempotency in dialog creation. If provided, it allows for the safe re-submission of the same dialog creation request without creating duplicate entries.",
            "nullable": true
          },
          "serviceResource": {
            "type": "string",
            "description": "The service identifier for the service that the dialog is related to in URN-format.\nThis corresponds to a resource in the Altinn Resource Registry, which the authenticated organization\nmust own, i.e., be listed as the \"competent authority\" in the Resource Registry entry.",
            "example": "urn:altinn:resource:some-service-identifier"
          },
          "party": {
            "type": "string",
            "description": "The party code representing the organization or person that the dialog belongs to in URN format.",
            "example": "urn:altinn:person:identifier-no:01125512345\nurn:altinn:organization:identifier-no:912345678"
          },
          "progress": {
            "type": "integer",
            "description": "Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come\nto a natural completion (successful or not).",
            "format": "int32",
            "nullable": true
          },
          "extendedStatus": {
            "type": "string",
            "description": "Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of\nthe dialog to further specify the \"status\" enum.",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "visibleFrom": {
            "type": "string",
            "description": "The timestamp when the dialog should be made visible for authorized end users. If not provided, the dialog will be\nimmediately available.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "dueAt": {
            "type": "string",
            "description": "The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "process": {
            "type": "string",
            "description": "Optional process identifier used to indicate a business process this dialog belongs to.",
            "nullable": true
          },
          "precedingProcess": {
            "type": "string",
            "description": "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.",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "description": "The expiration date for the dialog. This is the last date when the dialog is available for the end user.\n            \nAfter this date is passed, the dialog will be considered expired and no longer available for the end user in any\nAPI. If not supplied, the dialog will be considered to never expire. This field can be changed after creation.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "isApiOnly": {
            "type": "boolean",
            "description": "Indicates if this dialog is intended for API consumption only and should not be displayed in user interfaces.\nWhen true, the dialog will not be visible in portals designed for human users, but will remain accessible via API."
          },
          "createdAt": {
            "type": "string",
            "description": "If set, will override the date and time when the dialog is set as created.\nIf not supplied, the current date /time will be used.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "updatedAt": {
            "type": "string",
            "description": "If set, will override the date and time when the dialog is set as last updated.\nIf not supplied, the current date /time will be used.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "status": {
            "description": "The aggregated status of the dialog.",
            "nullable": true,
            "example": "NotApplicable",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonDialogStatuses_DialogStatusInput"
              }
            ]
          },
          "systemLabel": {
            "description": "Set the system label of the dialog.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
              }
            ]
          },
          "serviceOwnerContext": {
            "description": "Metadata about the dialog owned by the service owner.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_DialogServiceOwnerContext"
              }
            ]
          },
          "content": {
            "description": "The dialog unstructured text content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_Content"
              }
            ]
          },
          "searchTags": {
            "type": "array",
            "description": "A list of words (tags) that will be used in dialog search queries. Not visible in end-user DTO.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_Tag"
            }
          },
          "attachments": {
            "type": "array",
            "description": "The attachments associated with the dialog (on an aggregate level).",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_Attachment"
            }
          },
          "transmissions": {
            "type": "array",
            "description": "The immutable list of transmissions associated with the dialog.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_Transmission"
            }
          },
          "guiActions": {
            "type": "array",
            "description": "The GUI actions associated with the dialog. Should be used in browser-based interactive frontends.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_GuiAction"
            }
          },
          "apiActions": {
            "type": "array",
            "description": "The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_ApiAction"
            }
          },
          "activities": {
            "type": "array",
            "description": "An immutable list of activities associated with the dialog.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_Activity"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_DialogServiceOwnerContext": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serviceOwnerLabels": {
            "type": "array",
            "description": "A list of labels, not visible in end-user APIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_ServiceOwnerLabel"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_ServiceOwnerLabel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "description": "A label value."
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_Content": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The title of the dialog.\nSupported media types: text/plain",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "nonSensitiveTitle": {
            "description": "An optional non-sensitive title of the dialog.\nUsed for search and list views if the user authorization does not meet the required eIDAS level",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "A short summary of the dialog and its current state.\nSupported media types: text/plain",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "nonSensitiveSummary": {
            "description": "An optional non-sensitive summary of the dialog and its current state.\nUsed for search and list views if the user authorization does not meet the required eIDAS level",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "senderName": {
            "description": "Overridden sender name. If not supplied, assume \"org\" as the sender name. Must be text/plain if supplied.\nSupported media types: text/plain",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "additionalInfo": {
            "description": "Additional information about the dialog.\nSupported media types: text/plain, text/markdown",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "extendedStatus": {
            "description": "Used as the human-readable label used to describe the \"ExtendedStatus\" field.\nSupported media types: text/plain",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "mainContentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_Tag": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "description": "A search tag value."
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_Attachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of attachments. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_AttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this attachment.\nThe XACML action defaults to \"read\". Access to the parent is always required in addition; this context\ncan only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_AttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of attachment URLs. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment.",
            "format": "uri"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_Transmission": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of transmissions. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "idempotentKey": {
            "type": "string",
            "description": "An optional key to ensure idempotency in transmission creation. If provided, it must be unique within the dialog; reusing the same key for the same dialog results in Conflict and no new transmission is created.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "If supplied, overrides the creating date and time for the transmission.\nIf not supplied, the current date /time will be used.",
            "format": "date-time"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this transmission.\nCannot be combined with \"authorizationAttribute\".",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "extendedType": {
            "type": "string",
            "description": "Arbitrary URI/URN describing a service-specific transmission type.\n            \nRefer to the service-specific documentation provided by the service owner for details (if in use).",
            "format": "uri",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "relatedTransmissionId": {
            "type": "string",
            "description": "Reference to any other transmission that this transmission is related to.",
            "format": "guid",
            "nullable": true
          },
          "type": {
            "description": "The type of transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesTransmissions_DialogTransmissionType"
              }
            ]
          },
          "sender": {
            "description": "The actor that sent the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "content": {
            "description": "The transmission unstructured text content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_TransmissionContent"
              }
            ]
          },
          "attachments": {
            "type": "array",
            "description": "The transmission-level attachments.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachment"
            }
          },
          "navigationalActions": {
            "type": "array",
            "description": "The transmission-level navigational actions.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_TransmissionNavigationalAction"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_TransmissionContent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The transmission title. Must be text/plain.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "The transmission summary.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "contentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL. Must be HTTPS.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of transmission attachments. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this attachment.\nThe XACML action defaults to \"read\". Access to the parent is always required in addition; this context\ncan only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_TransmissionAttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment.",
            "format": "uri"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_TransmissionNavigationalAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of navigational actions. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "title": {
            "type": "array",
            "description": "The title of the navigational action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the navigational action.",
            "format": "uri"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the navigational action expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes additional authorization inputs used when evaluating end user access to this navigational action.\nThe XACML action defaults to \"read\". Access to the parent transmission is always required in addition; this\ncontext can only further restrict access, never widen it.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_GuiAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of Gui Actions. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "action": {
            "type": "string",
            "description": "The action identifier for the action, corresponding to the \"action\" attributeId used in the XACML service policy.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext.Action' instead.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the action, to which the user will be redirected when the action is triggered. Will be set to\n\"urn:dialogporten:unauthorized\" if the user is not authorized to perform the action.",
            "format": "uri",
            "example": "urn:dialogporten:unauthorized\nhttps://someendpoint.com/gui/some-service-instance-id"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this action.\nCannot be combined with \"authorizationAttribute\" or \"action\"; the XACML action is given by\n\"authorizationContext.action\".",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "isDeleteDialogAction": {
            "type": "boolean",
            "description": "Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX\nfor delete actions."
          },
          "httpMethod": {
            "description": "The HTTP method that the frontend should use when redirecting the user.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Http_HttpVerb"
              }
            ]
          },
          "priority": {
            "description": "Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action\npriority.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActions_DialogGuiActionPriority"
              }
            ]
          },
          "title": {
            "type": "array",
            "description": "The title of the action, this should be short and in verb form. Must be text/plain.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "prompt": {
            "type": "array",
            "description": "If there should be a prompt asking the user for confirmation before the action is executed,\nthis field should contain the prompt text.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_ApiAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of Api Actions. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "action": {
            "type": "string",
            "description": "String identifier for the action, corresponding to the \"action\" attributeId used in the XACML service policy,\nwhich by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext.Action' instead.",
            "nullable": true,
            "example": "write"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use 'AuthorizationContext' instead.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "authorizationContext": {
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDescribes the authorization inputs used when evaluating end user access to this action.\nCannot be combined with \"authorizationAttribute\" or \"action\"; the XACML action is given by\n\"authorizationContext.action\".",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonAuthorizationContexts_AuthorizationContext"
              }
            ],
            "x-experimental": true
          },
          "name": {
            "type": "string",
            "description": "The logical name of the operation the API action refers to.",
            "nullable": true,
            "example": "confirm"
          },
          "endpoints": {
            "type": "array",
            "description": "The endpoints associated with the action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1ServiceOwnerDialogsCommandsCreate_ApiActionEndpoint"
            }
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_ApiActionEndpoint": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of Api Action Endpoints. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "version": {
            "type": "string",
            "description": "Arbitrary string indicating the version of the endpoint.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the API endpoint.",
            "format": "uri"
          },
          "httpMethod": {
            "description": "The HTTP method that the endpoint expects for this action.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Http_HttpVerb"
              }
            ]
          },
          "documentationUrl": {
            "type": "string",
            "description": "Link to documentation for the endpoint, providing documentation for integrators. Should be a URL to a\nhuman-readable page.",
            "format": "uri",
            "nullable": true
          },
          "requestSchema": {
            "type": "string",
            "description": "Link to the request schema for the endpoint. Used to provide documentation for integrators.\nDialogporten will not validate information on this endpoint.",
            "format": "uri",
            "nullable": true
          },
          "responseSchema": {
            "type": "string",
            "description": "Link to the response schema for the endpoint. Used to provide documentation for integrators.\nDialogporten will not validate information on this endpoint.",
            "format": "uri",
            "nullable": true
          },
          "deprecated": {
            "type": "boolean",
            "description": "Boolean indicating if the endpoint is deprecated."
          },
          "sunsetAt": {
            "type": "string",
            "description": "Date and time when the endpoint will no longer function. Only set if the endpoint is deprecated. Dialogporten\nwill not enforce this date.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "V1ServiceOwnerDialogsCommandsCreate_Activity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "A self-defined UUIDv7 may be provided to support idempotent creation of activities. If not provided, a new UUIDv7 will be generated.",
            "format": "guid",
            "nullable": true,
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "createdAt": {
            "type": "string",
            "description": "If supplied, overrides the creating date and time for the activity.\nIf not supplied, the current date /time will be used.",
            "format": "date-time",
            "nullable": true
          },
          "extendedType": {
            "type": "string",
            "description": "Arbitrary URI/URN describing a service-specific activity type.",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "description": "The type of activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
              }
            ]
          },
          "transmissionId": {
            "type": "string",
            "description": "If the activity is related to a particular transmission, this field will contain the transmission identifier.\nMust be present in the request body.",
            "format": "guid",
            "nullable": true
          },
          "performedBy": {
            "description": "The actor that performed the activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1ServiceOwnerCommonActors_Actor"
              }
            ]
          },
          "description": {
            "type": "array",
            "description": "Unstructured text describing the activity. Only set if the activity type is \"Information\".",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1CommonIdentifierLookup_ServiceOwnerIdentifierLookup": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dialogId": {
            "type": "string",
            "format": "guid"
          },
          "instanceRef": {
            "type": "string"
          },
          "party": {
            "type": "string"
          },
          "serviceResource": {
            "$ref": "#/components/schemas/V1CommonIdentifierLookup_IdentifierLookupServiceResource"
          },
          "serviceOwner": {
            "$ref": "#/components/schemas/V1CommonIdentifierLookup_IdentifierLookupServiceOwner"
          },
          "title": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "nonSensitiveTitle": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1CommonIdentifierLookup_IdentifierLookupServiceResource": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "isDelegable": {
            "type": "boolean"
          },
          "minimumAuthenticationLevel": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1CommonIdentifierLookup_IdentifierLookupServiceOwner": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "orgNumber": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1ServiceOwnerDialogLookupQueriesGet_DialogLookupRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguages": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
              }
            ]
          }
        }
      },
      "V1EndUserCommon_AcceptedLanguages": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguage": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguage"
            }
          }
        }
      },
      "V1EndUserCommon_AcceptedLanguage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "languageCode": {
            "type": "string"
          },
          "weight": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "V1MetadataServiceResourcesQueriesGet_ServiceResourceMetadata": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "items": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonServiceResourceMetadata_ServiceResourceMetadataItem"
            }
          }
        }
      },
      "V1CommonServiceResourceMetadata_ServiceResourceMetadataItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serviceResource": {
            "$ref": "#/components/schemas/V1CommonServiceResourceMetadata_ServiceResourceMetadataServiceResource"
          },
          "roles": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonServiceResourceMetadata_ServiceResourceMetadataRole"
            }
          },
          "accessPackages": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonServiceResourceMetadata_ServiceResourceMetadataAccessPackage"
            }
          },
          "serviceOwner": {
            "$ref": "#/components/schemas/V1CommonServiceResourceMetadata_ServiceResourceMetadataServiceOwner"
          }
        }
      },
      "V1CommonServiceResourceMetadata_ServiceResourceMetadataServiceResource": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "resourceType": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "isDelegable": {
            "type": "boolean"
          },
          "minimumAuthenticationLevel": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "links": {
            "$ref": "#/components/schemas/DigdirDomainDialogportenApplicationCommon_Link"
          }
        }
      },
      "DigdirDomainDialogportenApplicationCommon_Link": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "metadata": {
            "type": "string"
          }
        }
      },
      "V1CommonServiceResourceMetadata_ServiceResourceMetadataRole": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "urn": {
            "type": "string"
          },
          "name": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "links": {
            "$ref": "#/components/schemas/DigdirDomainDialogportenApplicationCommon_Link"
          }
        }
      },
      "V1CommonServiceResourceMetadata_ServiceResourceMetadataAccessPackage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "urn": {
            "type": "string"
          },
          "name": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "links": {
            "$ref": "#/components/schemas/DigdirDomainDialogportenApplicationCommon_Link"
          }
        }
      },
      "V1CommonServiceResourceMetadata_ServiceResourceMetadataServiceOwner": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "orgNumber": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1MetadataServiceResourcesGet_ServiceResourceMetadataRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguages": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
              }
            ]
          }
        }
      },
      "V1MetadataLimitsQueriesGet_Limits": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "endUserSearch": {
            "$ref": "#/components/schemas/V1MetadataLimitsQueriesGet_EndUserSearchLimits"
          },
          "serviceOwnerSearch": {
            "$ref": "#/components/schemas/V1MetadataLimitsQueriesGet_ServiceOwnerSearchLimits"
          }
        }
      },
      "V1MetadataLimitsQueriesGet_EndUserSearchLimits": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "maxPartyFilterValues": {
            "type": "integer",
            "format": "int32"
          },
          "maxServiceResourceFilterValues": {
            "type": "integer",
            "format": "int32"
          },
          "maxOrgFilterValues": {
            "type": "integer",
            "format": "int32"
          },
          "maxExtendedStatusFilterValues": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "V1MetadataLimitsQueriesGet_ServiceOwnerSearchLimits": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "maxPartyFilterValues": {
            "type": "integer",
            "format": "int32"
          },
          "maxServiceResourceFilterValues": {
            "type": "integer",
            "format": "int32"
          },
          "maxExtendedStatusFilterValues": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "V1EndUserServiceResourcesQueriesSearch_AuthorizedServiceResources": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "isFullCatalogueFallback": {
            "type": "boolean",
            "description": "Set to true only when Items is the full referenced catalogue returned as a fallback\ninstead of the caller's authorized subset: this happens when the caller is authorized to a very large\nnumber of parties on an unfiltered request, so the authorized union is not computed. Absent/null for a\nnormal authorization-scoped result — supply a party filter to always get an authorization-scoped result.",
            "nullable": true
          },
          "items": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonServiceResourceMetadata_ServiceResourceMetadataItem"
            }
          }
        }
      },
      "V1EndUserServiceResourcesSearch_AuthorizedServiceResourcesRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguages": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
              }
            ]
          }
        }
      },
      "V1EndUserEndUserContextQueriesSearchLabelAssignmentLog_LabelAssignmentLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "action": {
            "type": "string"
          },
          "performedBy": {
            "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
          }
        }
      },
      "V1EndUserCommonActors_Actor": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "actorType": {
            "description": "The type of actor; either the service owner, or someone representing the party.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Actors_ActorType"
              }
            ]
          },
          "actorName": {
            "type": "string",
            "description": "The name of the actor.",
            "nullable": true,
            "example": "Ola Nordmann"
          },
          "actorId": {
            "type": "string",
            "description": "The identifier (national identity number or organization number) of the actor.",
            "nullable": true,
            "example": "urn:altinn:person:identifier-no:12018212345"
          }
        }
      },
      "V1EndUserEndUserContextCommandsSetSystemLabel_SetDialogSystemLabelRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "systemLabels": {
            "type": "array",
            "description": "List of system labels to set on target dialogs",
            "deprecated": true,
            "x-deprecatedMessage": "Use AddLabels instead. This property will be removed in a future version.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          },
          "addLabels": {
            "type": "array",
            "description": "List of system labels to add to the target dialog. If multiple instances of 'bin', 'archive', or 'default' are provided, the last one will be used.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          },
          "removeLabels": {
            "type": "array",
            "description": "List of system labels to remove from the target dialog. If 'bin' or 'archive' is removed, the 'default' label will be added automatically unless 'bin' or 'archive' is also in the AddLabels list.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          }
        }
      },
      "V1EndUserEndUserContextCommandsBulkSetSystemLabels_BulkSetDialogSystemLabelsRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dto": {
            "$ref": "#/components/schemas/V1EndUserEndUserContextCommandsBulkSetSystemLabels_BulkSetSystemLabel"
          }
        }
      },
      "V1EndUserEndUserContextCommandsBulkSetSystemLabels_BulkSetSystemLabel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dialogs": {
            "type": "array",
            "description": "List of target dialog ids with optional revision ids",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserEndUserContextCommandsBulkSetSystemLabels_DialogRevision"
            }
          },
          "systemLabels": {
            "type": "array",
            "description": "List of system labels to set on target dialogs",
            "deprecated": true,
            "x-deprecatedMessage": "Use AddLabels instead. This property will be removed in a future version.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          },
          "addLabels": {
            "type": "array",
            "description": "List of system labels to add to the target dialogs. If multiple instances of 'bin', 'archive', or 'default' are provided, the last one will be used.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          },
          "removeLabels": {
            "type": "array",
            "description": "List of system labels to remove from the target dialogs. If 'bin' or 'archive' is removed, the 'default' label will be added automatically unless 'bin' or 'archive' is also in the AddLabels list.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          }
        }
      },
      "V1EndUserEndUserContextCommandsBulkSetSystemLabels_DialogRevision": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dialogId": {
            "type": "string",
            "description": "Target dialog id for system labels",
            "format": "guid"
          },
          "endUserContextRevision": {
            "type": "string",
            "description": "Optional end user context revision to match against. If supplied and not matching current revision, the entire operation will fail.",
            "format": "guid",
            "nullable": true
          }
        }
      },
      "V1EndUserDialogsQueriesSearchTransmissions_Transmission": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the transmission in UUIDv7 format.",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the transmission was created.",
            "format": "date-time"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "The authorization attribute associated with the transmission.",
            "deprecated": true,
            "x-deprecatedMessage": "Use of 'authorizationContext' on the service owner API is preferred; this field only reflects the legacy authorization attribute.",
            "nullable": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "Flag indicating if the authenticated user is authorized for this transmission. If not, embedded content and\nthe attachments will not be available."
          },
          "extendedType": {
            "type": "string",
            "description": "The extended type URI for the transmission.",
            "format": "uri",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "relatedTransmissionId": {
            "type": "string",
            "description": "The unique identifier for the related transmission, if any.",
            "format": "guid",
            "nullable": true
          },
          "deletedAt": {
            "type": "string",
            "description": "The date and time when the transmission was deleted, if applicable.",
            "format": "date-time",
            "nullable": true
          },
          "type": {
            "description": "The type of the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesTransmissions_DialogTransmissionType"
              }
            ]
          },
          "sender": {
            "description": "The sender actor information for the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
              }
            ]
          },
          "content": {
            "description": "The content of the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearchTransmissions_Content"
              }
            ]
          },
          "attachments": {
            "type": "array",
            "description": "The attachments associated with the transmission.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearchTransmissions_Attachment"
            }
          },
          "excludedAttachments": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nAttachments on this transmission that exist but are withheld from the authenticated user, listed by\nid and creation time only. An attachment is excluded rather than shown with masked URLs when its\nauthorization context sets unauthorizedPresentation to \"excluded\".\n            \nExclusions are reported per collection: the full set for a dialog is \"excludedAttachments\",\n\"excludedTransmissions\", \"excludedGuiActions\" and \"excludedApiActions\" on the dialog itself, plus\n\"excludedAttachments\" and \"excludedNavigationalActions\" on each transmission. Merge all six when\nanswering \"what changed that I am not allowed to see?\"; reading only one under-reports silently.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_ExcludedElement"
            },
            "x-experimental": true
          },
          "navigationalActions": {
            "type": "array",
            "description": "The navigational actions associated with the transmission.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearchTransmissions_NavigationalAction"
            }
          },
          "excludedNavigationalActions": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nNavigational actions on this transmission that exist but are withheld from the authenticated user,\nlisted by id and creation time only. A navigational action is excluded rather than returned with\nisAuthorized=false when its authorization context sets unauthorizedPresentation to \"excluded\".\n            \nExclusions are reported per collection: the full set for a dialog is \"excludedAttachments\",\n\"excludedTransmissions\", \"excludedGuiActions\" and \"excludedApiActions\" on the dialog itself, plus\n\"excludedAttachments\" and \"excludedNavigationalActions\" on each transmission. Merge all six when\nanswering \"what changed that I am not allowed to see?\"; reading only one under-reports silently.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_ExcludedElement"
            },
            "x-experimental": true
          }
        }
      },
      "V1EndUserDialogsQueriesSearchTransmissions_Content": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The title of the content.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "The summary of the content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "contentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesSearchTransmissions_Attachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment in UUIDv7 format.",
            "format": "guid"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearchTransmissions_AttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nIndicates whether the authenticated user is authorized for this attachment. If not, the URLs will be\nreplaced with \"urn:dialogporten:unauthorized\".",
            "x-experimental": true
          }
        }
      },
      "V1EndUserDialogsQueriesSearchTransmissions_AttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment URL in UUIDv7 format.",
            "format": "guid"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment. Will be set to \"urn:dialogporten:unauthorized\" if the user is\nnot authorized to access the transmission.",
            "format": "uri",
            "example": "https://someendpoint.com/someattachment.pdf\nurn:dialogporten:unauthorized"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1EndUserCommon_ExcludedElement": {
        "type": "object",
        "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nA stub standing in for an element the authenticated user is not authorized for, and whose authorization\ncontext asks for it to be excluded rather than disabled. The element is removed from the collection it\nbelongs to and recorded here instead, so that a client can tell \"this existed and you cannot see it\"\napart from \"this does not exist\" without being shown anything about it.",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the excluded element, matching the id it would have had in its own collection.",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "description": "The UTC timestamp when the excluded element was created. Lets a client order exclusions against the\nelements it can see, e.g. to tell where in a transmission thread something is missing.",
            "format": "date-time"
          }
        },
        "x-experimental": true
      },
      "V1EndUserDialogsQueriesSearchTransmissions_NavigationalAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the navigational action in UUIDv7 format.",
            "format": "guid"
          },
          "title": {
            "type": "array",
            "description": "The title of the navigational action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the navigational action. Will be set to \\\"urn:dialogporten:unauthorized\\\" if the user is\nnot authorized to access the transmission, or \\\"urn:dialogporten:expired\\\" if the action has expired.",
            "format": "uri",
            "example": "https://example.com/path\nurn:dialogporten:unauthorized\nurn:dialogporten:expired"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the navigational action expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nIndicates whether the authenticated user is authorized for this navigational action. If not, the URL will be\nreplaced with \"urn:dialogporten:unauthorized\".",
            "x-experimental": true
          }
        }
      },
      "V1EndUserDialogsQueriesSearchTransmissions_TransmissionRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguages": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesSearchSeenLogs_SeenLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "seenAt": {
            "type": "string",
            "format": "date-time"
          },
          "seenBy": {
            "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
          },
          "isViaServiceOwner": {
            "type": "boolean"
          },
          "isCurrentEndUser": {
            "type": "boolean"
          }
        }
      },
      "V1EndUserDialogsQueriesSearchActivities_Activity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "extendedType": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
          },
          "transmissionId": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "description": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1EndUserDialogsQueriesSearchActivities_ActivityRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguages": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
              }
            ]
          }
        }
      },
      "PaginatedListOfV1EndUserDialogsQueriesSearch_Dialog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "items": {
            "type": "array",
            "description": "The paginated list of items",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearch_Dialog"
            }
          },
          "hasNextPage": {
            "type": "boolean",
            "description": "Whether there are more items available that can be fetched by supplying the continuation token"
          },
          "continuationToken": {
            "type": "string",
            "description": "The continuation token to be used to fetch the next page of items",
            "nullable": true,
            "example": "createdat_2024-07-31T09:09:03.0257090Z,id_0c089101-b7cf-a476-955c-f00a78d74a4e"
          },
          "orderBy": {
            "type": "string",
            "description": "The current sorting order of the items",
            "example": "contentupdatedat_desc,id_desc"
          }
        }
      },
      "V1EndUserDialogsQueriesSearch_Dialog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the dialog in UUIDv7 format.",
            "format": "guid",
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "org": {
            "type": "string",
            "description": "The service owner code representing the organization (service owner) related to this dialog.",
            "example": "ske"
          },
          "serviceResource": {
            "type": "string",
            "description": "The service identifier for the service that the dialog is related to in URN-format.\nThis corresponds to a service resource in the Altinn Resource Registry.",
            "example": "urn:altinn:resource:some-service-identifier"
          },
          "serviceResourceType": {
            "type": "string",
            "description": "The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType)."
          },
          "party": {
            "type": "string",
            "description": "The party code representing the organization or person that the dialog belongs to in URN format.",
            "example": "urn:altinn:person:identifier-no:01125512345\nurn:altinn:organization:identifier-no:912345678"
          },
          "progress": {
            "type": "integer",
            "description": "Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come\nto a natural completion (successful or not).",
            "format": "int32",
            "nullable": true
          },
          "process": {
            "type": "string",
            "description": "Optional process identifier used to indicate a business process this dialog belongs to.",
            "nullable": true
          },
          "precedingProcess": {
            "type": "string",
            "description": "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.",
            "nullable": true
          },
          "guiAttachmentCount": {
            "type": "integer",
            "description": "The number of attachments in the dialog made available for browser-based frontends.",
            "format": "int32",
            "nullable": true
          },
          "extendedStatus": {
            "type": "string",
            "description": "Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of\nthe dialog to further specify the \"status\" enum.\n            \nRefer to the service-specific documentation provided by the service owner for details on the possible values (if\nin use).",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.\n            \nRefer to the service-specific documentation provided by the service owner for details (if in use).",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the dialog was created.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "updatedAt": {
            "type": "string",
            "description": "The date and time when the dialog was last updated.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "contentUpdatedAt": {
            "type": "string",
            "description": "The date and time when the dialog content was last updated.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "dueAt": {
            "type": "string",
            "description": "The due date for the dialog. This is the last date when the dialog is expected to be completed.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "status": {
            "description": "The aggregated status of the dialog.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntities_DialogStatus"
              }
            ]
          },
          "hasUnopenedContent": {
            "type": "boolean",
            "description": "Whether the service owner has not yet reported all dialog Transmissions they sent as seen by the end user.\nA Transmission is considered \"sent from the service owner\" if the DialogTransmissionType is not one of Submission or Correction.\n            \nThe value of this field is:\n- true when there are any new unopened Transmissions sent from the service owner.\n- false when the service owner has created an Activity of type TransmissionOpened for all Transmissions sent from the service owner. The Activities must each contain the relevant Id for all relevant Transmissions.\n            \nNote that the value is\n- determined by the service owner and not to be confused with IsContentSeen\n- not affected by SystemLabels\n            \nFor correspondence: HasUnopenedContent is still true until the service owner also adds a Dialog level Activity (no transmission id) of type CorrespondenceOpened"
          },
          "systemLabel": {
            "description": "System defined label used to categorize dialogs.\nThis is obsolete and will only show; Default, Bin or Archive.\nUse SystemLabels on EndUserContext instead.",
            "deprecated": true,
            "x-deprecatedMessage": "Use EndUserContext.SystemLabels instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
              }
            ]
          },
          "isApiOnly": {
            "type": "boolean",
            "description": "Indicates if this dialog is intended for API consumption only and should not be shown in frontends aimed at humans.\nWhen true, human-readable content like title and summary are not required."
          },
          "fromServiceOwnerTransmissionsCount": {
            "type": "integer",
            "description": "The number of transmissions sent by the service owner",
            "format": "int32"
          },
          "fromPartyTransmissionsCount": {
            "type": "integer",
            "description": "The number of transmissions sent by a party representative",
            "format": "int32"
          },
          "latestActivity": {
            "description": "The latest entry in the dialog's activity log.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearch_DialogActivity"
              }
            ]
          },
          "seenSinceLastUpdate": {
            "type": "array",
            "description": "The list of seen log entries for the dialog newer than the dialog UpdatedAt date.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearch_DialogSeenLog"
            }
          },
          "seenSinceLastContentUpdate": {
            "type": "array",
            "description": "The list of seen log entries for the dialog newer than the dialog ContentUpdatedAt date.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearch_DialogSeenLog"
            }
          },
          "isContentSeen": {
            "type": "boolean",
            "description": "Indicates whether a dialog has been seen since its last content update.\n            \nThe value of this field is\n- true if the dialog has been retrieved since its last content update by either GET /enduser/dialogs/{dialogId} or GET /serviceowner/dialogs/{dialogId}?EndUserId={userId} and there is no SystemLabels MarkedAsUnopened\n- false if there is a SystemLabels MarkedAsUnopened, even if the dialog has been seen since its last content update\n- false after the dialog receives a content update.\n            \nNote that the value is determined by Dialogporten and not to be confused with HasUnopenedContent"
          },
          "endUserContext": {
            "description": "Metadata about the dialog owned by end-users.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearch_DialogEndUserContext"
              }
            ]
          },
          "content": {
            "description": "The content of the dialog in search results. May be null for API-only dialogs, which are not required to have content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserDialogsQueriesSearch_Content"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesSearch_DialogActivity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the activity in UUIDv7 format.",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the activity was created.",
            "format": "date-time",
            "nullable": true
          },
          "extendedType": {
            "type": "string",
            "description": "An arbitrary string with a service-specific activity type.\n            \nConsult the service-specific documentation provided by the service owner for details (if in use).",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "description": "The type of activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
              }
            ]
          },
          "transmissionId": {
            "type": "string",
            "description": "If the activity is related to a particular transmission, this field will contain the transmission identifier.",
            "format": "guid",
            "nullable": true
          },
          "performedBy": {
            "description": "The actor that performed the activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
              }
            ]
          },
          "description": {
            "type": "array",
            "description": "Unstructured text describing the activity. Only set if the activity type is \"Information\".",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1EndUserDialogsQueriesSearch_DialogSeenLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the seen log entry in UUIDv7 format.",
            "format": "guid"
          },
          "seenAt": {
            "type": "string",
            "description": "The timestamp when the dialog revision was seen.",
            "format": "date-time"
          },
          "seenBy": {
            "description": "The actor that saw the dialog revision.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
              }
            ]
          },
          "isViaServiceOwner": {
            "type": "boolean",
            "description": "Flag indicating whether the seen log entry was created via the service owner.\n            \nThis is used when the service owner uses the service owner API to implement its own frontend.",
            "nullable": true
          },
          "isCurrentEndUser": {
            "type": "boolean",
            "description": "Flag indicating whether the seen log entry was created by the current end user."
          }
        }
      },
      "V1EndUserDialogsQueriesSearch_DialogEndUserContext": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "revision": {
            "type": "string",
            "description": "The unique identifier for the end user context revision in UUIDv4 format.",
            "format": "guid",
            "example": "0196fccd-bf48-7d27-bdfc-4ad3b0f3bee5"
          },
          "systemLabels": {
            "type": "array",
            "description": "System defined labels used to categorize dialogs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          }
        }
      },
      "V1EndUserDialogsQueriesSearch_Content": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The title of the dialog.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "A short summary of the dialog and its current state.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "senderName": {
            "description": "Overridden sender name. If not supplied, assume \"org\" as the sender name.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "extendedStatus": {
            "description": "Used as the human-readable label used to describe the \"ExtendedStatus\" field.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesSearch_DialogRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguages": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesGetTransmission_Transmission": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the transmission in UUIDv7 format.",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the transmission was created.",
            "format": "date-time"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "The authorization attribute associated with the transmission.",
            "deprecated": true,
            "x-deprecatedMessage": "Use of 'authorizationContext' on the service owner API is preferred; this field only reflects the legacy authorization attribute.",
            "nullable": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "Flag indicating if the authenticated user is authorized for this transmission. If not, embedded content and\nthe attachments will not be available."
          },
          "extendedType": {
            "type": "string",
            "description": "The extended type URI for the transmission.",
            "format": "uri",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "relatedTransmissionId": {
            "type": "string",
            "description": "The unique identifier for the related transmission, if any.",
            "format": "guid",
            "nullable": true
          },
          "deletedAt": {
            "type": "string",
            "description": "The date and time when the transmission was deleted, if applicable.",
            "format": "date-time",
            "nullable": true
          },
          "type": {
            "description": "The type of the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesTransmissions_DialogTransmissionType"
              }
            ]
          },
          "sender": {
            "description": "The sender actor information for the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
              }
            ]
          },
          "content": {
            "description": "The content of the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserDialogsQueriesGetTransmission_Content"
              }
            ]
          },
          "attachments": {
            "type": "array",
            "description": "The attachments associated with the transmission.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGetTransmission_Attachment"
            }
          },
          "excludedAttachments": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nAttachments on this transmission that exist but are withheld from the authenticated user, listed by\nid and creation time only. An attachment is excluded rather than shown with masked URLs when its\nauthorization context sets unauthorizedPresentation to \"excluded\".\n            \nExclusions are reported per collection: the full set for a dialog is \"excludedAttachments\",\n\"excludedTransmissions\", \"excludedGuiActions\" and \"excludedApiActions\" on the dialog itself, plus\n\"excludedAttachments\" and \"excludedNavigationalActions\" on each transmission. Merge all six when\nanswering \"what changed that I am not allowed to see?\"; reading only one under-reports silently.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_ExcludedElement"
            },
            "x-experimental": true
          },
          "navigationalActions": {
            "type": "array",
            "description": "The navigational actions associated with the transmission.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGetTransmission_NavigationalAction"
            }
          },
          "excludedNavigationalActions": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nNavigational actions on this transmission that exist but are withheld from the authenticated user,\nlisted by id and creation time only. A navigational action is excluded rather than returned with\nisAuthorized=false when its authorization context sets unauthorizedPresentation to \"excluded\".\n            \nExclusions are reported per collection: the full set for a dialog is \"excludedAttachments\",\n\"excludedTransmissions\", \"excludedGuiActions\" and \"excludedApiActions\" on the dialog itself, plus\n\"excludedAttachments\" and \"excludedNavigationalActions\" on each transmission. Merge all six when\nanswering \"what changed that I am not allowed to see?\"; reading only one under-reports silently.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_ExcludedElement"
            },
            "x-experimental": true
          }
        }
      },
      "V1EndUserDialogsQueriesGetTransmission_Content": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The title of the content.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "The summary of the content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "contentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesGetTransmission_Attachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment in UUIDv7 format.",
            "format": "guid"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGetTransmission_AttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nIndicates whether the authenticated user is authorized for this attachment. If not, the URLs will be\nreplaced with \"urn:dialogporten:unauthorized\".",
            "x-experimental": true
          }
        }
      },
      "V1EndUserDialogsQueriesGetTransmission_AttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment URL in UUIDv7 format.",
            "format": "guid"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment. Will be set to \"urn:dialogporten:unauthorized\" if the user is\nnot authorized to access the transmission.",
            "format": "uri",
            "example": "https://someendpoint.com/someattachment.pdf\nurn:dialogporten:unauthorized"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesGetTransmission_NavigationalAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the navigational action in UUIDv7 format.",
            "format": "guid"
          },
          "title": {
            "type": "array",
            "description": "The title of the navigational action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the navigational action. Will be set to \\\"urn:dialogporten:unauthorized\\\" if the user is\nnot authorized to access the transmission, or \\\"urn:dialogporten:expired\\\" if the action has expired.",
            "format": "uri",
            "example": "https://example.com/path\nurn:dialogporten:unauthorized\nurn:dialogporten:expired"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the navigational action expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nIndicates whether the authenticated user is authorized for this navigational action. If not, the URL will be\nreplaced with \"urn:dialogporten:unauthorized\".",
            "x-experimental": true
          }
        }
      },
      "V1EndUserDialogsQueriesGetTransmission_TransmissionRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguages": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesGetSeenLog_SeenLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "seenAt": {
            "type": "string",
            "format": "date-time"
          },
          "seenBy": {
            "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
          },
          "isViaServiceOwner": {
            "type": "boolean"
          },
          "isCurrentEndUser": {
            "type": "boolean"
          }
        }
      },
      "V1EndUserDialogsQueriesGetActivity_Activity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "extendedType": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
          },
          "transmissionId": {
            "type": "string",
            "format": "guid",
            "nullable": true
          },
          "performedBy": {
            "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
          },
          "description": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1EndUserDialogsQueriesGetActivity_ActivityRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguages": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesGet_Dialog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the dialog in UUIDv7 format.",
            "format": "guid",
            "example": "01913cd5-784f-7d3b-abef-4c77b1f0972d"
          },
          "revision": {
            "type": "string",
            "description": "The unique identifier for the revision in UUIDv4 format.",
            "format": "guid",
            "example": "a312cb9c-7632-43c2-aa38-69b06aed56ca"
          },
          "org": {
            "type": "string",
            "description": "The service owner code representing the organization (service owner) related to this dialog.",
            "example": "ske"
          },
          "serviceResource": {
            "type": "string",
            "description": "The service identifier for the service that the dialog is related to in URN-format.\nThis corresponds to a service resource in the Altinn Resource Registry.",
            "example": "urn:altinn:resource:some-service-identifier"
          },
          "serviceResourceType": {
            "type": "string",
            "description": "The ServiceResource type, as defined in Altinn Resource Registry (see ResourceType)."
          },
          "party": {
            "type": "string",
            "description": "The party code representing the organization or person that the dialog belongs to in URN format.",
            "example": "urn:altinn:person:identifier-no:01125512345\nurn:altinn:organization:identifier-no:912345678"
          },
          "progress": {
            "type": "integer",
            "description": "Advisory indicator of progress, represented as 1-100 percentage value. 100% representing a dialog that has come\nto a natural completion (successful or not).",
            "format": "int32",
            "nullable": true
          },
          "process": {
            "type": "string",
            "description": "Optional process identifier used to indicate a business process this dialog belongs to.",
            "nullable": true
          },
          "precedingProcess": {
            "type": "string",
            "description": "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.",
            "nullable": true
          },
          "extendedStatus": {
            "type": "string",
            "description": "Arbitrary string with a service-specific indicator of status, typically used to indicate a fine-grained state of\nthe dialog to further specify the \"status\" enum.\n            \nRefer to the service-specific documentation provided by the service owner for details on the possible values (if\nin use).",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.\n            \nRefer to the service-specific documentation provided by the service owner for details (if in use).",
            "nullable": true
          },
          "dueAt": {
            "type": "string",
            "description": "The due date for the dialog. Dialogs past due date might be marked as such in frontends but will still be available.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "expiresAt": {
            "type": "string",
            "description": "The expiration date for the dialog. This is the last date when the dialog is available for the end user.\n            \nAfter this date is passed, the dialog will be considered expired and no longer available for the end user in any\nAPI. If not supplied, the dialog will be considered to never expire. This field can be changed by the service\nowner after the dialog has been created.",
            "format": "date-time",
            "nullable": true,
            "example": "2022-12-31T23:59:59Z"
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the dialog was created.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "updatedAt": {
            "type": "string",
            "description": "The date and time when the dialog was last updated.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "contentUpdatedAt": {
            "type": "string",
            "description": "The date and time when the dialog content was last updated.",
            "format": "date-time",
            "example": "2022-12-31T23:59:59Z"
          },
          "status": {
            "description": "The aggregated status of the dialog.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntities_DialogStatus"
              }
            ]
          },
          "systemLabel": {
            "description": "System defined label used to categorize dialogs.\nThis is obsolete and will only show; Default, Bin or Archive.\nUse SystemLabels on EndUserContext instead.",
            "deprecated": true,
            "x-deprecatedMessage": "Use EndUserContext.SystemLabels instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
              }
            ]
          },
          "isApiOnly": {
            "type": "boolean",
            "description": "Indicates if this dialog is intended for API consumption only and should not be shown in frontends aimed at humans."
          },
          "hasUnopenedContent": {
            "type": "boolean",
            "description": "Whether the service owner has not yet reported all dialog Transmissions they sent as seen by the end user.\nA Transmission is considered \"sent from the service owner\" if the DialogTransmissionType is not one of Submission or Correction.\n            \nThe value of this field is:\n- true when there are any new unopened Transmissions sent from the service owner.\n- false when the service owner has created an Activity of type TransmissionOpened for all Transmissions sent from the service owner. The Activities must each contain the relevant Id for all relevant Transmissions.\n            \nNote that the value is\n- determined by the service owner and not to be confused with IsContentSeen\n- not affected by SystemLabels\n            \nFor correspondence: HasUnopenedContent is still true until the service owner also adds a Dialog level Activity (no transmission id) of type CorrespondenceOpened"
          },
          "content": {
            "description": "The dialog unstructured text content.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_Content"
              }
            ]
          },
          "dialogToken": {
            "type": "string",
            "description": "The dialog token. May be used (if supported) against external URLs referred to in this dialog's apiActions,\ntransmissions or attachments. It should also be used for front-channel embeds.\n            \nThe token's authorized entities (\"e\") claim lists, for every entity carrying an authorization context that\nthe end user is authorized for, the entity's id or the \"tokenRef\" the service owner supplied on the context.\nA tokenRef shared by multiple entities represents an OR-group: authorization for any group member adds the\nshared value. Recipients must validate the dialog id (\"i\") together with an entity reference.",
            "nullable": true
          },
          "fromServiceOwnerTransmissionsCount": {
            "type": "integer",
            "description": "The number of transmissions sent by a service owner.",
            "format": "int32"
          },
          "fromPartyTransmissionsCount": {
            "type": "integer",
            "description": "The number of transmissions sent by a party representative.",
            "format": "int32"
          },
          "attachments": {
            "type": "array",
            "description": "The attachments associated with the dialog (on an aggregate level).",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogAttachment"
            }
          },
          "excludedAttachments": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nDialog-level attachments that exist but are withheld from the authenticated user, listed by id and\ncreation time only. An attachment is excluded rather than shown with masked URLs when its\nauthorization context sets unauthorizedPresentation to \"excluded\".\n            \nExclusions are reported per collection: the full set for a dialog is \"excludedAttachments\",\n\"excludedTransmissions\", \"excludedGuiActions\" and \"excludedApiActions\" on the dialog, plus\n\"excludedAttachments\" and \"excludedNavigationalActions\" on each transmission. Merge all six when\nanswering \"what changed that I am not allowed to see?\"; reading only one under-reports silently.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_ExcludedElement"
            },
            "x-experimental": true
          },
          "transmissions": {
            "type": "array",
            "description": "The immutable list of transmissions associated with the dialog.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogTransmission"
            }
          },
          "excludedTransmissions": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nTransmissions that exist but are withheld from the authenticated user, listed by id and creation\ntime only. A transmission is excluded rather than returned with isAuthorized=false when its\nauthorization context sets unauthorizedPresentation to \"excluded\"; its children go with it.\n            \nExclusions are reported per collection: the full set for a dialog is \"excludedAttachments\",\n\"excludedTransmissions\", \"excludedGuiActions\" and \"excludedApiActions\" on the dialog, plus\n\"excludedAttachments\" and \"excludedNavigationalActions\" on each transmission. Merge all six when\nanswering \"what changed that I am not allowed to see?\"; reading only one under-reports silently.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_ExcludedElement"
            },
            "x-experimental": true
          },
          "guiActions": {
            "type": "array",
            "description": "The GUI actions associated with the dialog. Should be used in browser-based interactive frontends.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogGuiAction"
            }
          },
          "excludedGuiActions": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nGUI actions that exist but are withheld from the authenticated user, listed by id and creation time\nonly. A GUI action is excluded rather than returned with isAuthorized=false when its authorization\ncontext sets unauthorizedPresentation to \"excluded\".\n            \nExclusions are reported per collection: the full set for a dialog is \"excludedAttachments\",\n\"excludedTransmissions\", \"excludedGuiActions\" and \"excludedApiActions\" on the dialog, plus\n\"excludedAttachments\" and \"excludedNavigationalActions\" on each transmission. Merge all six when\nanswering \"what changed that I am not allowed to see?\"; reading only one under-reports silently.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_ExcludedElement"
            },
            "x-experimental": true
          },
          "apiActions": {
            "type": "array",
            "description": "The API actions associated with the dialog. Should be used in specialized, non-browser-based integrations.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogApiAction"
            }
          },
          "excludedApiActions": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nAPI actions that exist but are withheld from the authenticated user, listed by id and creation time\nonly. An API action is excluded rather than returned with isAuthorized=false when its authorization\ncontext sets unauthorizedPresentation to \"excluded\".\n            \nExclusions are reported per collection: the full set for a dialog is \"excludedAttachments\",\n\"excludedTransmissions\", \"excludedGuiActions\" and \"excludedApiActions\" on the dialog, plus\n\"excludedAttachments\" and \"excludedNavigationalActions\" on each transmission. Merge all six when\nanswering \"what changed that I am not allowed to see?\"; reading only one under-reports silently.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_ExcludedElement"
            },
            "x-experimental": true
          },
          "activities": {
            "type": "array",
            "description": "An immutable list of activities associated with the dialog.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogActivity"
            }
          },
          "seenSinceLastUpdate": {
            "type": "array",
            "description": "The list of seen log entries for the dialog newer than the dialog UpdatedAt date.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogSeenLog"
            }
          },
          "seenSinceLastContentUpdate": {
            "type": "array",
            "description": "The list of seen log entries for the dialog newer than the dialog ContentUpdatedAt date.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogSeenLog"
            }
          },
          "isContentSeen": {
            "type": "boolean",
            "description": "Indicates whether a dialog has been seen since its last content update.\n            \nThe value of this field is\n- true if the dialog has been retrieved since its last content update by either GET /enduser/dialogs/{dialogId} or GET /serviceowner/dialogs/{dialogId}?EndUserId={userId} and there is no SystemLabels MarkedAsUnopened\n- false if there is a SystemLabels MarkedAsUnopened, even if the dialog has been seen since its last content update\n- false after the dialog receives a content update.\n            \nNote that the value is determined by Dialogporten and not to be confused with HasUnopenedContent"
          },
          "endUserContext": {
            "description": "Metadata about the dialog owned by end-users.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogEndUserContext"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesGet_Content": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The title of the dialog.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "A short summary of the dialog and its current state.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "senderName": {
            "description": "Overridden sender name. If not supplied, assume \"org\" as the sender name.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "additionalInfo": {
            "description": "Additional information about the dialog, this may contain Markdown.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "extendedStatus": {
            "description": "Used as the human-readable label used to describe the \"ExtendedStatus\" field.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "mainContentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL.\nContent value will be masked if the user is not authorized to read main content.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogAttachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment in UUIDv7 format.",
            "format": "guid"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogAttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nIndicates whether the authenticated user is authorized for this attachment. If not, the URLs will be\nreplaced with \"urn:dialogporten:unauthorized\".",
            "x-experimental": true
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogAttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment URL in UUIDv7 format.",
            "format": "guid"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment.",
            "format": "uri",
            "example": "https://someendpoint.com/someattachment.pdf"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "What type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogTransmission": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the transmission in UUIDv7 format.",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the transmission was created.",
            "format": "date-time"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use of 'authorizationContext' on the service owner API is preferred; this field only reflects the legacy authorization attribute.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "Flag indicating if the authenticated user is authorized for this transmission. If not, embedded content and\nthe attachments will not be available."
          },
          "extendedType": {
            "type": "string",
            "description": "Arbitrary URI/URN describing a service-specific transmission type.\n            \nRefer to the service-specific documentation provided by the service owner for details (if in use).",
            "format": "uri",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Arbitrary string with a service-specific reference to an external system or service.",
            "nullable": true
          },
          "relatedTransmissionId": {
            "type": "string",
            "description": "Reference to any other transmission that this transmission is related to.",
            "format": "guid",
            "nullable": true
          },
          "type": {
            "description": "The type of transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesTransmissions_DialogTransmissionType"
              }
            ]
          },
          "sender": {
            "description": "The actor that sent the transmission.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
              }
            ]
          },
          "isOpened": {
            "type": "boolean",
            "description": "Indicates whether the dialog transmission has been opened."
          },
          "content": {
            "description": "The transmission unstructured text content.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogTransmissionContent"
              }
            ]
          },
          "attachments": {
            "type": "array",
            "description": "The transmission-level attachments.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogTransmissionAttachment"
            }
          },
          "excludedAttachments": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nTransmission-level attachments that exist but are withheld from the authenticated user, listed by id\nand creation time only. An attachment is excluded rather than shown with masked URLs when its\nauthorization context sets unauthorizedPresentation to \"excluded\".\n            \nExclusions are reported per collection: the full set for a dialog is \"excludedAttachments\",\n\"excludedTransmissions\", \"excludedGuiActions\" and \"excludedApiActions\" on the dialog, plus\n\"excludedAttachments\" and \"excludedNavigationalActions\" on each transmission. Merge all six when\nanswering \"what changed that I am not allowed to see?\"; reading only one under-reports silently.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_ExcludedElement"
            },
            "x-experimental": true
          },
          "navigationalActions": {
            "type": "array",
            "description": "The transmission-level navigational actions.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogTransmissionNavigationalAction"
            }
          },
          "excludedNavigationalActions": {
            "type": "array",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nNavigational actions that exist but are withheld from the authenticated user, listed by id and\ncreation time only. A navigational action is excluded rather than returned with isAuthorized=false\nwhen its authorization context sets unauthorizedPresentation to \"excluded\".\n            \nExclusions are reported per collection: the full set for a dialog is \"excludedAttachments\",\n\"excludedTransmissions\", \"excludedGuiActions\" and \"excludedApiActions\" on the dialog, plus\n\"excludedAttachments\" and \"excludedNavigationalActions\" on each transmission. Merge all six when\nanswering \"what changed that I am not allowed to see?\"; reading only one under-reports silently.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserCommon_ExcludedElement"
            },
            "x-experimental": true
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogTransmissionContent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "description": "The transmission title.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "summary": {
            "description": "The transmission summary.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          },
          "contentReference": {
            "description": "Front-channel embedded content. Used to dynamically embed content in the frontend from an external URL.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1CommonContent_ContentValue"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogTransmissionAttachment": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment in UUIDv7 format.",
            "format": "guid"
          },
          "displayName": {
            "type": "array",
            "description": "The display name of the attachment that should be used in GUIs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "name": {
            "type": "string",
            "description": "The logical name of the attachment.",
            "nullable": true,
            "example": "receipt"
          },
          "urls": {
            "type": "array",
            "description": "The URLs associated with the attachment, each referring to a different representation of the attachment.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogTransmissionAttachmentUrl"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the attachment expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nIndicates whether the authenticated user is authorized for this attachment. If not, the URLs will be\nreplaced with \"urn:dialogporten:unauthorized\".",
            "x-experimental": true
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogTransmissionAttachmentUrl": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the attachment URL in UUIDv7 format.",
            "format": "guid"
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the attachment. Will be set to \"urn:dialogporten:unauthorized\" if the user is\nnot authorized to access the transmission.",
            "format": "uri",
            "example": "https://someendpoint.com/someattachment.pdf\nurn:dialogporten:unauthorized"
          },
          "mediaType": {
            "type": "string",
            "description": "The media type of the attachment.",
            "nullable": true,
            "example": "application/pdf\napplication/zip"
          },
          "consumerType": {
            "description": "The type of consumer the URL is intended for.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attachments_AttachmentUrlConsumerType"
              }
            ]
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogTransmissionNavigationalAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the navigational action in UUIDv7 format.",
            "format": "guid"
          },
          "title": {
            "type": "array",
            "description": "The title of the navigational action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the navigational action. Will be set to \\\"urn:dialogporten:unauthorized\\\" if the user is\nnot authorized to access the transmission, or \\\"urn:dialogporten:expired\\\" if the action has expired.",
            "format": "uri",
            "example": "https://example.com/path\nurn:dialogporten:unauthorized\nurn:dialogporten:expired"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC timestamp when the navigational action expires and is no longer available.",
            "format": "date-time",
            "nullable": true
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "**Experimental:** This is part of an experimental feature that may change or be removed without a major version bump. See https://github.com/Altinn/dialogporten/issues/3978 for details.\n\nIndicates whether the authenticated user is authorized for this navigational action. If not, the URL will be\nreplaced with \"urn:dialogporten:unauthorized\".",
            "x-experimental": true
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogGuiAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the action in UUIDv7 format.",
            "format": "guid"
          },
          "action": {
            "type": "string",
            "description": "The action identifier for the action, corresponding to the \"action\" attributeId used in the XACML service policy."
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the action, to which the user will be redirected when the action is triggered. Will be set to\n\"urn:dialogporten:unauthorized\" if the user is not authorized to perform the action.",
            "format": "uri",
            "example": "urn:dialogporten:unauthorized\nhttps://someendpoint.com/gui/some-service-instance-id"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use of 'authorizationContext' on the service owner API is preferred; this field only reflects the legacy authorization attribute.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "Whether the user is authorized to perform the action."
          },
          "isDeleteDialogAction": {
            "type": "boolean",
            "description": "Indicates whether the action results in the dialog being deleted. Used by frontends to implement custom UX\nfor delete actions."
          },
          "priority": {
            "description": "Indicates a priority for the action, making it possible for frontends to adapt GUI elements based on action\npriority.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActions_DialogGuiActionPriority"
              }
            ]
          },
          "httpMethod": {
            "description": "The HTTP method that the frontend should use when redirecting the user.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Http_HttpVerb"
              }
            ]
          },
          "title": {
            "type": "array",
            "description": "The title of the action, this should be short and in verb form.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "prompt": {
            "type": "array",
            "description": "If there should be a prompt asking the user for confirmation before the action is executed,\nthis field should contain the prompt text.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogApiAction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the action in UUIDv7 format.",
            "format": "guid"
          },
          "action": {
            "type": "string",
            "description": "String identifier for the action, corresponding to the \"action\" attributeId used in the XACML service policy,\nwhich by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.",
            "example": "write"
          },
          "authorizationAttribute": {
            "type": "string",
            "description": "Contains an authorization resource attributeId, that can used in custom authorization rules in the XACML service\npolicy, which by default is the policy belonging to the service referred to by \"serviceResource\" in the dialog.\n            \nCan also be used to refer to other service policies.",
            "deprecated": true,
            "x-deprecatedMessage": "Use of 'authorizationContext' on the service owner API is preferred; this field only reflects the legacy authorization attribute.",
            "nullable": true,
            "example": "mycustomresource\n/* equivalent to the above */\nurn:altinn:subresource:mycustomresource\nurn:altinn:task:Task_1\n/* refer to another service */\nurn:altinn:resource:some-other-service-identifier"
          },
          "isAuthorized": {
            "type": "boolean",
            "description": "True if the authenticated user is authorized for this action. If not, the action will not be available\nand all endpoints will be replaced with a fixed placeholder."
          },
          "name": {
            "type": "string",
            "description": "The logical name of the operation the API action refers to.",
            "nullable": true,
            "example": "confirm"
          },
          "endpoints": {
            "type": "array",
            "description": "The endpoints associated with the action.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1EndUserDialogsQueriesGet_DialogApiActionEndpoint"
            }
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogApiActionEndpoint": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the endpoint in UUIDv7 format.",
            "format": "guid"
          },
          "version": {
            "type": "string",
            "description": "Arbitrary string indicating the version of the endpoint.\n            \nConsult the service-specific documentation provided by the service owner for details (if in use).",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "The fully qualified URL of the API endpoint. Will be set to \"urn:dialogporten:unauthorized\" if the user is\nnot authorized to perform the action.",
            "format": "uri",
            "example": "https://someendpoint.com/api/v1/someaction\nurn:dialogporten:unauthorized"
          },
          "httpMethod": {
            "description": "The HTTP method that the endpoint expects for this action.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Http_HttpVerb"
              }
            ]
          },
          "documentationUrl": {
            "type": "string",
            "description": "Link to service provider documentation for the endpoint. Used for service owners to provide documentation for\nintegrators. Should be a URL to a human-readable page.",
            "format": "uri",
            "nullable": true
          },
          "requestSchema": {
            "type": "string",
            "description": "Link to the request schema for the endpoint. Used by service owners to provide documentation for integrators.\nDialogporten will not validate information on this endpoint.",
            "format": "uri",
            "nullable": true
          },
          "responseSchema": {
            "type": "string",
            "description": "Link to the response schema for the endpoint. Used for service owners to provide documentation for integrators.\nDialogporten will not validate information on this endpoint.",
            "format": "uri",
            "nullable": true
          },
          "deprecated": {
            "type": "boolean",
            "description": "Boolean indicating if the endpoint is deprecated. Integrators should migrate to endpoints with a higher version."
          },
          "sunsetAt": {
            "type": "string",
            "description": "Date and time when the service owner has indicated that endpoint will no longer function. Only set if the endpoint\nis deprecated. Dialogporten will not enforce this date.",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogActivity": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the activity in UUIDv7 format.",
            "format": "guid"
          },
          "createdAt": {
            "type": "string",
            "description": "The date and time when the activity was created.",
            "format": "date-time",
            "nullable": true
          },
          "extendedType": {
            "type": "string",
            "description": "An arbitrary URI/URN with a service-specific activity type.\n            \nConsult the service-specific documentation provided by the service owner for details (if in use).",
            "format": "uri",
            "nullable": true
          },
          "type": {
            "description": "The type of activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DialogsEntitiesActivities_DialogActivityType"
              }
            ]
          },
          "transmissionId": {
            "type": "string",
            "description": "If the activity is related to a particular transmission, this field will contain the transmission identifier.",
            "format": "guid",
            "nullable": true
          },
          "performedBy": {
            "description": "The actor that performed the activity.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
              }
            ]
          },
          "description": {
            "type": "array",
            "description": "Unstructured text describing the activity. Only set if the activity type is \"Information\".",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogSeenLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the seen log entry in UUIDv7 format.",
            "format": "guid"
          },
          "seenAt": {
            "type": "string",
            "description": "The timestamp when the dialog revision was seen.",
            "format": "date-time"
          },
          "seenBy": {
            "description": "The actor that saw the dialog revision.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommonActors_Actor"
              }
            ]
          },
          "isViaServiceOwner": {
            "type": "boolean",
            "description": "Flag indicating whether the seen log entry was created via the service owner.\n            \nThis is used when the service owner uses the service owner API to implement its own frontend.",
            "nullable": true
          },
          "isCurrentEndUser": {
            "type": "boolean",
            "description": "Flag indicating whether the seen log entry was created by the current end user."
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogEndUserContext": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "revision": {
            "type": "string",
            "description": "The unique identifier for the end user context revision in UUIDv4 format.",
            "format": "guid",
            "example": "0196fccd-bf48-7d27-bdfc-4ad3b0f3bee5"
          },
          "systemLabels": {
            "type": "array",
            "description": "System defined labels used to categorize dialogs.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DialogEndUserContextsEntities_SystemLabel"
            }
          }
        }
      },
      "V1EndUserDialogsQueriesGet_DialogRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguages": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
              }
            ]
          }
        }
      },
      "V1CommonIdentifierLookup_EndUserIdentifierLookup": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "dialogId": {
            "type": "string",
            "format": "guid"
          },
          "instanceRef": {
            "type": "string"
          },
          "party": {
            "type": "string"
          },
          "serviceResource": {
            "$ref": "#/components/schemas/V1CommonIdentifierLookup_IdentifierLookupServiceResource"
          },
          "serviceOwner": {
            "$ref": "#/components/schemas/V1CommonIdentifierLookup_IdentifierLookupServiceOwner"
          },
          "title": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "authorizationEvidence": {
            "$ref": "#/components/schemas/V1CommonIdentifierLookup_IdentifierLookupAuthorizationEvidence"
          }
        }
      },
      "V1CommonIdentifierLookup_IdentifierLookupAuthorizationEvidence": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "currentAuthenticationLevel": {
            "type": "integer",
            "format": "int32"
          },
          "viaRole": {
            "type": "boolean"
          },
          "viaAccessPackage": {
            "type": "boolean"
          },
          "viaResourceDelegation": {
            "type": "boolean"
          },
          "viaInstanceDelegation": {
            "type": "boolean"
          },
          "evidence": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonIdentifierLookup_IdentifierLookupAuthorizationEvidenceItem"
            }
          }
        }
      },
      "V1CommonIdentifierLookup_IdentifierLookupAuthorizationEvidenceItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "grantType": {
            "$ref": "#/components/schemas/V1CommonIdentifierLookup_IdentifierLookupGrantType"
          },
          "subject": {
            "type": "string"
          },
          "name": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1CommonLocalizations_Localization"
            }
          },
          "links": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DigdirDomainDialogportenApplicationCommon_Link"
              }
            ]
          }
        }
      },
      "V1CommonIdentifierLookup_IdentifierLookupGrantType": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "Role",
          "AccessPackage",
          "ResourceDelegation",
          "InstanceDelegation"
        ],
        "enum": [
          "Role",
          "AccessPackage",
          "ResourceDelegation",
          "InstanceDelegation"
        ]
      },
      "V1EndUserDialogLookupQueriesGet_DialogLookupRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "acceptedLanguages": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/V1EndUserCommon_AcceptedLanguages"
              }
            ]
          }
        }
      },
      "V1AccessManagementQueriesGetParties_Parties": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "authorizedParties": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1AccessManagementQueriesGetParties_AuthorizedParty"
            }
          }
        }
      },
      "V1AccessManagementQueriesGetParties_AuthorizedParty": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "party": {
            "type": "string",
            "description": "The party identifier in URN format",
            "example": "urn:altinn:organization:identifier-no:912345678"
          },
          "partyUuid": {
            "type": "string",
            "description": "The UUID for the party.",
            "format": "guid"
          },
          "partyId": {
            "type": "integer",
            "description": "The numeric identifier for the party.",
            "format": "int32",
            "example": 50136280
          },
          "name": {
            "type": "string",
            "description": "The name of the party (verbatim from CCR, usually in all caps)",
            "example": "CONTOSO REAL ESTATE AS"
          },
          "dateOfBirth": {
            "type": "string",
            "description": "The date of birth of the party, if a person.",
            "nullable": true,
            "example": "1977-12-26"
          },
          "partyType": {
            "type": "string",
            "description": "The type of the party, either \"Organization\" or \"Person\".",
            "example": "Organization"
          },
          "isDeleted": {
            "type": "boolean",
            "description": "Whether the party is deleted or not"
          },
          "hasKeyRole": {
            "type": "boolean",
            "description": "Whether the authenticated user has a key role in the party.\n            \nRead more about key roles (norwegian) at https://docs.altinn.studio/nb/altinn-studio/reference/configuration/authorization/guidelines_authorization/roles_and_rights/roles_er/#nøkkelroller"
          },
          "isCurrentEndUser": {
            "type": "boolean",
            "description": "Whether this party represents the authenticated user."
          },
          "isMainAdministrator": {
            "type": "boolean",
            "description": "Whether the authenticated user is the main administrator of the party\n            \nRead more about main administrator (norwegian) at https://docs.altinn.studio/nb/altinn-studio/reference/configuration/authorization/guidelines_authorization/roles_and_rights/roles_altinn/altinn_roles_administration/#hovedadministrator"
          },
          "isAccessManager": {
            "type": "boolean",
            "description": "Whether the authenticated user is an access manager of the party.\n            \nRead more about access managers (norwegian) at https://docs.altinn.studio/nb/altinn-studio/reference/configuration/authorization/guidelines_authorization/roles_and_rights/roles_altinn/altinn_roles_administration/#tilgangsstrying"
          },
          "hasOnlyAccessToSubParties": {
            "type": "boolean",
            "description": "If the authenticated user has only access to sub parties of this party, and not this party itself."
          },
          "subParties": {
            "type": "array",
            "description": "The sub parties of this party, if any. The sub party uses the same data model.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/V1AccessManagementQueriesGetParties_AuthorizedParty"
            }
          }
        }
      },
      "JsonPatchOperations_Operation": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "path": {
            "type": "string",
            "nullable": true
          },
          "op": {
            "type": "string",
            "nullable": true
          },
          "from": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "nullable": true
          }
        }
      }
    },
    "securitySchemes": {
      "maskinporten": {
        "type": "http",
        "description": "Machine login using Maskinporten.\n\n- This is a OAuth2 scheme that uses the JWT Bearer Grant (RFC 7523).\n  We can't express this flow in the OpenAPI specification. \n  That's why we use the more generic \"Http\" type for this scheme instead.\n  Please refer to the Maskinporten documentation for how to implement this flow.\n- Well known: https://test.maskinporten.no/.well-known/oauth-authorization-server/\n- This token can be used for all secured endpoints (enduser and serviceowner).\n- To use this token with the Enduser API's, you have to register a \"system\" and \"system user\".\n  Please refer to the Dialogporten documentation for how to register systems and system users.\n- Required scopes are listed per endpoint as Security Requirement Objects.\n\nClaims we look for:\n- authorization_details (contains the system user ID)\n- consumer (identifies the organization/service owner)\n- email (identifies Email-users in the case the amr claim is Selfregistered-email)\n\nAvailable scopes for this security scheme are:\n- digdir:dialogporten (system user only)\n- digdir:dialogporten.serviceprovider\n- digdir:dialogporten.serviceprovider.search\n- digdir:dialogporten.serviceprovider.changetransmissions\n- altinn:system/notifications.condition.check",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "idporten": {
        "type": "oauth2",
        "description": "Browser login using ID-Porten (OIDC).\n- You can obtain a token from ID-Porten using the Authorization Code + PKCE flow.\n- Well known: https://test.idporten.no/.well-known/openid-configuration\n- This token can be only be used with the Enduser endpoints.\n\nClaims we look for:\n- pid (identifies the end user)\n\nThere is only one scope available for this security scheme:\n- digdir:dialogporten",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://login.test.idporten.no/authorize",
            "tokenUrl": "https://test.idporten.no/token",
            "scopes": {
              "digdir:dialogporten": "Access to dialogporten"
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Serviceowner",
      "description": "Endpoints for service owners to create and manage dialogs. Requires a Maskinporten token with the relevant `digdir:dialogporten.serviceprovider` scope. The search endpoint additionally requires the `digdir:dialogporten.serviceprovider.search` scope.\n\nA .NET client SDK is available: [Altinn.ApiClients.Dialogporten.ServiceOwner](https://www.nuget.org/packages/Altinn.ApiClients.Dialogporten.ServiceOwner/)."
    },
    {
      "name": "Enduser",
      "description": "Endpoints for end users to read and act on dialogs they are authorized to access. Used both by persons logged in via ID-porten and by Altinn system users authenticated via Maskinporten. Requires a token with the `digdir:dialogporten` scope.\n\nA .NET client SDK is available: [Altinn.ApiClients.Dialogporten.EndUser](https://www.nuget.org/packages/Altinn.ApiClients.Dialogporten.EndUser/)."
    },
    {
      "name": "Metadata",
      "description": "Public, unauthenticated metadata endpoints such as health and configuration information."
    }
  ]
}