{
  "openapi": "3.0.4",
  "info": {
    "title": "buzzle Digital Commerce Services Layer — Audit",
    "description": "OpenAPI surface for module `Audit` within the buzzle Digital Commerce Services Layer.",
    "contact": {
      "name": "bambit ag",
      "url": "https://bambit.ch",
      "email": "hello@bambit.ch"
    },
    "version": "1.0"
  },
  "servers": [
    {
      "url": "/audit"
    }
  ],
  "paths": {
    "/api/Audit/catalog": {
      "get": {
        "tags": [
          "AuditQueryDataSource"
        ],
        "description": "Executes action GetCatalog in the DataSource AuditQueryDataSource with the given parameters.",
        "operationId": "/api/Audit/catalog::Get the audit presentation catalog",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditCatalogModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/Audit/processing-schema": {
      "get": {
        "tags": [
          "AuditAdminDataSource"
        ],
        "description": "Executes action GetProcessingSchema in the DataSource AuditAdminDataSource with the given parameters.",
        "operationId": "/api/Audit/processing-schema::Get audit processing schema",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ListResultModel<Buzzle.ServicePlatform.Module.Audit.Pipeline.Schema.AuditProcessingSchemaModel>"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/Audit/query": {
      "post": {
        "tags": [
          "AuditQueryDataSource"
        ],
        "description": "Executes action Query in the DataSource AuditQueryDataSource with the given parameters.",
        "operationId": "/api/Audit/query::Query the audit trail",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditQueryResultModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/Audit/reindex": {
      "post": {
        "tags": [
          "AuditAdminDataSource"
        ],
        "description": "Executes action StartReindex in the DataSource AuditAdminDataSource with the given parameters.",
        "operationId": "/api/Audit/reindex::Start audit reindex",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.SingleResultModel<Buzzle.ServicePlatform.Module.Audit.Managers.Reindex.AuditReindexStatus>"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ApiResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.NotFoundApiResultModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/Audit/reindex/status": {
      "get": {
        "tags": [
          "AuditAdminDataSource"
        ],
        "description": "Executes action GetReindexStatus in the DataSource AuditAdminDataSource with the given parameters.",
        "operationId": "/api/Audit/reindex/status::Get audit reindex status",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.SingleResultModel<Buzzle.ServicePlatform.Module.Audit.Managers.Reindex.AuditReindexStatus>"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/AuditEventConfiguration": {
      "get": {
        "tags": [
          "AuditEventConfiguration"
        ],
        "description": "Executes the AuditEventConfiguration get-all-paged action on DataSource PrimaryEntityStructureDataSource<AuditEventConfigurationModel>.",
        "operationId": "/api/AuditEventConfiguration::GET EntityStructure AuditEventConfigurationModel (/api/AuditEventConfiguration)",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ListResultModel<Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel>"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ApiResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.NotFoundApiResultModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/AuditEventConfiguration/{id}": {
      "get": {
        "tags": [
          "AuditEventConfiguration"
        ],
        "description": "Executes the AuditEventConfiguration get action on DataSource PrimaryEntityStructureDataSource<AuditEventConfigurationModel>.",
        "operationId": "/api/AuditEventConfiguration/{id}::GET EntityStructure AuditEventConfigurationModel (/api/AuditEventConfiguration/{id})",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.SingleResultModel<Buzzle.Shared.Models.AttributeSystem.ValueModelWithChangeRequests<Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel>>"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ApiResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.NotFoundApiResultModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "AuditEventConfiguration"
        ],
        "description": "Executes the AuditEventConfiguration update action on DataSource PrimaryEntityStructureDataSource<AuditEventConfigurationModel>.",
        "operationId": "/api/AuditEventConfiguration/{id}::PUT EntityStructure AuditEventConfigurationModel (/api/AuditEventConfiguration/{id})",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.SingleResultModel<Buzzle.Shared.Models.AttributeSystem.ValueModelWithChangeRequests<Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel>>"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ApiResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.NotFoundApiResultModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/AuditEventConfiguration/all": {
      "get": {
        "tags": [
          "AuditEventConfiguration"
        ],
        "description": "Executes the AuditEventConfiguration get-all action on DataSource PrimaryEntityStructureDataSource<AuditEventConfigurationModel>.",
        "operationId": "/api/AuditEventConfiguration/all::GET EntityStructure AuditEventConfigurationModel (/api/AuditEventConfiguration/all)",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ListResultModel<Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel>"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/AuditEventConfiguration/definition": {
      "get": {
        "tags": [
          "AuditEventConfiguration"
        ],
        "description": "Executes the AuditEventConfiguration definition action on DataSource PrimaryEntityStructureDataSource<AuditEventConfigurationModel>.",
        "operationId": "/api/AuditEventConfiguration/definition::GET EntityStructure AuditEventConfigurationModel (/api/AuditEventConfiguration/definition)",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.SingleResultModel<Buzzle.Shared.Models.AttributeSystem.EntityStructureModel>"
                }
              }
            }
          }
        }
      }
    },
    "/api/AuditEventConfiguration/SearchIndex/recreate": {
      "post": {
        "tags": [
          "AuditEventConfiguration"
        ],
        "description": "Reindex the search-index for entity AuditEventConfiguration.",
        "operationId": "/api/AuditEventConfiguration/SearchIndex/recreate::Reindex Search-Index for entity AuditEventConfiguration",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/AuditEventConfiguration/validate": {
      "post": {
        "tags": [
          "AuditEventConfiguration"
        ],
        "description": "Executes the AuditEventConfiguration validate action on DataSource PrimaryEntityStructureDataSource<AuditEventConfigurationModel>.",
        "operationId": "/api/AuditEventConfiguration/validate::POST EntityStructure AuditEventConfigurationModel (/api/AuditEventConfiguration/validate)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.SingleResultModel<Buzzle.Shared.Models.AttributeSystem.ValueModelWithChangeRequests<Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel>>"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ApiResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.NotFoundApiResultModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/DataSources": {
      "get": {
        "tags": [
          "DataSources"
        ],
        "description": "Get all data sources.",
        "operationId": "/api/DataSources::GetDataSources",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ListResultModel<Buzzle.ServicePlatform.Infrastructure.Features.DataSource.Models.DataSourceDefinitionModel>"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/Entities": {
      "get": {
        "tags": [
          "Entities"
        ],
        "description": "Get all entity structures of this module with their names and label formats.",
        "operationId": "/api/Entities::Entities",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ListResultModel<Buzzle.Shared.Models.AttributeSystem.EntityDescriptionModel>"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.PermissionDeniedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/PermissionSecurity/PermissionGroups": {
      "get": {
        "tags": [
          "PermissionSecurity"
        ],
        "description": "Executes action get-all-permissiongroups in the DataSource PermissionSecurityDataSource with the given parameters.",
        "operationId": "/api/PermissionSecurity/PermissionGroups::Get all PermissionGroups",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ListResultModel<Buzzle.ServicePlatform.Shared.Models.PermissionSecurity.IPermissionGroupModel>"
                }
              }
            }
          }
        }
      }
    },
    "/api/Validators": {
      "get": {
        "tags": [
          "Validators"
        ],
        "description": "Get all available validators.",
        "operationId": "/api/Validators::Validators",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Buzzle.Shared.Models.ListResultModel<Buzzle.ServicePlatform.Infrastructure.Features.AttributeSystem.Validation.Models.ValidatorDefinitionModel>"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Buzzle.Module.Abstractions.Audit.Models.AuditActorModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "externalUserId": {
            "type": "string",
            "description": "The subject of the login that acted, where there was one. The key for anything bound to the\nlogin rather than to the person - the profile picture above all.",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "One of `User`, `System`, `Seed`, `Import`, `ApiClient`, `Anonymous`.",
            "nullable": true
          },
          "onBehalfOf": {
            "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditActorModel"
          }
        },
        "additionalProperties": false,
        "description": "Who acted, as the timeline reads it."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditCatalogModel": {
        "type": "object",
        "properties": {
          "canRead": {
            "type": "boolean",
            "description": "Whether the caller may read the trail at all."
          },
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditEventPresentationModel"
            },
            "nullable": true
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Everything the frontend needs before it can render a timeline."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditChangeModel": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Dotted path of the changed property, e.g. `Person.Lastname`.",
            "nullable": true
          },
          "oldValue": {
            "nullable": true
          },
          "newValue": {
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One changed field of an entity change, as the index pipeline recorded it."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": "string",
            "description": "`<Namespace>.<What>.<Action>`, e.g. `Business.Address.Updated`.",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "The area this event type is filed under in the timeline's filter. Empty means \"derive\nautomatically\" — from what the event carries, which in turn comes from the declaration its source\nentity structure made — not \"no value\"; only that way can an override be taken back by clearing\nthe field.",
            "nullable": true
          },
          "kind": {
            "type": "string",
            "description": "Name of an `AuditEventKind` value; set once when the entry is created and never an override.",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "description": "Icon key. Empty means \"derive automatically\" via entity type, kind and fallback.",
            "nullable": true
          },
          "isStored": {
            "type": "boolean",
            "description": "Hard gate: `false` discards the event completely and irrevocably. In doubt switch off indexing\ninstead — that is catchable at any time by reindexing."
          },
          "isIndexed": {
            "type": "boolean"
          },
          "message": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "example": "Localized Text"
            },
            "description": "Message template per culture, rendered at query time by the frontend.",
            "nullable": true,
            "example": {
              "de-CH": "Beispieltext",
              "fr-CH": "Exemple de texte",
              "it-CH": "Esempio di testo",
              "en-US": "Example text"
            }
          },
          "processing": {
            "description": "Parameters of the index pipeline, keyed by processor name so platform and customer processors\ncannot collide. Only deviations from the defaults are stored.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/Buzzle.Shared.Models.AttributeSystem.ValueStatus"
          },
          "relatedEntitiesWithRequiredActions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": { },
        "description": "Per-event-type configuration of the audit trail: whether an event is kept, whether it is indexed, how it\nis grouped and labelled, and how the index pipeline should process it."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditEventItemModel": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "nullable": true
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "The area the entry is filed under. Already resolved at index time — configured override or what\nthe event carried.",
            "nullable": true
          },
          "action": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "description": "Already resolved at index time. Either an Iconify name or a Bootstrap component name.",
            "nullable": true
          },
          "actor": {
            "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditActorModel"
          },
          "target": {
            "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditTargetModel"
          },
          "source": {
            "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditSourceModel"
          },
          "subjects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditSubjectModel"
            },
            "description": "Unflattened again from the indexed `\"{Type}:{Id}\"` terms.",
            "nullable": true
          },
          "changes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditChangeModel"
            },
            "description": "Set for entity updates; the field-level diff the entry can be expanded to show.",
            "nullable": true
          },
          "snapshot": {
            "description": "Payload of everything that is not an update — creates, deletes and business events. Feeds the dotted\nplaceholder paths of the message template (`{order.name}`).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One entry of the timeline, as the index stored it."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditEventPresentationModel": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "example": "Localized Text"
            },
            "description": "Always filled: the curated template when there is one, otherwise the resolved fallback. That way an\nuncurated event type never renders as an empty line.",
            "nullable": true,
            "example": {
              "de-CH": "Beispieltext",
              "fr-CH": "Exemple de texte",
              "it-CH": "Esempio di testo",
              "en-US": "Example text"
            }
          },
          "singleChangeMessage": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "example": "Localized Text"
            },
            "description": "Template for an entry that changed exactly one property, naming the field and its new value. Empty\nfor every event type that has no such form — a create, a note, or a type with a curated template.",
            "nullable": true,
            "example": {
              "de-CH": "Beispieltext",
              "fr-CH": "Exemple de texte",
              "it-CH": "Esempio di testo",
              "en-US": "Example text"
            }
          },
          "parentMessage": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "example": "Localized Text"
            },
            "description": "Template for an entry about a record that lives inside another — \"In Unternehmen X wurde Adresse Y\nerstellt\". Empty where the event type has no such form.",
            "nullable": true,
            "example": {
              "de-CH": "Beispieltext",
              "fr-CH": "Exemple de texte",
              "it-CH": "Esempio di testo",
              "en-US": "Example text"
            }
          },
          "parentSingleChangeMessage": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "example": "Localized Text"
            },
            "nullable": true,
            "example": {
              "de-CH": "Beispieltext",
              "fr-CH": "Exemple de texte",
              "it-CH": "Esempio di testo",
              "en-US": "Example text"
            }
          }
        },
        "additionalProperties": false,
        "description": "How one event type is presented: its category, its icon and the message template per culture."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditFacetValueModel": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "One selectable value of the filter bar, with the number of entries behind it."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditFacetsModel": {
        "type": "object",
        "properties": {
          "category": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditFacetValueModel"
            },
            "description": "Where the entries came from — the areas of the application the changes belong to.",
            "nullable": true
          },
          "action": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditFacetValueModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The values the filter bar may offer, each with its count."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditQueryResultModel": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": "array",
            "items": { },
            "description": "Sort values of the last entry, to be passed back unchanged. `null` once the end is reached, which\nis how the endless scroll knows to stop asking.",
            "nullable": true
          },
          "facets": {
            "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditFacetsModel"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditEventItemModel"
            },
            "nullable": true
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One page of the timeline plus the cursor that reaches the next one."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditSourceModel": {
        "type": "object",
        "properties": {
          "module": {
            "type": "string",
            "description": "The module that produced the event, e.g. `Business`.",
            "nullable": true
          },
          "endpoint": {
            "type": "string",
            "description": "The HTTP endpoint (`\"PUT /api/business/addresses/8842\"`), or the seed class name for seed runs.",
            "nullable": true
          },
          "correlationId": {
            "type": "string",
            "nullable": true
          },
          "jobId": {
            "type": "string",
            "description": "Set for mass mutations; all items of one run share it.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Where the change came from. The module also tells the read side which routes an entry may link to."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditSubjectModel": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "description": "The record's display label as it read when the event happened, where the write path resolved one.\nAbsent on events recorded before subjects carried labels.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A record under whose timeline the event appears."
      },
      "Buzzle.Module.Abstractions.Audit.Models.AuditTargetModel": {
        "type": "object",
        "properties": {
          "entityType": {
            "type": "string",
            "nullable": true
          },
          "entityId": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "description": "The record's display label as it read when the event happened, e.g. \"Höhenweg 15, 3000 Bern\".",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The record the event is about."
      },
      "Buzzle.ServicePlatform.Infrastructure.Features.AttributeSystem.Validation.Models.ValidatorDefinitionModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "typeDiscriminator": {
            "type": "string",
            "nullable": true
          },
          "settings": {
            "type": "object",
            "additionalProperties": { },
            "nullable": true
          },
          "translations": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": { },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.ServicePlatform.Infrastructure.Features.DataSource.Models.DataSourceDefinitionModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "nullable": true
          },
          "providerName": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "example": "Localized Text"
            },
            "nullable": true,
            "example": {
              "de-CH": "Beispieltext",
              "fr-CH": "Exemple de texte",
              "it-CH": "Esempio di testo",
              "en-US": "Example text"
            }
          },
          "dataSourceName": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "example": "Localized Text"
            },
            "nullable": true,
            "example": {
              "de-CH": "Beispieltext",
              "fr-CH": "Exemple de texte",
              "it-CH": "Esempio di testo",
              "en-US": "Example text"
            }
          },
          "actionName": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "example": "Localized Text"
            },
            "nullable": true,
            "example": {
              "de-CH": "Beispieltext",
              "fr-CH": "Exemple de texte",
              "it-CH": "Esempio di testo",
              "en-US": "Example text"
            }
          },
          "providerTypeDiscriminator": {
            "type": "string",
            "nullable": true
          },
          "dataSourceTypeDiscriminator": {
            "type": "string",
            "nullable": true
          },
          "actionDiscriminator": {
            "type": "string",
            "nullable": true
          },
          "configuration": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.ServicePlatform.Module.Audit.Managers.Reindex.AuditReindexState": {
        "enum": [
          "Idle",
          "Running",
          "Completed",
          "Failed"
        ],
        "type": "string"
      },
      "Buzzle.ServicePlatform.Module.Audit.Managers.Reindex.AuditReindexStatus": {
        "type": "object",
        "properties": {
          "state": {
            "$ref": "#/components/schemas/Buzzle.ServicePlatform.Module.Audit.Managers.Reindex.AuditReindexState"
          },
          "isFullRebuild": {
            "type": "boolean",
            "description": "`true` for a full rebuild with an alias swap; `false` for a period repair that writes into\n                the live indices."
          },
          "startedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "from": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "to": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "processedEvents": {
            "type": "integer",
            "format": "int64"
          },
          "indexedEvents": {
            "type": "integer",
            "format": "int64"
          },
          "skippedEvents": {
            "type": "integer",
            "description": "Events skipped because their configuration has indexing switched off.",
            "format": "int64"
          },
          "failedEvents": {
            "type": "integer",
            "description": "Events that could not be prepared for indexing and were left out. Counted rather than fatal, so a\nsingle unreadable record does not cost the whole run — but visible, because a rebuild that quietly\ndrops events would look like a clean one.",
            "format": "int64"
          },
          "currentIndex": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Progress of a reindex run, polled by the administration view. Deliberately a plain snapshot: the run\nitself is fire-and-forget, the caller only ever observes it."
      },
      "Buzzle.ServicePlatform.Module.Audit.Pipeline.Schema.AuditProcessingPropertyModel": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "titleKey": {
            "type": "string",
            "description": "Translation key; the frontend falls back to the raw name when it is unknown.",
            "nullable": true
          },
          "attributeType": {
            "type": "string",
            "description": "An `AttributeCodes` value, so the existing attribute components can render it.",
            "nullable": true
          },
          "required": {
            "type": "boolean"
          },
          "isList": {
            "type": "boolean",
            "description": "Rendered as one entry per line, because there is no array component today."
          },
          "default": {
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One configurable option of a processor, as the administration view renders it."
      },
      "Buzzle.ServicePlatform.Module.Audit.Pipeline.Schema.AuditProcessingSchemaModel": {
        "type": "object",
        "properties": {
          "processorName": {
            "type": "string",
            "nullable": true
          },
          "titleKey": {
            "type": "string",
            "nullable": true
          },
          "properties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.ServicePlatform.Module.Audit.Pipeline.Schema.AuditProcessingPropertyModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The options of one processor, derived by reflection. A customer project adds a processor and gets its\nuser interface without writing any UI code."
      },
      "Buzzle.ServicePlatform.Shared.Models.PermissionSecurity.GroupPermissionModel": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "nullable": true
          },
          "groupType": {
            "type": "string",
            "nullable": true
          },
          "parameters": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "usedTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.ServicePlatform.Shared.Models.PermissionSecurity.IPermissionGroupModel": {
        "type": "object",
        "properties": {
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "example": "Localized Text"
            },
            "nullable": true,
            "example": {
              "de-CH": "Beispieltext",
              "fr-CH": "Exemple de texte",
              "it-CH": "Esempio di testo",
              "en-US": "Example text"
            }
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "key": {
            "type": "string",
            "nullable": true
          },
          "groupKey": {
            "type": "string",
            "nullable": true
          },
          "permissions": {
            "$ref": "#/components/schemas/Buzzle.ServicePlatform.Shared.Models.PermissionSecurity.GroupPermissionModel"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": { },
            "nullable": true
          },
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "deactivatesGroupsWhenActive": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "deactivatesAllGroupsWhenActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.ApiResultModel": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.AttributeSystem.ChangeRequestModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "userName": {
            "type": "string",
            "nullable": true
          },
          "loginId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "propertyName": {
            "type": "string",
            "nullable": true
          },
          "originalValue": {
            "nullable": true
          },
          "value": {
            "nullable": true
          },
          "workflow": {
            "$ref": "#/components/schemas/Buzzle.Shared.Models.AttributeSystem.ChangeRequestWorkflow"
          },
          "status": {
            "$ref": "#/components/schemas/Buzzle.Shared.Models.AttributeSystem.ChangeRequestStatus"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.AttributeSystem.ChangeRequestSettings": {
        "type": "object",
        "properties": {
          "changeRequestsEnabled": {
            "type": "boolean",
            "nullable": true
          },
          "workflow": {
            "$ref": "#/components/schemas/Buzzle.Shared.Models.AttributeSystem.ChangeRequestWorkflow"
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.AttributeSystem.ChangeRequestStatus": {
        "enum": [
          "Open",
          "Approved",
          "Closed",
          "Declined",
          "Replaced"
        ],
        "type": "string"
      },
      "Buzzle.Shared.Models.AttributeSystem.ChangeRequestWorkflow": {
        "enum": [
          "Invalid",
          "RequestAcceptConfirm",
          "RequestAcceptOnly",
          "RequestEmailConfirmation"
        ],
        "type": "string"
      },
      "Buzzle.Shared.Models.AttributeSystem.EntityDescriptionModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The technical name, e.g. `PersonAddress`.",
            "nullable": true
          },
          "translations": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": { },
              "nullable": true
            },
            "description": "Display name per culture — \"Adresse\" rather than \"PersonAddress\".",
            "nullable": true
          },
          "labelFormat": {
            "type": "string",
            "description": "How a record of this structure is labelled, e.g. `{Street} {HouseNumber}, {ZipCode} {City}`.",
            "nullable": true
          },
          "businessDomainName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "What an entity structure is called and how a record of it is labelled."
      },
      "Buzzle.Shared.Models.AttributeSystem.EntityStructureModel": {
        "type": "object",
        "properties": {
          "labelFormat": {
            "type": "string",
            "nullable": true
          },
          "translations": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": { },
              "nullable": true
            },
            "description": "Display name per culture - \"Adresse\" rather than \"PersonAddress\".",
            "nullable": true
          },
          "supportsChangeRequests": {
            "type": "boolean"
          },
          "supportsNotes": {
            "type": "boolean"
          },
          "properties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.Shared.Models.AttributeSystem.EntityStructurePropertyModel"
            },
            "nullable": true
          },
          "businessDomainName": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "haveRelations": {
            "type": "boolean"
          },
          "foreignKeyPropertyNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Foreign-key property names in declaration order. Related-entity queries and endpoints address relations by\nthese names rather than by position.",
            "nullable": true
          },
          "relationsCount": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "haveChangeRequests": {
            "type": "boolean"
          },
          "configuration": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Per-feature configuration of this entity structure, keyed by feature - `{ \"assignments\": { \"enabled\": true } }`.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.AttributeSystem.EntityStructurePropertyModel": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "attributeCode": {
            "type": "string",
            "nullable": true
          },
          "attributeTypeDiscriminator": {
            "type": "string",
            "nullable": true
          },
          "changeRequestSettings": {
            "$ref": "#/components/schemas/Buzzle.Shared.Models.AttributeSystem.ChangeRequestSettings"
          },
          "settings": {
            "type": "object",
            "additionalProperties": { },
            "nullable": true
          },
          "translations": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": { },
              "nullable": true
            },
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.AttributeSystem.ValueModelWithChangeRequests<Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel>": {
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel"
          },
          "changeRequests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.Shared.Models.AttributeSystem.ChangeRequestModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.AttributeSystem.ValueStatus": {
        "enum": [
          "New",
          "Ok",
          "HaveOpenChangeRequests",
          "HavePendingChangeRequests"
        ],
        "type": "string"
      },
      "Buzzle.Shared.Models.ListResultModel<Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel>": {
        "type": "object",
        "properties": {
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel"
            },
            "nullable": true
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.ListResultModel<Buzzle.ServicePlatform.Infrastructure.Features.AttributeSystem.Validation.Models.ValidatorDefinitionModel>": {
        "type": "object",
        "properties": {
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.ServicePlatform.Infrastructure.Features.AttributeSystem.Validation.Models.ValidatorDefinitionModel"
            },
            "nullable": true
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.ListResultModel<Buzzle.ServicePlatform.Infrastructure.Features.DataSource.Models.DataSourceDefinitionModel>": {
        "type": "object",
        "properties": {
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.ServicePlatform.Infrastructure.Features.DataSource.Models.DataSourceDefinitionModel"
            },
            "nullable": true
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.ListResultModel<Buzzle.ServicePlatform.Module.Audit.Pipeline.Schema.AuditProcessingSchemaModel>": {
        "type": "object",
        "properties": {
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.ServicePlatform.Module.Audit.Pipeline.Schema.AuditProcessingSchemaModel"
            },
            "nullable": true
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.ListResultModel<Buzzle.ServicePlatform.Shared.Models.PermissionSecurity.IPermissionGroupModel>": {
        "type": "object",
        "properties": {
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.ServicePlatform.Shared.Models.PermissionSecurity.IPermissionGroupModel"
            },
            "nullable": true
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.ListResultModel<Buzzle.Shared.Models.AttributeSystem.EntityDescriptionModel>": {
        "type": "object",
        "properties": {
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Buzzle.Shared.Models.AttributeSystem.EntityDescriptionModel"
            },
            "nullable": true
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.NotFoundApiResultModel": {
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.PermissionDeniedResult": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.SingleResultModel<Buzzle.ServicePlatform.Module.Audit.Managers.Reindex.AuditReindexStatus>": {
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/Buzzle.ServicePlatform.Module.Audit.Managers.Reindex.AuditReindexStatus"
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.SingleResultModel<Buzzle.Shared.Models.AttributeSystem.EntityStructureModel>": {
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/Buzzle.Shared.Models.AttributeSystem.EntityStructureModel"
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Buzzle.Shared.Models.SingleResultModel<Buzzle.Shared.Models.AttributeSystem.ValueModelWithChangeRequests<Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel>>": {
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/Buzzle.Shared.Models.AttributeSystem.ValueModelWithChangeRequests<Buzzle.Module.Abstractions.Audit.Models.AuditEventConfigurationModel>"
          },
          "success": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "validationMessages": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "validationCodes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "Bearer Authentication token (using 'bearer <TOKEN>').",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "AuditQueryDataSource",
      "description": "Endpoints exposed for data source AuditQueryDataSource from provider AuditQueryDataSourceProvider."
    },
    {
      "name": "AuditAdminDataSource",
      "description": "Endpoints exposed for data source AuditAdminDataSource from provider AuditAdminDataSourceProvider."
    },
    {
      "name": "AuditEventConfiguration",
      "description": "Endpoints exposed for data source AuditEventConfiguration from provider EntityStructure."
    },
    {
      "name": "AuditEventConfiguration",
      "description": "Endpoints exposed for data source AuditEventConfiguration from provider SearchIndexing."
    },
    {
      "name": "DataSources",
      "description": "Endpoints exposed for data source DataSources from provider DataSources."
    },
    {
      "name": "Entities",
      "description": "Endpoints exposed for data source Entities from provider Entities."
    },
    {
      "name": "PermissionSecurity",
      "description": "Endpoints exposed for data source PermissionSecurity from provider PermissionSecurity."
    },
    {
      "name": "Validators",
      "description": "Endpoints exposed for data source Validators from provider Validators."
    }
  ]
}