From ae7ba7a080561851e1fbc20022cd3585f450e1a6 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Fri, 10 Apr 2026 11:23:34 -0400 Subject: [PATCH 01/23] Add fix and tests --- src/datamodel_code_generator/parser/base.py | 10 +++- tests/parser/test_base.py | 61 +++++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/src/datamodel_code_generator/parser/base.py b/src/datamodel_code_generator/parser/base.py index 73eb59d4f..a10ea8b26 100644 --- a/src/datamodel_code_generator/parser/base.py +++ b/src/datamodel_code_generator/parser/base.py @@ -534,6 +534,7 @@ def sort_data_models( # noqa: PLR0912, PLR0915 pass # sort on base_class dependency + seen_orders: set[tuple[str, ...]] = set() while True: ordered_models: list[tuple[int, DataModel]] = [] # Build lookup dict for O(1) index access instead of O(n) list.index() @@ -565,6 +566,11 @@ def sort_data_models( # noqa: PLR0912, PLR0915 sorted_unresolved_models = [m[1] for m in sorted(ordered_models, key=operator.itemgetter(0))] if sorted_unresolved_models == unresolved_references: break + new_order = tuple(m.path for m in sorted_unresolved_models) + if new_order in seen_orders: + unresolved_references = sorted_unresolved_models + break + seen_orders.add(new_order) unresolved_references = sorted_unresolved_models # circular reference @@ -1624,7 +1630,9 @@ def get_discriminator_field_value( if len(discriminator_values) == 0: for base_class in discriminator_model.base_classes: - check_paths(base_class.reference, mapping) # ty: ignore + if not base_class.reference: + continue + check_paths(base_class.reference, mapping) if not discriminator_values: discriminator_values = [discriminator_model.path.split("/")[-1]] diff --git a/tests/parser/test_base.py b/tests/parser/test_base.py index 9163b5a1e..24f9e1862 100644 --- a/tests/parser/test_base.py +++ b/tests/parser/test_base.py @@ -13,6 +13,8 @@ if TYPE_CHECKING: from datamodel_code_generator.parser.schema_version import JsonSchemaFeatures +from datamodel_code_generator.imports import Imports +from datamodel_code_generator.model.base import BaseClassDataType from datamodel_code_generator.model.pydantic_v2 import BaseModel, DataModelField from datamodel_code_generator.model.type_alias import TypeAlias, TypeAliasTypeBackport, TypeStatement from datamodel_code_generator.parser.base import ( @@ -242,6 +244,65 @@ def test_sort_data_models_unresolved_raise_recursion_error() -> None: sort_data_models(reference, recursion_count=100000) +def test_sort_data_models_circular_base_classes_no_infinite_loop() -> None: + """Mutual base-class references must not oscillate forever in the dependency sort.""" + reference_a = Reference(path="A", original_name="A", name="A") + reference_b = Reference(path="B", original_name="B", name="B") + reference = [ + BaseModel( + fields=[], + reference=reference_a, + base_classes=[reference_b], + ), + BaseModel( + fields=[], + reference=reference_b, + base_classes=[reference_a], + ), + ] + + _, resolved, require_update_action_models = sort_data_models(reference) + + assert set(resolved) == {"A", "B"} + assert sorted(require_update_action_models) == ["A", "B"] + + +def test_apply_discriminator_type_skips_base_class_without_reference() -> None: + """Base class slots without a Reference must not be passed to check_paths.""" + ref_pet = Reference(path="#/components/schemas/Pet", original_name="Pet", name="Pet") + pet_model = BaseModel(fields=[], reference=ref_pet) + ref_pet.source = pet_model + pet_model.base_classes.append(BaseClassDataType()) + + ref_other = Reference(path="#/components/schemas/Other", original_name="Other", name="Other") + other_model = BaseModel(fields=[], reference=ref_other) + ref_other.source = other_model + + union_inner = DataType(data_types=[DataType(reference=ref_pet), DataType(reference=ref_other)]) + ref_root = Reference(path="#/components/schemas/Root", original_name="Root", name="Root") + field = DataModelField( + name="u", + data_type=union_inner, + extras={ + "discriminator": { + "propertyName": "petType", + "mapping": {"dog": "#/components/schemas/Other"}, + } + }, + ) + root = BaseModel(fields=[field], reference=ref_root) + ref_root.source = root + + parser = C( + data_model_type=BaseModel, + data_model_root_type=BaseModel, + data_model_field_type=DataModelField, + base_class="BaseModel", + source="", + ) + parser._Parser__apply_discriminator_type([root], Imports()) # noqa: SLF001 + + @pytest.mark.parametrize( ("current_module", "reference", "val"), [ From dff13a452c442818992666e695706aa4ecaf20ba Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Fri, 10 Apr 2026 12:06:48 -0400 Subject: [PATCH 02/23] Remove unused noqa --- tests/parser/test_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/parser/test_base.py b/tests/parser/test_base.py index 24f9e1862..7e40e2e8e 100644 --- a/tests/parser/test_base.py +++ b/tests/parser/test_base.py @@ -300,7 +300,7 @@ def test_apply_discriminator_type_skips_base_class_without_reference() -> None: base_class="BaseModel", source="", ) - parser._Parser__apply_discriminator_type([root], Imports()) # noqa: SLF001 + parser._Parser__apply_discriminator_type([root], Imports()) @pytest.mark.parametrize( From b4e675c62ec8845100773cd6cfc6712c74711657 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Fri, 10 Apr 2026 12:09:47 -0400 Subject: [PATCH 03/23] Add one more noqa --- src/datamodel_code_generator/parser/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/datamodel_code_generator/parser/base.py b/src/datamodel_code_generator/parser/base.py index a10ea8b26..4ebc5b904 100644 --- a/src/datamodel_code_generator/parser/base.py +++ b/src/datamodel_code_generator/parser/base.py @@ -493,7 +493,7 @@ def add_model_path_to_list( return paths -def sort_data_models( # noqa: PLR0912, PLR0915 +def sort_data_models( # noqa: PLR0912, PLR0914, PLR0915 unsorted_data_models: list[DataModel], sorted_data_models: SortedDataModels | None = None, require_update_action_models: list[str] | None = None, From 7eaf6ab1b52cbd37c9838cc6f4ce9af93911d18a Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Fri, 10 Apr 2026 12:42:51 -0400 Subject: [PATCH 04/23] Add assertions to test --- tests/parser/test_base.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/parser/test_base.py b/tests/parser/test_base.py index 7e40e2e8e..7342cb073 100644 --- a/tests/parser/test_base.py +++ b/tests/parser/test_base.py @@ -300,8 +300,21 @@ def test_apply_discriminator_type_skips_base_class_without_reference() -> None: base_class="BaseModel", source="", ) + union_variant_types = tuple(union_inner.data_types) + assert len(union_variant_types) == 2 + assert {dt.reference.path for dt in union_variant_types} == {ref_pet.path, ref_other.path} + assert {id(dt.reference) for dt in union_variant_types} == {id(ref_pet), id(ref_other)} + pet_base_classes = pet_model.base_classes + bare_base_slot = pet_model.base_classes[-1] + parser._Parser__apply_discriminator_type([root], Imports()) + assert tuple(union_inner.data_types) == union_variant_types + assert {dt.reference.path for dt in union_inner.data_types} == {ref_pet.path, ref_other.path} + assert {id(dt.reference) for dt in union_inner.data_types} == {id(ref_pet), id(ref_other)} + assert pet_model.base_classes is pet_base_classes + assert pet_model.base_classes[-1] is bare_base_slot + @pytest.mark.parametrize( ("current_module", "reference", "val"), From 7786cf90867db72f716f1796ab071fefcffe4dc5 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Sat, 11 Apr 2026 09:51:42 -0400 Subject: [PATCH 05/23] add some generation test for schemas with cyclic references in order to track the generated output --- .../main/graphql/cyclic_mutual_types.py | 44 +++++++++++++++++++ .../main/jsonschema/cyclic_mutual_defs.py | 24 ++++++++++ .../main/openapi/cyclic_component_refs.py | 20 +++++++++ .../data/graphql/cyclic-mutual-types.graphql | 15 +++++++ tests/data/jsonschema/cyclic_mutual_defs.json | 23 ++++++++++ tests/data/openapi/cyclic_component_refs.yaml | 21 +++++++++ tests/main/graphql/test_main_graphql.py | 10 +++++ tests/main/jsonschema/test_main_jsonschema.py | 10 +++++ tests/main/openapi/test_main_openapi.py | 10 +++++ 9 files changed, 177 insertions(+) create mode 100644 tests/data/expected/main/graphql/cyclic_mutual_types.py create mode 100644 tests/data/expected/main/jsonschema/cyclic_mutual_defs.py create mode 100644 tests/data/expected/main/openapi/cyclic_component_refs.py create mode 100644 tests/data/graphql/cyclic-mutual-types.graphql create mode 100644 tests/data/jsonschema/cyclic_mutual_defs.json create mode 100644 tests/data/openapi/cyclic_component_refs.yaml diff --git a/tests/data/expected/main/graphql/cyclic_mutual_types.py b/tests/data/expected/main/graphql/cyclic_mutual_types.py new file mode 100644 index 000000000..6fae759f8 --- /dev/null +++ b/tests/data/expected/main/graphql/cyclic_mutual_types.py @@ -0,0 +1,44 @@ +# generated by datamodel-codegen: +# filename: cyclic-mutual-types.graphql +# timestamp: 2019-07-26T00:00:00+00:00 + +from __future__ import annotations + +from typing import Literal + +from pydantic import BaseModel, Field +from typing_extensions import TypeAliasType + +Boolean = TypeAliasType("Boolean", bool) +""" +The `Boolean` scalar type represents `true` or `false`. +""" + + +ID = TypeAliasType("ID", str) +""" +The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. +""" + + +String = TypeAliasType("String", str) +""" +The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. +""" + + +class A(BaseModel): + id: ID + link: B | None = None + name: String | None = None + typename__: Literal['A'] | None = Field('A', alias='__typename') + + +class B(BaseModel): + id: ID + link: A | None = None + name: String | None = None + typename__: Literal['B'] | None = Field('B', alias='__typename') + + +A.model_rebuild() diff --git a/tests/data/expected/main/jsonschema/cyclic_mutual_defs.py b/tests/data/expected/main/jsonschema/cyclic_mutual_defs.py new file mode 100644 index 000000000..da63e9e09 --- /dev/null +++ b/tests/data/expected/main/jsonschema/cyclic_mutual_defs.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: cyclic_mutual_defs.json +# timestamp: 2019-07-26T00:00:00+00:00 + +from __future__ import annotations + +from pydantic import BaseModel, Field, RootModel + + +class A(BaseModel): + name: str | None = None + b: B | None = None + + +class B(BaseModel): + name: str | None = None + a: A | None = None + + +class Root(RootModel[A]): + root: A = Field(..., title='Root') + + +A.model_rebuild() diff --git a/tests/data/expected/main/openapi/cyclic_component_refs.py b/tests/data/expected/main/openapi/cyclic_component_refs.py new file mode 100644 index 000000000..f5eafa025 --- /dev/null +++ b/tests/data/expected/main/openapi/cyclic_component_refs.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: cyclic_component_refs.yaml +# timestamp: 2019-07-26T00:00:00+00:00 + +from __future__ import annotations + +from pydantic import BaseModel + + +class Team(BaseModel): + name: str | None = None + lead: Person | None = None + + +class Person(BaseModel): + name: str | None = None + team: Team | None = None + + +Team.model_rebuild() diff --git a/tests/data/graphql/cyclic-mutual-types.graphql b/tests/data/graphql/cyclic-mutual-types.graphql new file mode 100644 index 000000000..48ca27ace --- /dev/null +++ b/tests/data/graphql/cyclic-mutual-types.graphql @@ -0,0 +1,15 @@ +type Query { + entry: A +} + +type A { + id: ID! + name: String + link: B +} + +type B { + id: ID! + name: String + link: A +} diff --git a/tests/data/jsonschema/cyclic_mutual_defs.json b/tests/data/jsonschema/cyclic_mutual_defs.json new file mode 100644 index 000000000..fb338f6b5 --- /dev/null +++ b/tests/data/jsonschema/cyclic_mutual_defs.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Root", + "$ref": "#/definitions/A", + "definitions": { + "A": { + "title": "A", + "type": "object", + "properties": { + "name": { "type": "string" }, + "b": { "$ref": "#/definitions/B" } + } + }, + "B": { + "title": "B", + "type": "object", + "properties": { + "name": { "type": "string" }, + "a": { "$ref": "#/definitions/A" } + } + } + } +} diff --git a/tests/data/openapi/cyclic_component_refs.yaml b/tests/data/openapi/cyclic_component_refs.yaml new file mode 100644 index 000000000..56371d8b6 --- /dev/null +++ b/tests/data/openapi/cyclic_component_refs.yaml @@ -0,0 +1,21 @@ +openapi: 3.0.0 +info: + title: Cyclic component $ref + version: "1.0" +paths: {} +components: + schemas: + Team: + type: object + properties: + name: + type: string + lead: + $ref: "#/components/schemas/Person" + Person: + type: object + properties: + name: + type: string + team: + $ref: "#/components/schemas/Team" diff --git a/tests/main/graphql/test_main_graphql.py b/tests/main/graphql/test_main_graphql.py index c71e35e8a..638e52833 100644 --- a/tests/main/graphql/test_main_graphql.py +++ b/tests/main/graphql/test_main_graphql.py @@ -917,3 +917,13 @@ def test_main_graphql_no_typename(output_file: Path) -> None: expected_file="no_typename.py", extra_args=["--graphql-no-typename"], ) + + +def test_main_cyclic_mutual_types(output_file: Path) -> None: + """Mutual object-type cycle (A <-> B) in GraphQL.""" + run_main_and_assert( + input_path=GRAPHQL_DATA_PATH / "cyclic-mutual-types.graphql", + output_path=output_file, + input_file_type="graphql", + assert_func=assert_file_content, + ) diff --git a/tests/main/jsonschema/test_main_jsonschema.py b/tests/main/jsonschema/test_main_jsonschema.py index 2600dbaa6..b49f36ec2 100644 --- a/tests/main/jsonschema/test_main_jsonschema.py +++ b/tests/main/jsonschema/test_main_jsonschema.py @@ -1157,6 +1157,16 @@ def test_main_circular_reference(output_file: Path) -> None: ) +def test_main_cyclic_mutual_defs(output_file: Path) -> None: + """Minimal mutual cycle between two JSON Schema definitions (A <-> B).""" + run_main_and_assert( + input_path=JSON_SCHEMA_DATA_PATH / "cyclic_mutual_defs.json", + output_path=output_file, + input_file_type="jsonschema", + assert_func=assert_file_content, + ) + + def test_main_invalid_enum_name(output_file: Path) -> None: """Test invalid enum name handling.""" run_main_and_assert( diff --git a/tests/main/openapi/test_main_openapi.py b/tests/main/openapi/test_main_openapi.py index 65121180d..c3da99a75 100644 --- a/tests/main/openapi/test_main_openapi.py +++ b/tests/main/openapi/test_main_openapi.py @@ -4751,6 +4751,16 @@ def test_main_openapi_circular_imports_acyclic(output_dir: Path) -> None: ) +def test_main_cyclic_component_refs(output_file: Path) -> None: + """Mutual $ref cycle in components/schemas (single-file OpenAPI).""" + run_main_and_assert( + input_path=OPEN_API_DATA_PATH / "cyclic_component_refs.yaml", + output_path=output_file, + input_file_type="openapi", + assert_func=assert_file_content, + ) + + def test_main_openapi_circular_imports_class_conflict(output_dir: Path) -> None: """Test that class name conflicts in merged _internal.py are resolved with sequential renaming.""" with freeze_time(TIMESTAMP): From 8d3ee3958ce8d9c595fdaa3d46a73bba2b54fa23 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Sat, 11 Apr 2026 10:13:30 -0400 Subject: [PATCH 06/23] Add missing expected_file --- tests/main/graphql/test_main_graphql.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/main/graphql/test_main_graphql.py b/tests/main/graphql/test_main_graphql.py index 638e52833..cec8f8984 100644 --- a/tests/main/graphql/test_main_graphql.py +++ b/tests/main/graphql/test_main_graphql.py @@ -926,4 +926,5 @@ def test_main_cyclic_mutual_types(output_file: Path) -> None: output_path=output_file, input_file_type="graphql", assert_func=assert_file_content, + expected_file="cyclic_mutual_types.py", ) From bb037b0af74ff6290fcd439fee7c7de919b2ecb0 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Mon, 13 Apr 2026 11:57:00 -0400 Subject: [PATCH 07/23] Update the `test_main_cyclic_` tests so that before the change they actually reproduce the issue (don't complete in a reasonable time) --- .../main/graphql/cyclic_mutual_types.py | 22 +++++--------- .../main/jsonschema/cyclic_mutual_defs.py | 17 ++++------- .../main/openapi/cyclic_component_refs.py | 11 ++++--- .../data/graphql/cyclic-mutual-types.graphql | 18 ++++++----- tests/data/jsonschema/cyclic_mutual_defs.json | 30 ++++++++++++------- tests/data/openapi/cyclic_component_refs.yaml | 12 +++++--- 6 files changed, 57 insertions(+), 53 deletions(-) diff --git a/tests/data/expected/main/graphql/cyclic_mutual_types.py b/tests/data/expected/main/graphql/cyclic_mutual_types.py index 6fae759f8..c8fb7e0d1 100644 --- a/tests/data/expected/main/graphql/cyclic_mutual_types.py +++ b/tests/data/expected/main/graphql/cyclic_mutual_types.py @@ -15,30 +15,22 @@ """ -ID = TypeAliasType("ID", str) -""" -The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. -""" - - String = TypeAliasType("String", str) """ The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. """ -class A(BaseModel): - id: ID - link: B | None = None +class Model(BaseModel): name: String | None = None - typename__: Literal['A'] | None = Field('A', alias='__typename') + typename__: Literal['Model'] | None = Field('Model', alias='__typename') -class B(BaseModel): - id: ID - link: A | None = None +class Team(Person, Model): name: String | None = None - typename__: Literal['B'] | None = Field('B', alias='__typename') + typename__: Literal['Team'] | None = Field('Team', alias='__typename') -A.model_rebuild() +class Person(Team, Model): + name: String | None = None + typename__: Literal['Person'] | None = Field('Person', alias='__typename') diff --git a/tests/data/expected/main/jsonschema/cyclic_mutual_defs.py b/tests/data/expected/main/jsonschema/cyclic_mutual_defs.py index da63e9e09..d77c41a2b 100644 --- a/tests/data/expected/main/jsonschema/cyclic_mutual_defs.py +++ b/tests/data/expected/main/jsonschema/cyclic_mutual_defs.py @@ -4,21 +4,16 @@ from __future__ import annotations -from pydantic import BaseModel, Field, RootModel +from pydantic import BaseModel -class A(BaseModel): - name: str | None = None - b: B | None = None +class Model(BaseModel): + pass -class B(BaseModel): +class Person(Team, Model): name: str | None = None - a: A | None = None - -class Root(RootModel[A]): - root: A = Field(..., title='Root') - -A.model_rebuild() +class Team(Person, Model): + name: str | None = None diff --git a/tests/data/expected/main/openapi/cyclic_component_refs.py b/tests/data/expected/main/openapi/cyclic_component_refs.py index f5eafa025..256f3456c 100644 --- a/tests/data/expected/main/openapi/cyclic_component_refs.py +++ b/tests/data/expected/main/openapi/cyclic_component_refs.py @@ -7,14 +7,13 @@ from pydantic import BaseModel -class Team(BaseModel): - name: str | None = None - lead: Person | None = None +class Model(BaseModel): + pass -class Person(BaseModel): +class Person(Team, Model): name: str | None = None - team: Team | None = None -Team.model_rebuild() +class Team(Person, Model): + name: str | None = None diff --git a/tests/data/graphql/cyclic-mutual-types.graphql b/tests/data/graphql/cyclic-mutual-types.graphql index 48ca27ace..d383116c3 100644 --- a/tests/data/graphql/cyclic-mutual-types.graphql +++ b/tests/data/graphql/cyclic-mutual-types.graphql @@ -1,15 +1,19 @@ type Query { - entry: A + entry: Team } -type A { - id: ID! +# GraphQL interfaces must declare fields; OpenAPI `Model` is an empty object, so `name` +# is the shared optional field carried by Team/Person (mirrors OpenAPI `name` on each). +interface Model { name: String - link: B } -type B { - id: ID! +# Mirrors allOf [Model, Person] + properties { name }. +interface Team implements Model & Person { + name: String +} + +# Mirrors allOf [Model, Team] + properties { name }. +interface Person implements Model & Team { name: String - link: A } diff --git a/tests/data/jsonschema/cyclic_mutual_defs.json b/tests/data/jsonschema/cyclic_mutual_defs.json index fb338f6b5..abd95dec3 100644 --- a/tests/data/jsonschema/cyclic_mutual_defs.json +++ b/tests/data/jsonschema/cyclic_mutual_defs.json @@ -1,22 +1,32 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Root", - "$ref": "#/definitions/A", + "type": "object", + "properties": {}, "definitions": { - "A": { - "title": "A", + "Model": { + "title": "Model", + "type": "object" + }, + "Team": { + "title": "Team", + "allOf": [ + { "$ref": "#/definitions/Model" }, + { "$ref": "#/definitions/Person" } + ], "type": "object", "properties": { - "name": { "type": "string" }, - "b": { "$ref": "#/definitions/B" } + "name": { "type": "string" } } }, - "B": { - "title": "B", + "Person": { + "title": "Person", + "allOf": [ + { "$ref": "#/definitions/Model" }, + { "$ref": "#/definitions/Team" } + ], "type": "object", "properties": { - "name": { "type": "string" }, - "a": { "$ref": "#/definitions/A" } + "name": { "type": "string" } } } } diff --git a/tests/data/openapi/cyclic_component_refs.yaml b/tests/data/openapi/cyclic_component_refs.yaml index 56371d8b6..b88867b4b 100644 --- a/tests/data/openapi/cyclic_component_refs.yaml +++ b/tests/data/openapi/cyclic_component_refs.yaml @@ -5,17 +5,21 @@ info: paths: {} components: schemas: + Model: + type: object Team: + allOf: + - $ref: "#/components/schemas/Model" + - $ref: "#/components/schemas/Person" type: object properties: name: type: string - lead: - $ref: "#/components/schemas/Person" Person: + allOf: + - $ref: "#/components/schemas/Model" + - $ref: "#/components/schemas/Team" type: object properties: name: type: string - team: - $ref: "#/components/schemas/Team" From db5f26a077304621ec8cc41489feffdf088c31b4 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Mon, 13 Apr 2026 14:10:02 -0400 Subject: [PATCH 08/23] tmp add --- model.py | 19614 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 19614 insertions(+) create mode 100644 model.py diff --git a/model.py b/model.py new file mode 100644 index 000000000..c76d9292b --- /dev/null +++ b/model.py @@ -0,0 +1,19614 @@ +# +# Copyright MindBridge Analytics Inc. all rights reserved. +# +# This material is confidential and may not be copied, distributed, +# reversed engineered, decompiled or otherwise disseminated without +# the prior written consent of MindBridge Analytics Inc. +# + +from __future__ import annotations +from datetime import date +from enum import Enum +from typing import Annotated, Any, Literal, Union +from pydantic import AwareDatetime, Field, RootModel +from mindbridgeapi.base_item import BaseItem + +ObjectId = RootModel[str | None] + + +class WebhookPayloadType(str, Enum): + """The event type that triggered the webhook.""" + + EXPORT_READY = "export.ready" + DATA_ADDED = "data.added" + INGESTION_COMPLETE = "ingestion.complete" + INGESTION_FAILED = "ingestion.failed" + ANALYSIS_COMPLETED = "analysis.completed" + ANALYSIS_FAILED = "analysis.failed" + UNMAPPED_ACCOUNTS = "unmapped.accounts" + ENGAGEMENT_CREATED = "engagement.created" + ENGAGEMENT_UPDATED = "engagement.updated" + ENGAGEMENT_DELETED = "engagement.deleted" + ANALYSIS_CREATED = "analysis.created" + ANALYSIS_UPDATED = "analysis.updated" + ANALYSIS_DELETED = "analysis.deleted" + ANALYSIS_ARCHIVED = "analysis.archived" + ANALYSIS_UNARCHIVED = "analysis.unarchived" + USER_INVITED = "user.invited" + USER_STATUS = "user.status" + USER_ROLE = "user.role" + USER_DELETED = "user.deleted" + USER_LOGIN = "user.login" + + +class WebhookPayload(BaseItem): + type: Annotated[ + WebhookPayloadType | None, + Field(description="The event type that triggered the webhook."), + ] = None + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + timestamp: Annotated[ + AwareDatetime | None, + Field(description="The time that the webhook was triggered."), + ] = None + sender_id: Annotated[ + ObjectId | None, + Field( + alias="senderId", + description="The ID of the registered webhook configuration that initiated the outbound request.", + ), + ] = None + tenant_id: Annotated[ + str | None, + Field( + alias="tenantId", + description="The name of the tenant that triggered the webhook.", + ), + ] = None + user_id: Annotated[ + ObjectId | None, + Field( + alias="userId", + description="The ID of the user that initiated the event that triggered the webhook.", + ), + ] = None + + +class AnalysisResultWebhookPayloadType(str, Enum): + """The event type that triggered the webhook.""" + + ANALYSIS_COMPLETED = "analysis.completed" + ANALYSIS_FAILED = "analysis.failed" + + +class AnalysisWebhookData(BaseItem): + engagement_id: Annotated[ + ObjectId | None, + Field( + alias="engagementId", + description="The ID of the Engagement associated with the webhook event.", + ), + ] = None + analysis_id: Annotated[ + ObjectId | None, + Field( + alias="analysisId", + description="The ID of the Analysis associated with the webhook event.", + ), + ] = None + + +class AnalysisSourceWebhookPayloadType(str, Enum): + """The event type that triggered the webhook.""" + + INGESTION_COMPLETE = "ingestion.complete" + INGESTION_FAILED = "ingestion.failed" + + +class AnalysisSourceWebhookData(BaseItem): + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + analysis_source_id: Annotated[ + ObjectId | None, + Field( + alias="analysisSourceId", + description="The ID of the Analysis Source associated with the event.", + ), + ] = None + analysis_id: Annotated[ + ObjectId | None, + Field( + alias="analysisId", + description="The ID of the Analysis associated with the webhook event.", + ), + ] = None + engagement_id: Annotated[ + ObjectId | None, + Field( + alias="engagementId", + description="The ID of the Engagement associated with the webhook event.", + ), + ] = None + + +class AnalysisResultWebhookData(BaseItem): + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + analysis_id: Annotated[ + ObjectId | None, + Field( + alias="analysisId", + description="The ID of the Analysis associated with the webhook event.", + ), + ] = None + analysis_result_id: Annotated[ + ObjectId | None, + Field( + alias="analysisResultId", + description="The ID of the Analysis Result associated with the webhook event.", + ), + ] = None + engagement_id: Annotated[ + ObjectId | None, + Field( + alias="engagementId", + description="The ID of the Engagement associated with the webhook event.", + ), + ] = None + + +class EngagementSubscriptionWebhookData(BaseItem): + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + engagement_id: Annotated[ + ObjectId | None, + Field( + alias="engagementId", + description="The ID of the Engagement associated with the webhook event.", + ), + ] = None + target_user_id: Annotated[ + ObjectId | None, + Field( + alias="targetUserId", + description="The ID of the user associated with the webhook event.", + ), + ] = None + + +class EngagementWebhookPayloadType(str, Enum): + """The event type that triggered the webhook.""" + + ENGAGEMENT_CREATED = "engagement.created" + ENGAGEMENT_UPDATED = "engagement.updated" + ENGAGEMENT_DELETED = "engagement.deleted" + + +class EngagementWebhookData(BaseItem): + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + engagement_id: Annotated[ + ObjectId | None, + Field( + alias="engagementId", + description="The ID of the Engagement associated with the webhook event.", + ), + ] = None + + +class FileManagerWebhookPayloadType(str, Enum): + """The event type that triggered the webhook.""" + + DATA_ADDED = "data.added" + EXPORT_READY = "export.ready" + + +class FileManagerWebhookData(BaseItem): + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + file_manager_file_id: Annotated[ + ObjectId | None, + Field( + alias="fileManagerFileId", + description="The ID of the data associated with the webhook event.", + ), + ] = None + file_export_id: Annotated[ + ObjectId | None, + Field( + alias="fileExportId", + description="The ID of the file export associated with the webhook event.", + ), + ] = None + + +class UserWebhookData(BaseItem): + target_user_id: Annotated[ + ObjectId | None, + Field( + alias="targetUserId", + description="The ID of the data associated with the webhook event.", + ), + ] = None + + +class UserRoleWebhookPayloadType(str, Enum): + """The event type that triggered the webhook.""" + + USER_INVITED = "user.invited" + USER_ROLE = "user.role" + + +class UserRoleWebhookDataRole(str, Enum): + """The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)""" + + ROLE_ADMIN = "ROLE_ADMIN" + ROLE_ORGANIZATION_ADMIN = "ROLE_ORGANIZATION_ADMIN" + ROLE_USER = "ROLE_USER" + ROLE_CLIENT = "ROLE_CLIENT" + ROLE_MINDBRIDGE_SUPPORT = "ROLE_MINDBRIDGE_SUPPORT" + ROLE_USER_ADMIN = "ROLE_USER_ADMIN" + + +class UserRoleWebhookData(BaseItem): + role: Annotated[ + UserRoleWebhookDataRole | None, + Field( + description="The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)" + ), + ] = None + target_user_id: Annotated[ + ObjectId | None, + Field( + alias="targetUserId", + description="The ID of the data associated with the webhook event.", + ), + ] = None + + +UserLoginWebhookData = RootModel[Any | None] + + +class UserStatusWebhookData(BaseItem): + target_user_id: Annotated[ + ObjectId | None, + Field( + alias="targetUserId", + description="The ID of the data associated with the webhook event.", + ), + ] = None + status: Annotated[ + str | None, + Field( + description="Identifies the status change that triggered the webhook event." + ), + ] = None + + +class ApiWebhookUpdateEvent(str, Enum): + EXPORT_READY = "EXPORT_READY" + FILE_MANAGER_FILE_ADDED = "FILE_MANAGER_FILE_ADDED" + INGESTION_COMPLETE = "INGESTION_COMPLETE" + INGESTION_FAILED = "INGESTION_FAILED" + INGESTION_ANALYSIS_COMPLETE = "INGESTION_ANALYSIS_COMPLETE" + INGESTION_ANALYSIS_FAILED = "INGESTION_ANALYSIS_FAILED" + UNMAPPED_ACCOUNTS_DETECTED = "UNMAPPED_ACCOUNTS_DETECTED" + ENGAGEMENT_CREATED = "ENGAGEMENT_CREATED" + ENGAGEMENT_UPDATED = "ENGAGEMENT_UPDATED" + ENGAGEMENT_DELETED = "ENGAGEMENT_DELETED" + ANALYSIS_CREATED = "ANALYSIS_CREATED" + ANALYSIS_UPDATED = "ANALYSIS_UPDATED" + ANALYSIS_DELETED = "ANALYSIS_DELETED" + ANALYSIS_ARCHIVED = "ANALYSIS_ARCHIVED" + ANALYSIS_UNARCHIVED = "ANALYSIS_UNARCHIVED" + USER_INVITED = "USER_INVITED" + USER_STATUS_UPDATED = "USER_STATUS_UPDATED" + USER_ROLE_UPDATED = "USER_ROLE_UPDATED" + USER_DELETED = "USER_DELETED" + USER_LOGIN = "USER_LOGIN" + + +class ApiWebhookUpdateStatus(str, Enum): + """The current status of the webhook.""" + + ACTIVE = "ACTIVE" + INACTIVE = "INACTIVE" + + +class ApiWebhookUpdate(BaseItem): + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + name: Annotated[str | None, Field(description="The name of the webhook.")] = None + url: Annotated[ + str | None, + Field(description="The URL to which the webhook will send notifications."), + ] = None + technical_contact_id: Annotated[ + str | None, + Field( + alias="technicalContactId", + description="A reference to an administrative user used to inform system administrators of issues with the webhooks.", + ), + ] = None + events: Annotated[ + list[ApiWebhookUpdateEvent] | None, + Field( + description="A list of events that will trigger this webhook.", + max_length=2147483647, + min_length=1, + ), + ] = None + status: Annotated[ + ApiWebhookUpdateStatus | None, + Field(description="The current status of the webhook."), + ] = None + + +class ApiUserInfoRead(BaseItem): + user_id: Annotated[ + str | None, Field(alias="userId", description="Identifies the user.") + ] = None + user_name: Annotated[ + str | None, Field(alias="userName", description="The name of the user.") + ] = None + + +class ApiWebhookReadEvent(str, Enum): + EXPORT_READY = "EXPORT_READY" + FILE_MANAGER_FILE_ADDED = "FILE_MANAGER_FILE_ADDED" + INGESTION_COMPLETE = "INGESTION_COMPLETE" + INGESTION_FAILED = "INGESTION_FAILED" + INGESTION_ANALYSIS_COMPLETE = "INGESTION_ANALYSIS_COMPLETE" + INGESTION_ANALYSIS_FAILED = "INGESTION_ANALYSIS_FAILED" + UNMAPPED_ACCOUNTS_DETECTED = "UNMAPPED_ACCOUNTS_DETECTED" + ENGAGEMENT_CREATED = "ENGAGEMENT_CREATED" + ENGAGEMENT_UPDATED = "ENGAGEMENT_UPDATED" + ENGAGEMENT_DELETED = "ENGAGEMENT_DELETED" + ANALYSIS_CREATED = "ANALYSIS_CREATED" + ANALYSIS_UPDATED = "ANALYSIS_UPDATED" + ANALYSIS_DELETED = "ANALYSIS_DELETED" + ANALYSIS_ARCHIVED = "ANALYSIS_ARCHIVED" + ANALYSIS_UNARCHIVED = "ANALYSIS_UNARCHIVED" + USER_INVITED = "USER_INVITED" + USER_STATUS_UPDATED = "USER_STATUS_UPDATED" + USER_ROLE_UPDATED = "USER_ROLE_UPDATED" + USER_DELETED = "USER_DELETED" + USER_LOGIN = "USER_LOGIN" + + +class ApiWebhookReadStatus(str, Enum): + """The current status of the webhook.""" + + ACTIVE = "ACTIVE" + INACTIVE = "INACTIVE" + + +class ApiWebhookRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[AwareDatetime | None, Field(alias="creationDate")] = None + last_modified_date: Annotated[ + AwareDatetime | None, Field(alias="lastModifiedDate") + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, Field(alias="createdUserInfo") + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, Field(alias="lastModifiedUserInfo") + ] = None + name: Annotated[str | None, Field(description="The name of the webhook.")] = None + url: Annotated[ + str | None, + Field(description="The URL to which the webhook will send notifications."), + ] = None + technical_contact_id: Annotated[ + str | None, + Field( + alias="technicalContactId", + description="A reference to an administrative user used to inform system administrators of issues with the webhooks.", + ), + ] = None + events: Annotated[ + list[ApiWebhookReadEvent] | None, + Field( + description="A list of events that will trigger this webhook.", + max_length=2147483647, + min_length=1, + ), + ] = None + public_key: Annotated[ + str | None, + Field( + alias="publicKey", + description="The public key used to verify the webhook signature.", + ), + ] = None + status: Annotated[ + ApiWebhookReadStatus | None, + Field(description="The current status of the webhook."), + ] = None + key_generation_timestamp: Annotated[ + AwareDatetime | None, Field(alias="keyGenerationTimestamp") + ] = None + + +class ApiUserUpdateRole(str, Enum): + """The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)""" + + ROLE_ADMIN = "ROLE_ADMIN" + ROLE_ORGANIZATION_ADMIN = "ROLE_ORGANIZATION_ADMIN" + ROLE_USER = "ROLE_USER" + ROLE_CLIENT = "ROLE_CLIENT" + ROLE_MINDBRIDGE_SUPPORT = "ROLE_MINDBRIDGE_SUPPORT" + ROLE_USER_ADMIN = "ROLE_USER_ADMIN" + + +class ApiUserUpdate(BaseItem): + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + role: Annotated[ + ApiUserUpdateRole | None, + Field( + description="The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)" + ), + ] = None + enabled: Annotated[ + bool | None, + Field( + description="Indicates whether or not the user is enabled within this tenant." + ), + ] = None + + +class ApiLoginRecordRead(BaseItem): + timestamp: Annotated[ + AwareDatetime | None, + Field( + description="The time when the user logged in or the API token was used." + ), + ] = None + ip_address: Annotated[ + str | None, + Field( + alias="ipAddress", + description="The IP address used when logging in or when making a request with an API token.", + ), + ] = None + + +class ApiUserReadRole(str, Enum): + """The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)""" + + ROLE_ADMIN = "ROLE_ADMIN" + ROLE_ORGANIZATION_ADMIN = "ROLE_ORGANIZATION_ADMIN" + ROLE_USER = "ROLE_USER" + ROLE_CLIENT = "ROLE_CLIENT" + ROLE_MINDBRIDGE_SUPPORT = "ROLE_MINDBRIDGE_SUPPORT" + ROLE_USER_ADMIN = "ROLE_USER_ADMIN" + + +class ApiUserRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + first_name: Annotated[ + str | None, Field(alias="firstName", description="The user's first name.") + ] = None + last_name: Annotated[ + str | None, Field(alias="lastName", description="The user's last name.") + ] = None + email: Annotated[str | None, Field(description="The user's email address.")] = None + role: Annotated[ + ApiUserReadRole | None, + Field( + description="The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)" + ), + ] = None + enabled: Annotated[ + bool | None, + Field( + description="Indicates whether or not the user is enabled within this tenant." + ), + ] = None + validated: Annotated[ + bool | None, + Field( + description="Indicates whether or not the user has opened the account activation link after being created." + ), + ] = None + service_account: Annotated[ + bool | None, + Field( + alias="serviceAccount", + description="Indicates whether or not this account is used as part of an API token.", + ), + ] = None + recent_logins: Annotated[ + list[ApiLoginRecordRead] | None, + Field( + alias="recentLogins", + description="A list of the latest successful logins or token usage events by IP address.", + ), + ] = None + + +class ApiTaskUpdateStatus(str, Enum): + """The current state of the task.""" + + OPEN = "OPEN" + NORMAL = "NORMAL" + COMPLETED = "COMPLETED" + DISMISSED = "DISMISSED" + RESOLVED = "RESOLVED" + + +class ApiTaskUpdateTaskApprovalStatus(str, Enum): + PENDING = "PENDING" + REJECTED = "REJECTED" + APPROVED = "APPROVED" + + +class ApiTaskUpdate(BaseItem): + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + status: Annotated[ + ApiTaskUpdateStatus | None, + Field(description="The current state of the task.", title="Task Status"), + ] = None + assigned_id: Annotated[ + str | None, + Field( + alias="assignedId", description="Identifies the user assigned to this task." + ), + ] = None + description: Annotated[ + str | None, Field(description="A description of the task.") + ] = None + sample: Annotated[ + str | None, Field(description="Which sample this task is a part of.") + ] = None + audit_areas: Annotated[ + list[str] | None, + Field( + alias="auditAreas", + description="Which audit areas this task is associated with.", + ), + ] = None + assertions: Annotated[ + list[str] | None, + Field(description="Which assertions this task is associated with."), + ] = None + task_approval_status: Annotated[ + ApiTaskUpdateTaskApprovalStatus | None, + Field(alias="taskApprovalStatus", title="Task Approval Status"), + ] = None + due_date: Annotated[date | None, Field(alias="dueDate")] = None + approver_id: Annotated[str | None, Field(alias="approverId")] = None + tags: list[str] | None = None + + +class ApiTaskCommentRead(BaseItem): + comment_text: Annotated[ + str | None, Field(alias="commentText", description="The text of the comment.") + ] = None + captured: Annotated[ + AwareDatetime | None, + Field(description="The timestamp when this comment was made."), + ] = None + author_id: Annotated[ + str | None, + Field( + alias="authorId", + description="The unique identifier of the user who created this comment.", + ), + ] = None + + +class ApiTaskReadStatus(str, Enum): + """The current state of the task.""" + + OPEN = "OPEN" + NORMAL = "NORMAL" + COMPLETED = "COMPLETED" + DISMISSED = "DISMISSED" + RESOLVED = "RESOLVED" + + +class ApiTaskReadType(str, Enum): + """The type of entry this task is associated with.""" + + ENTRY = "ENTRY" + TRANSACTION = "TRANSACTION" + AP_ENTRY = "AP_ENTRY" + AR_ENTRY = "AR_ENTRY" + AP_OUTSTANDING_ENTRY = "AP_OUTSTANDING_ENTRY" + AR_OUTSTANDING_ENTRY = "AR_OUTSTANDING_ENTRY" + TRA_ENTRY = "TRA_ENTRY" + SUBLEDGER_ENTRY = "SUBLEDGER_ENTRY" + + +class ApiTaskReadSampleType(str, Enum): + """The sampling method used to create this task.""" + + RISK_BASED = "RISK_BASED" + RANDOM = "RANDOM" + MANUAL = "MANUAL" + MONETARY_UNIT_SAMPLING = "MONETARY_UNIT_SAMPLING" + + +class ApiTaskReadTaskApprovalStatus(str, Enum): + PENDING = "PENDING" + REJECTED = "REJECTED" + APPROVED = "APPROVED" + + +class MoneyRead(BaseItem): + amount: int | None = None + currency: str | None = None + + +class ApiFilterAccountConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterAccountSelection(BaseItem): + name: Annotated[ + str | None, Field(description="The display name of the account being selected.") + ] = None + code: Annotated[ + str | None, + Field( + description="The account grouping code or account ID of the selected account." + ), + ] = None + use_account_id: Annotated[ + bool | None, + Field( + alias="useAccountId", + description="If `true` then the selected account will be identified by the account ID rather than the grouping code.", + ), + ] = None + + +class ApiFilterComplexMonetaryFlowConditionApiFilterComplexMonetaryFlowCondition( + BaseItem +): + type: Annotated[ + Literal["MONETARY_FLOW"] | None, Field(title="Filter Condition Type") + ] = "MONETARY_FLOW" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + monetary_flow_type: Annotated[ + Literal["COMPLEX_FLOW"] | None, + Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), + ] = "COMPLEX_FLOW" + + +class ApiFilterConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterConditionUpdateType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterControlPointConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterControlPointConditionRiskLevel(str, Enum): + """The risk level of the selected control points.""" + + HIGH_RISK = "HIGH_RISK" + MEDIUM_RISK = "MEDIUM_RISK" + LOW_RISK = "LOW_RISK" + + +class ApiFilterControlPointSelection(BaseItem): + id: Annotated[ + str | None, Field(description="The ID of the selected control point.") + ] = None + name: Annotated[ + str | None, Field(description="The display name of the control point.") + ] = None + symbolic_name: Annotated[ + str | None, + Field( + alias="symbolicName", + description="The symbolic name of the target control point. For custom control points this is the symbolic name of the control point it is based on.", + ), + ] = None + rules_based: Annotated[bool | None, Field(alias="rulesBased")] = None + + +class ApiFilterDateConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterDateConditionDateType(str, Enum): + """The type of date condition.""" + + BEFORE = "BEFORE" + AFTER = "AFTER" + SPECIFIC_VALUE = "SPECIFIC_VALUE" + BETWEEN = "BETWEEN" + + +class ApiFilterDateConditionApiFilterDateCondition13(BaseItem): + type: Annotated[ + Literal["DATE"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "DATE" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + date_type: Annotated[ + ApiFilterDateConditionDateType | None, + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] = None + + +class ApiFilterDateRangeConditionApiFilterDateRangeCondition(BaseItem): + type: Annotated[Literal["DATE"] | None, Field(title="Filter Condition Type")] = ( + "DATE" + ) + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + date_type: Annotated[ + Literal["BETWEEN"] | None, Field(alias="dateType", title="Filter Date Type") + ] = "BETWEEN" + range_start: Annotated[ + date | None, + Field( + alias="rangeStart", + description="The start of an ISO date range to compare entries to.", + ), + ] = None + range_end: Annotated[ + date | None, + Field( + alias="rangeEnd", + description="The end of an ISO date range to compare entries to.", + ), + ] = None + + +class ApiFilterDateValueConditionDateType(str, Enum): + AFTER = "AFTER" + BEFORE = "BEFORE" + SPECIFIC_VALUE = "SPECIFIC_VALUE" + + +class ApiFilterDateValueConditionApiFilterDateValueCondition(BaseItem): + type: Annotated[Literal["DATE"] | None, Field(title="Filter Condition Type")] = ( + "DATE" + ) + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + date_type: Annotated[ + ApiFilterDateValueConditionDateType | None, + Field(alias="dateType", title="Filter Date Type"), + ] = None + value: Annotated[ + date | None, Field(description="An ISO date value to compare entries to.") + ] = None + + +class ApiFilterGroupConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterGroupConditionOperator(str, Enum): + """The operator to be applied to conditions within this group.""" + + AND = "AND" + OR = "OR" + + +class ApiFilterGroupConditionUpdateType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterGroupConditionUpdateOperator(str, Enum): + """The operator to be applied to conditions within this group.""" + + AND = "AND" + OR = "OR" + + +class ApiFilterMaterialityConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterMaterialityConditionMaterialityOption(str, Enum): + """The type of materiality comparison.""" + + ABOVE = "ABOVE" + BELOW = "BELOW" + PERCENTAGE = "PERCENTAGE" + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition13(BaseItem): + type: Annotated[ + Literal["MATERIALITY"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "MATERIALITY" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + materiality_option: Annotated[ + ApiFilterMaterialityConditionMaterialityOption | None, + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] = None + + +class ApiFilterMaterialityOptionConditionMaterialityOption(str, Enum): + ABOVE = "ABOVE" + BELOW = "BELOW" + + +class ApiFilterMaterialityOptionConditionApiFilterMaterialityOptionCondition(BaseItem): + type: Annotated[ + Literal["MATERIALITY"] | None, Field(title="Filter Condition Type") + ] = "MATERIALITY" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + materiality_option: Annotated[ + ApiFilterMaterialityOptionConditionMaterialityOption | None, + Field(alias="materialityOption", title="Filter Materiality Value Options"), + ] = None + + +class ApiFilterMaterialityValueConditionApiFilterMaterialityValueCondition(BaseItem): + type: Annotated[ + Literal["MATERIALITY"] | None, Field(title="Filter Condition Type") + ] = "MATERIALITY" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + materiality_option: Annotated[ + Literal["PERCENTAGE"] | None, + Field(alias="materialityOption", title="Filter Materiality Value Options"), + ] = "PERCENTAGE" + value: Annotated[ + float | None, + Field( + description="The percentage value, as a decimal number, with 100.00 being 100%." + ), + ] = None + + +class ApiFilterMonetaryFlowConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterMonetaryFlowConditionMonetaryFlowType(str, Enum): + """The type of monetary flow this filter will match.""" + + SIMPLE_FLOW = "SIMPLE_FLOW" + COMPLEX_FLOW = "COMPLEX_FLOW" + SPECIFIC_FLOW = "SPECIFIC_FLOW" + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13(BaseItem): + type: Annotated[ + Literal["MONETARY_FLOW"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "MONETARY_FLOW" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + monetary_flow_type: Annotated[ + ApiFilterMonetaryFlowConditionMonetaryFlowType | None, + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] = None + + +class ApiFilterMonetaryValueConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterMonetaryValueConditionMonetaryValueType(str, Enum): + """The type of monetary value condition.""" + + MORE_THAN = "MORE_THAN" + LESS_THAN = "LESS_THAN" + SPECIFIC_VALUE = "SPECIFIC_VALUE" + BETWEEN = "BETWEEN" + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13(BaseItem): + type: Annotated[ + Literal["MONEY"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "MONEY" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + monetary_value_type: Annotated[ + ApiFilterMonetaryValueConditionMonetaryValueType | None, + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] = None + + +class ApiFilterMonetaryValueRangeConditionApiFilterMonetaryValueRangeCondition( + BaseItem +): + type: Annotated[Literal["MONEY"] | None, Field(title="Filter Condition Type")] = ( + "MONEY" + ) + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + monetary_value_type: Annotated[ + Literal["BETWEEN"] | None, + Field(alias="monetaryValueType", title="Filter Monetary Type"), + ] = "BETWEEN" + range_start: Annotated[ + int | None, + Field( + alias="rangeStart", + description="The start of the range, as a MONEY_100 formatted number to compare with entries.", + ), + ] = None + range_end: Annotated[ + int | None, + Field( + alias="rangeEnd", + description="The end of the range, as a MONEY_100 formatted number to compare with entries.", + ), + ] = None + + +class ApiFilterMonetaryValueValueConditionMonetaryValueType(str, Enum): + MORE_THAN = "MORE_THAN" + SPECIFIC_VALUE = "SPECIFIC_VALUE" + LESS_THAN = "LESS_THAN" + + +class ApiFilterMonetaryValueValueConditionApiFilterMonetaryValueValueCondition( + BaseItem +): + type: Annotated[Literal["MONEY"] | None, Field(title="Filter Condition Type")] = ( + "MONEY" + ) + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + monetary_value_type: Annotated[ + ApiFilterMonetaryValueValueConditionMonetaryValueType | None, + Field(alias="monetaryValueType", title="Filter Monetary Type"), + ] = None + value: Annotated[ + int | None, + Field(description="The MONEY_100 formatted number to compare with entries."), + ] = None + + +class ApiFilterNumericalValueConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterNumericalValueConditionNumericalValueType(str, Enum): + """The type of numerical value condition.""" + + MORE_THAN = "MORE_THAN" + LESS_THAN = "LESS_THAN" + SPECIFIC_VALUE = "SPECIFIC_VALUE" + BETWEEN = "BETWEEN" + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13(BaseItem): + type: Annotated[ + Literal["NUMERICAL"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "NUMERICAL" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + numerical_value_type: Annotated[ + ApiFilterNumericalValueConditionNumericalValueType | None, + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] = None + + +class ApiFilterNumericalValueRangeConditionApiFilterNumericalValueRangeCondition( + BaseItem +): + type: Annotated[ + Literal["NUMERICAL"] | None, Field(title="Filter Condition Type") + ] = "NUMERICAL" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + numerical_value_type: Annotated[ + Literal["BETWEEN"] | None, + Field(alias="numericalValueType", title="Filter Numerical Value Type"), + ] = "BETWEEN" + range_start: Annotated[ + int | None, + Field( + alias="rangeStart", + description="The start value of a range to compare entries to.", + ), + ] = None + range_end: Annotated[ + int | None, + Field( + alias="rangeEnd", + description="The end value of a range to compare entries to.", + ), + ] = None + + +class ApiFilterNumericalValueValueConditionNumericalValueType(str, Enum): + MORE_THAN = "MORE_THAN" + SPECIFIC_VALUE = "SPECIFIC_VALUE" + LESS_THAN = "LESS_THAN" + + +class ApiFilterNumericalValueValueConditionApiFilterNumericalValueValueCondition( + BaseItem +): + type: Annotated[ + Literal["NUMERICAL"] | None, Field(title="Filter Condition Type") + ] = "NUMERICAL" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + numerical_value_type: Annotated[ + ApiFilterNumericalValueValueConditionNumericalValueType | None, + Field(alias="numericalValueType", title="Filter Numerical Value Type"), + ] = None + value: Annotated[ + int | None, Field(description="A value to compare entries to.") + ] = None + + +class ApiFilterPopulationsConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition13(BaseItem): + type: Annotated[ + Literal["POPULATIONS"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "POPULATIONS" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + population_ids: Annotated[ + list[str] | None, + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] = None + + +class ApiFilterRiskScoreConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterRiskScoreConditionRiskScoreType(str, Enum): + """Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.""" + + PERCENT = "PERCENT" + HML = "HML" + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13(BaseItem): + type: Annotated[ + Literal["RISK_SCORE"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "RISK_SCORE" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + risk_score_type: Annotated[ + ApiFilterRiskScoreConditionRiskScoreType | None, + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] = None + risk_score_id: Annotated[ + str | None, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] = None + risk_score_label: Annotated[ + str | None, + Field( + alias="riskScoreLabel", + description="The display name of the risk score being filtered.", + ), + ] = None + + +class ApiFilterRiskScoreHMLConditionValue(str, Enum): + HIGH = "HIGH" + MEDIUM = "MEDIUM" + LOW = "LOW" + UNSCORED = "UNSCORED" + + +class ApiFilterRiskScoreHMLConditionApiFilterRiskScoreHMLCondition(BaseItem): + type: Annotated[ + Literal["RISK_SCORE"] | None, Field(title="Filter Condition Type") + ] = "RISK_SCORE" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + risk_score_type: Annotated[ + Literal["HML"] | None, + Field(alias="riskScoreType", title="Filter Risk Score Type"), + ] = "HML" + risk_score_id: Annotated[str | None, Field(alias="riskScoreId")] = None + risk_score_label: Annotated[str | None, Field(alias="riskScoreLabel")] = None + values: Annotated[ + list[ApiFilterRiskScoreHMLConditionValue] | None, + Field(description="A list of HML options to include in the filter."), + ] = None + + +class ApiFilterRiskScorePercentConditionRiskScorePercentType(str, Enum): + """Determines the type of risk score percent condition to filter.""" + + MORE_THAN = "MORE_THAN" + LESS_THAN = "LESS_THAN" + BETWEEN = "BETWEEN" + CUSTOM_RANGE = "CUSTOM_RANGE" + UNSCORED = "UNSCORED" + + +class ApiFilterRiskScorePercentConditionApiFilterRiskScorePercentCondition(BaseItem): + type: Annotated[ + Literal["RISK_SCORE"] | None, Field(title="Filter Condition Type") + ] = "RISK_SCORE" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + risk_score_type: Annotated[ + Literal["PERCENT"] | None, + Field(alias="riskScoreType", title="Filter Risk Score Type"), + ] = "PERCENT" + risk_score_id: Annotated[str | None, Field(alias="riskScoreId")] = None + risk_score_label: Annotated[str | None, Field(alias="riskScoreLabel")] = None + risk_score_percent_type: Annotated[ + ApiFilterRiskScorePercentConditionRiskScorePercentType | None, + Field( + alias="riskScorePercentType", + description="Determines the type of risk score percent condition to filter.", + title="Filter Risk Score Percent Type", + ), + ] = None + + +class ApiFilterRiskScorePercentRangeConditionRiskScorePercentType(str, Enum): + BETWEEN = "BETWEEN" + CUSTOM_RANGE = "CUSTOM_RANGE" + + +class ApiFilterRiskScorePercentRangeConditionApiFilterRiskScorePercentRangeCondition( + BaseItem +): + type: Annotated[ + Literal["RISK_SCORE"] | None, Field(title="Filter Condition Type") + ] = "RISK_SCORE" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + risk_score_type: Annotated[ + Literal["PERCENT"] | None, + Field(alias="riskScoreType", title="Filter Risk Score Type"), + ] = "PERCENT" + risk_score_id: Annotated[str | None, Field(alias="riskScoreId")] = None + risk_score_label: Annotated[str | None, Field(alias="riskScoreLabel")] = None + risk_score_percent_type: Annotated[ + ApiFilterRiskScorePercentRangeConditionRiskScorePercentType | None, + Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), + ] = None + range_start: Annotated[ + int | None, + Field( + alias="rangeStart", + description="The start of the number range between 0 and 10,000.", + ), + ] = None + range_end: Annotated[ + int | None, + Field( + alias="rangeEnd", + description="The end of the number range between 0 and 10,000.", + ), + ] = None + + +class ApiFilterRiskScorePercentUnscoredConditionApiFilterRiskScorePercentUnscoredCondition( + BaseItem +): + type: Annotated[ + Literal["RISK_SCORE"] | None, Field(title="Filter Condition Type") + ] = "RISK_SCORE" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + risk_score_type: Annotated[ + Literal["PERCENT"] | None, + Field(alias="riskScoreType", title="Filter Risk Score Type"), + ] = "PERCENT" + risk_score_id: Annotated[str | None, Field(alias="riskScoreId")] = None + risk_score_label: Annotated[str | None, Field(alias="riskScoreLabel")] = None + risk_score_percent_type: Annotated[ + Literal["UNSCORED"] | None, + Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), + ] = "UNSCORED" + + +class ApiFilterRiskScorePercentValueConditionRiskScorePercentType(str, Enum): + MORE_THAN = "MORE_THAN" + LESS_THAN = "LESS_THAN" + + +class ApiFilterRiskScorePercentValueConditionApiFilterRiskScorePercentValueCondition( + BaseItem +): + type: Annotated[ + Literal["RISK_SCORE"] | None, Field(title="Filter Condition Type") + ] = "RISK_SCORE" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + risk_score_type: Annotated[ + Literal["PERCENT"] | None, + Field(alias="riskScoreType", title="Filter Risk Score Type"), + ] = "PERCENT" + risk_score_id: Annotated[str | None, Field(alias="riskScoreId")] = None + risk_score_label: Annotated[str | None, Field(alias="riskScoreLabel")] = None + risk_score_percent_type: Annotated[ + ApiFilterRiskScorePercentValueConditionRiskScorePercentType | None, + Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), + ] = None + value: Annotated[ + int | None, + Field( + description="A number between 0 and 10,000 used as part of a more than, or less than filter." + ), + ] = None + + +class ApiFilterSimpleMonetaryFlowConditionApiFilterSimpleMonetaryFlowCondition( + BaseItem +): + type: Annotated[ + Literal["MONETARY_FLOW"] | None, Field(title="Filter Condition Type") + ] = "MONETARY_FLOW" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + monetary_flow_type: Annotated[ + Literal["SIMPLE_FLOW"] | None, + Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), + ] = "SIMPLE_FLOW" + + +class ApiFilterSpecificMonetaryFlowConditionSpecificMonetaryFlowType(str, Enum): + """The type of specific monetary flow.""" + + SPECIFIC_VALUE = "SPECIFIC_VALUE" + MORE_THAN = "MORE_THAN" + BETWEEN = "BETWEEN" + + +class ApiFilterSpecificMonetaryFlowConditionApiFilterSpecificMonetaryFlowCondition( + BaseItem +): + type: Annotated[ + Literal["MONETARY_FLOW"] | None, Field(title="Filter Condition Type") + ] = "MONETARY_FLOW" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + monetary_flow_type: Annotated[ + Literal["SPECIFIC_FLOW"] | None, + Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), + ] = "SPECIFIC_FLOW" + credit_account: Annotated[ + ApiFilterAccountSelection | None, + Field( + alias="creditAccount", + description="The selected credit account in the monetary flow.", + ), + ] = None + debit_account: Annotated[ + ApiFilterAccountSelection | None, + Field( + alias="debitAccount", + description="The selected debit account in the monetary flow.", + ), + ] = None + specific_monetary_flow_type: Annotated[ + ApiFilterSpecificMonetaryFlowConditionSpecificMonetaryFlowType | None, + Field( + alias="specificMonetaryFlowType", + description="The type of specific monetary flow.", + title="Filter Specific Monetary Flow Type", + ), + ] = None + + +class ApiFilterSpecificMonetaryFlowRangeConditionApiFilterSpecificMonetaryFlowRangeCondition( + BaseItem +): + type: Annotated[ + Literal["MONETARY_FLOW"] | None, Field(title="Filter Condition Type") + ] = "MONETARY_FLOW" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + monetary_flow_type: Annotated[ + Literal["SPECIFIC_FLOW"] | None, + Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), + ] = "SPECIFIC_FLOW" + credit_account: Annotated[ + ApiFilterAccountSelection | None, Field(alias="creditAccount") + ] = None + debit_account: Annotated[ + ApiFilterAccountSelection | None, Field(alias="debitAccount") + ] = None + specific_monetary_flow_type: Annotated[ + Literal["BETWEEN"] | None, + Field( + alias="specificMonetaryFlowType", title="Filter Specific Monetary Flow Type" + ), + ] = "BETWEEN" + range_start: Annotated[ + int | None, + Field( + alias="rangeStart", + description="The start of the range, as a MONEY_100 formatted number to compare with entries.", + ), + ] = None + range_end: Annotated[ + int | None, + Field( + alias="rangeEnd", + description="The end of the range, as a MONEY_100 formatted number to compare with entries.", + ), + ] = None + + +class ApiFilterSpecificMonetaryFlowValueConditionSpecificMonetaryFlowType(str, Enum): + SPECIFIC_VALUE = "SPECIFIC_VALUE" + MORE_THAN = "MORE_THAN" + + +class ApiFilterSpecificMonetaryFlowValueConditionApiFilterSpecificMonetaryFlowValueCondition( + BaseItem +): + type: Annotated[ + Literal["MONETARY_FLOW"] | None, Field(title="Filter Condition Type") + ] = "MONETARY_FLOW" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + monetary_flow_type: Annotated[ + Literal["SPECIFIC_FLOW"] | None, + Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), + ] = "SPECIFIC_FLOW" + credit_account: Annotated[ + ApiFilterAccountSelection | None, Field(alias="creditAccount") + ] = None + debit_account: Annotated[ + ApiFilterAccountSelection | None, Field(alias="debitAccount") + ] = None + specific_monetary_flow_type: Annotated[ + ApiFilterSpecificMonetaryFlowValueConditionSpecificMonetaryFlowType | None, + Field( + alias="specificMonetaryFlowType", title="Filter Specific Monetary Flow Type" + ), + ] = None + value: Annotated[ + int | None, + Field(description="The MONEY_100 formatted number to compare with entries."), + ] = None + + +class ApiFilterStringArrayConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition13(BaseItem): + type: Annotated[ + Literal["STRING_ARRAY"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "STRING_ARRAY" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + values: Annotated[ + list[str] | None, + Field(description="The set of text values used to filter entries."), + ] = None + + +class ApiFilterStringConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterStringConditionApiFilterStringCondition13(BaseItem): + type: Annotated[ + Literal["STRING"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "STRING" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + value: Annotated[ + str | None, Field(description="The text value used to filter entries.") + ] = None + + +class ApiFilterTypeaheadEntryConditionType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterUpdateFilterType(str, Enum): + """The type of this filter. Determines in which context analyses can access it.""" + + LIBRARY = "LIBRARY" + ORGANIZATION = "ORGANIZATION" + PRIVATE = "PRIVATE" + ENGAGEMENT = "ENGAGEMENT" + + +class ApiTypeaheadEntry(BaseItem): + lookup_id: Annotated[ + str | None, + Field(alias="lookupId", description="The identifier of the selected entry."), + ] = None + display_name: Annotated[ + str | None, + Field( + alias="displayName", description="The display name of the selected entry." + ), + ] = None + hide_lookup_id: Annotated[ + bool | None, + Field( + alias="hideLookupId", + description="If `false` then the entry will be displayed with both the lookup ID and the display name. If `true` then only the display name will be used when displaying this entry.", + ), + ] = None + + +class ApiFilterConditionReadType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterGroupConditionReadType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterGroupConditionReadOperator(str, Enum): + """The operator to be applied to conditions within this group.""" + + AND = "AND" + OR = "OR" + + +class ApiFilterReadFilterType(str, Enum): + """The type of this filter. Determines in which context analyses can access it.""" + + LIBRARY = "LIBRARY" + ORGANIZATION = "ORGANIZATION" + PRIVATE = "PRIVATE" + ENGAGEMENT = "ENGAGEMENT" + + +class ApiFilterReadDataType(str, Enum): + """The intended data type for this filter.""" + + TRANSACTIONS = "TRANSACTIONS" + ENTRIES = "ENTRIES" + LIBRARY = "LIBRARY" + + +class ApiRiskRangeBoundsUpdate(BaseItem): + low_threshold: Annotated[ + int | None, + Field( + alias="lowThreshold", + description="The low threshold of the risk range.", + ge=0, + le=10000, + ), + ] = None + high_threshold: Annotated[ + int | None, + Field( + alias="highThreshold", + description="The high threshold of the risk range.", + ge=0, + le=10000, + ), + ] = None + + +class ApiRiskRangesUpdate(BaseItem): + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + low: Annotated[ + ApiRiskRangeBoundsUpdate | None, Field(description="The low range bounds.") + ] = None + medium: Annotated[ + ApiRiskRangeBoundsUpdate | None, Field(description="The medium range bounds.") + ] = None + high: Annotated[ + ApiRiskRangeBoundsUpdate | None, Field(description="The high range bounds.") + ] = None + name: Annotated[ + str | None, + Field(description="The name of the risk range.", max_length=80, min_length=0), + ] = None + description: Annotated[ + str | None, + Field( + description="The description of the risk range.", + max_length=250, + min_length=0, + ), + ] = None + + +class ApiRiskRangeBoundsRead(BaseItem): + low_threshold: Annotated[ + int | None, + Field( + alias="lowThreshold", + description="The low threshold of the risk range.", + ge=0, + le=10000, + ), + ] = None + high_threshold: Annotated[ + int | None, + Field( + alias="highThreshold", + description="The high threshold of the risk range.", + ge=0, + le=10000, + ), + ] = None + + +class ApiRiskRangesRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + low: Annotated[ + ApiRiskRangeBoundsRead | None, Field(description="The low range bounds.") + ] = None + medium: Annotated[ + ApiRiskRangeBoundsRead | None, Field(description="The medium range bounds.") + ] = None + high: Annotated[ + ApiRiskRangeBoundsRead | None, Field(description="The high range bounds.") + ] = None + system: Annotated[ + bool | None, + Field( + description="Indicates whether or not the risk ranges are a MindBridge system risk range." + ), + ] = None + library_id: Annotated[ + str | None, + Field( + alias="libraryId", + description="Identifies the library associated with this risk range.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", + description="Identifies the engagement associated with this risk range.", + ), + ] = None + analysis_type_id: Annotated[ + str | None, + Field( + alias="analysisTypeId", + description="Identifies the analysis type associated with this risk range.", + ), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the risk range.", max_length=80, min_length=0), + ] = None + description: Annotated[ + str | None, + Field( + description="The description of the risk range.", + max_length=250, + min_length=0, + ), + ] = None + + +class ApiOrganizationUpdate(BaseItem): + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the organization.", max_length=80, min_length=0), + ] = None + external_client_code: Annotated[ + str | None, + Field( + alias="externalClientCode", + description="The unique client ID applied to this organization.", + max_length=80, + min_length=0, + ), + ] = None + manager_user_ids: Annotated[ + list[str] | None, + Field( + alias="managerUserIds", + description="Identifies users assigned to the organization manager role.", + ), + ] = None + + +class ApiOrganizationRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the organization.", max_length=80, min_length=0), + ] = None + external_client_code: Annotated[ + str | None, + Field( + alias="externalClientCode", + description="The unique client ID applied to this organization.", + max_length=80, + min_length=0, + ), + ] = None + manager_user_ids: Annotated[ + list[str] | None, + Field( + alias="managerUserIds", + description="Identifies users assigned to the organization manager role.", + ), + ] = None + + +class ApiLibraryUpdateRiskScoreDisplay(str, Enum): + """Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.""" + + HIGH_MEDIUM_LOW = "HIGH_MEDIUM_LOW" + PERCENTAGE = "PERCENTAGE" + + +class ApiLibraryUpdate(BaseItem): + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + name: Annotated[ + str | None, + Field( + description="The current name of the library.", max_length=80, min_length=0 + ), + ] = None + warnings_dismissed: Annotated[ + bool | None, + Field( + alias="warningsDismissed", + description="When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI.", + ), + ] = None + analysis_type_ids: Annotated[ + list[str] | None, + Field( + alias="analysisTypeIds", + description="Identifies the analysis types used in the library.", + ), + ] = None + default_delimiter: Annotated[ + str | None, + Field( + alias="defaultDelimiter", + description="Identifies the default delimiter used in imported CSV files.", + ), + ] = None + control_point_selection_permission: Annotated[ + bool | None, + Field( + alias="controlPointSelectionPermission", + description="When set to `true`, control points can be added or removed within each risk score.", + ), + ] = None + control_point_weight_permission: Annotated[ + bool | None, + Field( + alias="controlPointWeightPermission", + description="When set to `true`, the weight of each control point can be adjusted within each risk score.", + ), + ] = None + control_point_settings_permission: Annotated[ + bool | None, + Field( + alias="controlPointSettingsPermission", + description="When set to `true`, individual control point settings can be adjusted within each risk score.", + ), + ] = None + risk_score_and_groups_selection_permission: Annotated[ + bool | None, + Field( + alias="riskScoreAndGroupsSelectionPermission", + description="When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited.", + ), + ] = None + risk_range_edit_permission: Annotated[ + bool | None, Field(alias="riskRangeEditPermission") + ] = None + risk_score_display: Annotated[ + ApiLibraryUpdateRiskScoreDisplay | None, + Field( + alias="riskScoreDisplay", + description="Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.", + ), + ] = None + archived: Annotated[ + bool | None, + Field( + description="Indicates whether or not the library is archived. Archived libraries cannot be selected when creating an engagement." + ), + ] = None + + +class ApiLibraryReadRiskScoreDisplay(str, Enum): + """Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.""" + + HIGH_MEDIUM_LOW = "HIGH_MEDIUM_LOW" + PERCENTAGE = "PERCENTAGE" + + +class ProblemReadProblemType(str, Enum): + """The type of problem.""" + + UNKNOWN = "UNKNOWN" + ILLEGAL_ARGUMENT = "ILLEGAL_ARGUMENT" + CANNOT_DELETE = "CANNOT_DELETE" + GREATER_VALUE_REQUIRED = "GREATER_VALUE_REQUIRED" + LESS_VALUE_REQUIRED = "LESS_VALUE_REQUIRED" + NON_UNIQUE_VALUE = "NON_UNIQUE_VALUE" + USER_EMAIL_ALREADY_EXISTS = "USER_EMAIL_ALREADY_EXISTS" + INCORRECT_DATA_TYPE = "INCORRECT_DATA_TYPE" + RATIO_CONVERSION_FAILED = "RATIO_CONVERSION_FAILED" + RISK_SCORE_FILTER_CONVERSION_FAILED = "RISK_SCORE_FILTER_CONVERSION_FAILED" + FILTER_CONVERSION_FAILED = "FILTER_CONVERSION_FAILED" + POPULATION_CONVERSION_FAILED = "POPULATION_CONVERSION_FAILED" + INSUFFICIENT_PERMISSION = "INSUFFICIENT_PERMISSION" + ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS = "ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS" + ACCOUNT_GROUPING_IN_USE_BY_LIBRARY = "ACCOUNT_GROUPING_IN_USE_BY_LIBRARY" + INVALID_ACCOUNT_GROUPING_FILE = "INVALID_ACCOUNT_GROUPING_FILE" + DELIVERY_FAILURE = "DELIVERY_FAILURE" + INVALID_STATE = "INVALID_STATE" + + +class ProblemReadSeverity(str, Enum): + """Indicates how severe the problem is.""" + + WARNING = "WARNING" + ERROR = "ERROR" + + +class ProblemRead(BaseItem): + problem_type: Annotated[ + ProblemReadProblemType | None, + Field(alias="problemType", description="The type of problem."), + ] = None + severity: Annotated[ + ProblemReadSeverity | None, + Field(description="Indicates how severe the problem is."), + ] = None + entity_type: Annotated[ + str | None, + Field( + alias="entityType", + description="The type of entity impacted by the problem.", + ), + ] = None + entity_id: Annotated[ + str | None, + Field( + alias="entityId", + description="Identifies the entity impacted by the problem.", + ), + ] = None + identifier: Annotated[ + str | None, Field(description="Identifies the field causing the problem.") + ] = None + values: Annotated[ + list[str] | None, + Field(description="Identifies the values causing the problem."), + ] = None + reason: Annotated[ + str | None, Field(description="The reason(s) why the problem occurred.") + ] = None + suggested_values: Annotated[ + list[str] | None, + Field( + alias="suggestedValues", + description="A suggested set of values to assist in resolving the problem.", + ), + ] = None + problem_count: Annotated[ + int | None, + Field( + alias="problemCount", + description="The total number of occurrences of this problem.", + ), + ] = None + + +class ApiFileManagerEntityUpdateType(str, Enum): + """Indicates whether the object is a DIRECTORY or a FILE.""" + + DIRECTORY = "DIRECTORY" + FILE = "FILE" + + +class ApiFileManagerEntityUpdate(BaseItem): + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + type: Annotated[ + ApiFileManagerEntityUpdateType | None, + Field(description="Indicates whether the object is a DIRECTORY or a FILE."), + ] = None + parent_file_manager_entity_id: Annotated[ + str | None, + Field( + alias="parentFileManagerEntityId", + description="Identifies the parent directory. If NULL, the directory is positioned at the root level.", + ), + ] = None + + +class ApiFileManagerFileUpdate(ApiFileManagerEntityUpdate): + name: Annotated[ + str | None, + Field(description="The current name of the file, excluding the extension."), + ] = None + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiFileManagerEntityReadType(str, Enum): + """Indicates whether the object is a DIRECTORY or a FILE.""" + + DIRECTORY = "DIRECTORY" + FILE = "FILE" + + +class ApiFileManagerEntityRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + type: Annotated[ + ApiFileManagerEntityReadType | None, + Field(description="Indicates whether the object is a DIRECTORY or a FILE."), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + parent_file_manager_entity_id: Annotated[ + str | None, + Field( + alias="parentFileManagerEntityId", + description="Identifies the parent directory. If NULL, the directory is positioned at the root level.", + ), + ] = None + + +class StatusEnum(str, Enum): + MODIFIED = "MODIFIED" + ROLLED_FORWARD = "ROLLED_FORWARD" + + +class ApiFileManagerFileRead(ApiFileManagerEntityRead): + original_name: Annotated[ + str | None, + Field( + alias="originalName", + description="The name of the file as it appeared when first imported, including the extension.", + ), + ] = None + name: Annotated[ + str | None, + Field(description="The current name of the file, excluding the extension."), + ] = None + extension: Annotated[ + str | None, Field(description="The suffix used at the end of the file.") + ] = None + status: Annotated[ + list[StatusEnum] | None, + Field(description="The status of the file as it appears in MindBridge."), + ] = None + file_info_id: Annotated[ + str | None, + Field(alias="fileInfoId", description="Identifies the associated file info."), + ] = None + engagement_id: Annotated[ + str, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiAccountingPeriodUpdateFrequency(str, Enum): + """The frequency with which your client's financial data is reported.""" + + ANNUAL = "ANNUAL" + SEMI_ANNUAL = "SEMI_ANNUAL" + QUARTERLY = "QUARTERLY" + MONTHLY = "MONTHLY" + THIRTEEN_PERIODS = "THIRTEEN_PERIODS" + + +class ApiAccountingPeriodUpdate(BaseItem): + fiscal_start_month: Annotated[ + int | None, + Field( + alias="fiscalStartMonth", + description="The month that the fiscal period begins.", + ), + ] = None + fiscal_start_day: Annotated[ + int | None, + Field( + alias="fiscalStartDay", + description="The date of the month that the fiscal period begins.", + ), + ] = None + frequency: Annotated[ + ApiAccountingPeriodUpdateFrequency | None, + Field( + description="The frequency with which your client's financial data is reported." + ), + ] = None + + +class ApiEngagementUpdate(BaseItem): + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the engagement.", max_length=80, min_length=0), + ] = None + billing_code: Annotated[ + str | None, + Field( + alias="billingCode", + description="A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage.", + ), + ] = None + accounting_period: Annotated[ + ApiAccountingPeriodUpdate | None, + Field( + alias="accountingPeriod", description="Details about the accounting period." + ), + ] = None + audit_period_end_date: Annotated[ + date | None, + Field( + alias="auditPeriodEndDate", + description="The last day of the occurring audit.", + ), + ] = None + accounting_package: Annotated[ + str | None, + Field( + alias="accountingPackage", + description="The ERP or financial management system that your client is using.", + ), + ] = None + industry: Annotated[ + str | None, + Field(description="The type of industry that your client operates within."), + ] = None + engagement_lead_id: Annotated[ + str | None, + Field( + alias="engagementLeadId", + description="Identifies the user who will lead the engagement.", + ), + ] = None + reporting_period_configuration_id: Annotated[ + str | None, + Field( + alias="reportingPeriodConfigurationId", + description="Identifies the associated reporting period configuration. If null the analyses use a standard reporting period.", + ), + ] = None + auditor_ids: Annotated[ + list[str] | None, + Field( + alias="auditorIds", + description="Identifies the users who will act as auditors in the engagement.", + ), + ] = None + + +class ApiAccountingPeriodReadFrequency(str, Enum): + """The frequency with which your client's financial data is reported.""" + + ANNUAL = "ANNUAL" + SEMI_ANNUAL = "SEMI_ANNUAL" + QUARTERLY = "QUARTERLY" + MONTHLY = "MONTHLY" + THIRTEEN_PERIODS = "THIRTEEN_PERIODS" + + +class ApiAccountingPeriodRead(BaseItem): + fiscal_start_month: Annotated[ + int | None, + Field( + alias="fiscalStartMonth", + description="The month that the fiscal period begins.", + ), + ] = None + fiscal_start_day: Annotated[ + int | None, + Field( + alias="fiscalStartDay", + description="The date of the month that the fiscal period begins.", + ), + ] = None + frequency: Annotated[ + ApiAccountingPeriodReadFrequency | None, + Field( + description="The frequency with which your client's financial data is reported." + ), + ] = None + + +class ApiEngagementRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + organization_id: Annotated[ + str | None, + Field(alias="organizationId", description="Identifies the organization."), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the engagement.", max_length=80, min_length=0), + ] = None + billing_code: Annotated[ + str | None, + Field( + alias="billingCode", + description="A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage.", + ), + ] = None + library_id: Annotated[ + str | None, Field(alias="libraryId", description="Identifies the library.") + ] = None + accounting_period: Annotated[ + ApiAccountingPeriodRead | None, + Field( + alias="accountingPeriod", description="Details about the accounting period." + ), + ] = None + audit_period_end_date: Annotated[ + date | None, + Field( + alias="auditPeriodEndDate", + description="The last day of the occurring audit.", + ), + ] = None + accounting_package: Annotated[ + str | None, + Field( + alias="accountingPackage", + description="The ERP or financial management system that your client is using.", + ), + ] = None + industry: Annotated[ + str | None, + Field(description="The type of industry that your client operates within."), + ] = None + engagement_lead_id: Annotated[ + str | None, + Field( + alias="engagementLeadId", + description="Identifies the user who will lead the engagement.", + ), + ] = None + reporting_period_configuration_id: Annotated[ + str | None, + Field( + alias="reportingPeriodConfigurationId", + description="Identifies the associated reporting period configuration. If null the analyses use a standard reporting period.", + ), + ] = None + auditor_ids: Annotated[ + list[str] | None, + Field( + alias="auditorIds", + description="Identifies the users who will act as auditors in the engagement.", + ), + ] = None + + +class ApiEngagementAccountGroupUpdate(BaseItem): + code: Annotated[ + str | None, Field(description="The account code for this account group.") + ] = None + mac_code: Annotated[ + str | None, + Field( + alias="macCode", description="The MAC code mapped to this account group." + ), + ] = None + hidden: Annotated[ + bool | None, + Field( + description="When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import." + ), + ] = None + alias: Annotated[ + str | None, + Field( + description="A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping." + ), + ] = None + + +class ApiAccountGroupErrorReadType(str, Enum): + """The type of account group error.""" + + ERROR_LOWEST_LEVEL_WITH_NO_MAC = "ERROR_LOWEST_LEVEL_WITH_NO_MAC" + ERROR_LOWEST_LEVEL_WITHOUT_LEVEL_4_MAC = "ERROR_LOWEST_LEVEL_WITHOUT_LEVEL_4_MAC" + ERROR_INCONSISTENT_SHEET_HIERARCHY = "ERROR_INCONSISTENT_SHEET_HIERARCHY" + + +class ApiAccountGroupErrorRead(BaseItem): + type: Annotated[ + ApiAccountGroupErrorReadType | None, + Field(description="The type of account group error."), + ] = None + arguments: Annotated[ + list[str] | None, + Field( + description="A list of values relevant to the type of account group error." + ), + ] = None + + +class ApiEngagementAccountGroupReadOrigin(str, Enum): + """The process that lead to the creation of the account group.""" + + IMPORTED_FROM_LIBRARY = "IMPORTED_FROM_LIBRARY" + IMPORTED_FROM_ENGAGEMENT = "IMPORTED_FROM_ENGAGEMENT" + ADDED_ON_ENGAGEMENT = "ADDED_ON_ENGAGEMENT" + + +class ApiEngagementAccountGroupRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + engagement_account_grouping_id: Annotated[ + str | None, + Field( + alias="engagementAccountGroupingId", + description="The unique identifier for the engagement account grouping that the engagement account group belongs to.", + ), + ] = None + code: Annotated[ + str | None, Field(description="The account code for this account group.") + ] = None + description: Annotated[ + dict[str, str] | None, + Field(description="A description of the account code for this account group."), + ] = None + lowest_level: Annotated[bool | None, Field(alias="lowestLevel")] = None + hierarchy: Annotated[ + list[str] | None, + Field(description="A list of the parent codes for this account group."), + ] = None + parent_code: Annotated[ + str | None, + Field( + alias="parentCode", description="The parent code for this account group." + ), + ] = None + mac_code: Annotated[ + str | None, + Field( + alias="macCode", description="The MAC code mapped to this account group." + ), + ] = None + account_tags: Annotated[ + list[str] | None, + Field( + alias="accountTags", + description="A list of account tags assigned to this account group.", + ), + ] = None + published_date: Annotated[ + AwareDatetime | None, + Field( + alias="publishedDate", + description="The date this account group was published. If not set, this account group is not published.\n\nPublished account groups cannot be updated.", + ), + ] = None + order_index: Annotated[ + int | None, + Field( + alias="orderIndex", + description="The order in which this account group is displayed, relative to other account groups with the same parent.", + ), + ] = None + errors: Annotated[ + list[ApiAccountGroupErrorRead] | None, + Field(description="A list of errors associated with this account group."), + ] = None + hidden: Annotated[ + bool | None, + Field( + description="When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import." + ), + ] = None + origin: Annotated[ + ApiEngagementAccountGroupReadOrigin | None, + Field( + description="The process that lead to the creation of the account group." + ), + ] = None + alias: Annotated[ + str | None, + Field( + description="A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping." + ), + ] = None + + +class ApiDatabricksAuthorizationUpdateAuthType(str, Enum): + """The authentication method to use. Possible values: PAT, OAUTH_M2M.""" + + PAT = "PAT" + OAUTH_M2_M = "OAUTH_M2M" + + +class ApiDatabricksAuthorizationUpdate(BaseItem): + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + connection_id: Annotated[ + str | None, + Field( + alias="connectionId", + description="The ID of the Connection this authorization belongs to.", + ), + ] = None + auth_type: Annotated[ + ApiDatabricksAuthorizationUpdateAuthType | None, + Field( + alias="authType", + description="The authentication method to use. Possible values: PAT, OAUTH_M2M.", + ), + ] = None + host: Annotated[ + str | None, Field(description="The Databricks server hostname.") + ] = None + port: Annotated[ + int | None, + Field( + description="The port number for the Databricks connection. Typically 443." + ), + ] = None + http_path: Annotated[ + str | None, + Field( + alias="httpPath", + description="The HTTP path for the Databricks SQL warehouse or cluster.", + ), + ] = None + access_token: Annotated[ + str | None, + Field( + alias="accessToken", + description="The personal access token for PAT authentication.", + ), + ] = None + client_id: Annotated[ + str | None, + Field( + alias="clientId", + description="The OAuth client ID for OAUTH_M2M authentication.", + ), + ] = None + client_secret: Annotated[ + str | None, + Field( + alias="clientSecret", + description="The OAuth client secret for OAUTH_M2M authentication.", + ), + ] = None + + +class ApiDatabricksAuthorizationReadAuthType(str, Enum): + """The authentication method to use. Possible values: PAT, OAUTH_M2M.""" + + PAT = "PAT" + OAUTH_M2_M = "OAUTH_M2M" + + +class ApiDatabricksAuthorizationRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + connection_id: Annotated[ + str | None, + Field( + alias="connectionId", + description="The ID of the Connection this authorization belongs to.", + ), + ] = None + auth_type: Annotated[ + ApiDatabricksAuthorizationReadAuthType | None, + Field( + alias="authType", + description="The authentication method to use. Possible values: PAT, OAUTH_M2M.", + ), + ] = None + host: Annotated[ + str | None, Field(description="The Databricks server hostname.") + ] = None + port: Annotated[ + int | None, + Field( + description="The port number for the Databricks connection. Typically 443." + ), + ] = None + http_path: Annotated[ + str | None, + Field( + alias="httpPath", + description="The HTTP path for the Databricks SQL warehouse or cluster.", + ), + ] = None + client_id: Annotated[ + str | None, + Field( + alias="clientId", + description="The OAuth client ID for OAUTH_M2M authentication.", + ), + ] = None + + +class ApiApiTokenUpdate(BaseItem): + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + name: Annotated[ + str | None, + Field( + description="The token record's name. This will also be used as the API Token User's name." + ), + ] = None + + +class ApiApiTokenReadPermission(str, Enum): + API_ORGANIZATIONS_READ = "api.organizations.read" + API_ORGANIZATIONS_WRITE = "api.organizations.write" + API_ORGANIZATIONS_DELETE = "api.organizations.delete" + API_ENGAGEMENTS_READ = "api.engagements.read" + API_ENGAGEMENTS_WRITE = "api.engagements.write" + API_ENGAGEMENTS_DELETE = "api.engagements.delete" + API_ANALYSES_READ = "api.analyses.read" + API_ANALYSES_WRITE = "api.analyses.write" + API_ANALYSES_DELETE = "api.analyses.delete" + API_ANALYSES_RUN = "api.analyses.run" + API_ANALYSIS_SOURCES_READ = "api.analysis-sources.read" + API_ANALYSIS_SOURCES_WRITE = "api.analysis-sources.write" + API_ANALYSIS_SOURCES_DELETE = "api.analysis-sources.delete" + API_FILE_MANAGER_READ = "api.file-manager.read" + API_FILE_MANAGER_WRITE = "api.file-manager.write" + API_FILE_MANAGER_DELETE = "api.file-manager.delete" + API_REPORTING_PERIOD_CONFIG_READ = "api.reporting-period-config.read" + API_REPORTING_PERIOD_CONFIG_WRITE = "api.reporting-period-config.write" + API_REPORTING_PERIOD_CONFIG_DELETE = "api.reporting-period-config.delete" + API_LIBRARIES_READ = "api.libraries.read" + API_LIBRARIES_WRITE = "api.libraries.write" + API_LIBRARIES_DELETE = "api.libraries.delete" + API_ACCOUNT_GROUPINGS_READ = "api.account-groupings.read" + API_ACCOUNT_GROUPINGS_WRITE = "api.account-groupings.write" + API_ACCOUNT_GROUPINGS_DELETE = "api.account-groupings.delete" + API_ENGAGEMENT_ACCOUNT_GROUPINGS_READ = "api.engagement-account-groupings.read" + API_ENGAGEMENT_ACCOUNT_GROUPINGS_WRITE = "api.engagement-account-groupings.write" + API_ENGAGEMENT_ACCOUNT_GROUPINGS_DELETE = "api.engagement-account-groupings.delete" + API_USERS_READ = "api.users.read" + API_USERS_WRITE = "api.users.write" + API_USERS_DELETE = "api.users.delete" + API_DATA_TABLES_READ = "api.data-tables.read" + API_API_TOKENS_READ = "api.api-tokens.read" + API_API_TOKENS_WRITE = "api.api-tokens.write" + API_API_TOKENS_DELETE = "api.api-tokens.delete" + API_TASKS_READ = "api.tasks.read" + API_TASKS_WRITE = "api.tasks.write" + API_TASKS_DELETE = "api.tasks.delete" + API_ADMIN_REPORTS_RUN = "api.admin-reports.run" + API_ANALYSIS_TYPES_READ = "api.analysis-types.read" + API_ANALYSIS_SOURCE_TYPES_READ = "api.analysis-source-types.read" + API_ANALYSIS_TYPE_CONFIGURATION_READ = "api.analysis-type-configuration.read" + API_ANALYSIS_TYPE_CONFIGURATION_WRITE = "api.analysis-type-configuration.write" + API_ANALYSIS_TYPE_CONFIGURATION_DELETE = "api.analysis-type-configuration.delete" + API_RISK_RANGES_READ = "api.risk-ranges.read" + API_RISK_RANGES_WRITE = "api.risk-ranges.write" + API_RISK_RANGES_DELETE = "api.risk-ranges.delete" + API_FILTERS_READ = "api.filters.read" + API_FILTERS_WRITE = "api.filters.write" + API_FILTERS_DELETE = "api.filters.delete" + API_FILE_INFOS_READ = "api.file-infos.read" + API_WEBHOOKS_READ = "api.webhooks.read" + API_WEBHOOKS_WRITE = "api.webhooks.write" + API_WEBHOOKS_DELETE = "api.webhooks.delete" + API_CONNECTIONS_READ = "api.connections.read" + API_CONNECTIONS_WRITE = "api.connections.write" + API_CONNECTIONS_DELETE = "api.connections.delete" + API_CONNECTION_DATA_SOURCES_READ = "api.connection-data-sources.read" + API_CONNECTION_DATA_SOURCES_WRITE = "api.connection-data-sources.write" + API_CONNECTION_DATA_SOURCES_DELETE = "api.connection-data-sources.delete" + SCIM_USER_READ = "scim.user.read" + SCIM_USER_WRITE = "scim.user.write" + SCIM_USER_DELETE = "scim.user.delete" + SCIM_USER_SCHEMA = "scim.user.schema" + + +class ApiApiTokenRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + user_id: Annotated[ + str | None, + Field( + alias="userId", + description="Identifies the API Token User associated with this token.", + ), + ] = None + name: Annotated[ + str | None, + Field( + description="The token record's name. This will also be used as the API Token User's name." + ), + ] = None + partial_token: Annotated[ + str | None, + Field( + alias="partialToken", + description="A partial representation of the API token.", + ), + ] = None + expiry: Annotated[ + AwareDatetime | None, + Field(description="The day on which the API token expires."), + ] = None + allowed_addresses: Annotated[ + list[str] | None, + Field( + alias="allowedAddresses", + description="Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.", + ), + ] = None + permissions: Annotated[ + list[ApiApiTokenReadPermission] | None, + Field( + description="The set of permissions that inform which endpoints this token is authorized to access." + ), + ] = None + + +class ApiRiskGroupFilterUpdate(BaseItem): + values: Annotated[ + list[str] | None, + Field(description="A list of accounts to include in the risk group."), + ] = None + + +class ApiRiskGroupUpdate(BaseItem): + disabled: Annotated[ + bool | None, Field(description="Indicates whether the risk group is disabled.") + ] = None + id: Annotated[ + str | None, + Field(description="The unique object identifier for this risk group."), + ] = None + selected_risk_range: Annotated[ + str | None, + Field( + alias="selectedRiskRange", + description="The selected risk range for the risk group. The selected value must be part of the applicable risk ranges.", + ), + ] = None + applicable_risk_ranges: Annotated[ + list[str] | None, + Field( + alias="applicableRiskRanges", + description="A list of risk ranges that are applicable to the risk group.", + ), + ] = None + filter: Annotated[ + ApiRiskGroupFilterUpdate | None, + Field( + description="A filter based on account hierarchy used to determine which entries are included in the risk group." + ), + ] = None + control_point_weights: Annotated[ + dict[str, int] | None, + Field( + alias="controlPointWeights", + description="A map of control point names to their weights within the risk group.", + ), + ] = None + + +class ApiRiskGroupFilterRead(BaseItem): + values: Annotated[ + list[str] | None, + Field(description="A list of accounts to include in the risk group."), + ] = None + + +class ApiRiskGroupReadRiskAssertionCategory(str, Enum): + """Identifies the risk assertion category of the risk group.""" + + GENERAL = "GENERAL" + ASSETS = "ASSETS" + LIABILITIES_EQUITY = "LIABILITIES_EQUITY" + PROFIT_LOSS = "PROFIT_LOSS" + LIABILITIES = "LIABILITIES" + EQUITY = "EQUITY" + REVENUE = "REVENUE" + EXPENSES = "EXPENSES" + + +class ApiRiskGroupRead(BaseItem): + disabled: Annotated[ + bool | None, Field(description="Indicates whether the risk group is disabled.") + ] = None + id: Annotated[ + str | None, + Field(description="The unique object identifier for this risk group."), + ] = None + system: Annotated[ + bool | None, + Field( + description="Indicates whether the risk group is a MindBridge system risk group." + ), + ] = None + analysis_type_id: Annotated[ + str | None, + Field( + alias="analysisTypeId", + description="Identifies the analysis type that the risk group is associated with.", + ), + ] = None + selected_risk_range: Annotated[ + str | None, + Field( + alias="selectedRiskRange", + description="The selected risk range for the risk group. The selected value must be part of the applicable risk ranges.", + ), + ] = None + applicable_risk_ranges: Annotated[ + list[str] | None, + Field( + alias="applicableRiskRanges", + description="A list of risk ranges that are applicable to the risk group.", + ), + ] = None + filter: Annotated[ + ApiRiskGroupFilterRead | None, + Field( + description="A filter based on account hierarchy used to determine which entries are included in the risk group." + ), + ] = None + control_point_weights: Annotated[ + dict[str, int] | None, + Field( + alias="controlPointWeights", + description="A map of control point names to their weights within the risk group.", + ), + ] = None + control_point_bundle_version: Annotated[ + str | None, + Field( + alias="controlPointBundleVersion", + description="The version of the control point bundle used in this risk group.", + ), + ] = None + name: Annotated[ + dict[str, str] | None, + Field( + description="A map of localized risk group names, keyed by language code." + ), + ] = None + description: Annotated[ + dict[str, str] | None, + Field( + description="A map of localized risk group descriptions, keyed by language code." + ), + ] = None + category: Annotated[ + dict[str, str] | None, + Field(description="Identifies the risk group's category."), + ] = None + risk_assertion_category: Annotated[ + ApiRiskGroupReadRiskAssertionCategory | None, + Field( + alias="riskAssertionCategory", + description="Identifies the risk assertion category of the risk group.", + ), + ] = None + + +class ApiAmbiguousColumnUpdate(BaseItem): + position: Annotated[ + int | None, Field(description="The position of the column with the resolution.") + ] = None + selected_format: Annotated[ + str | None, + Field( + alias="selectedFormat", + description="The data format to be used in case of ambiguity.", + ), + ] = None + + +class ApiAnalysisSourceUpdateTargetWorkflowState(str, Enum): + """The state that the current workflow will advance to.""" + + COMPLETED = "COMPLETED" + CANCELLED = "CANCELLED" + FAILED = "FAILED" + STARTED = "STARTED" + DETECTING_FORMAT = "DETECTING_FORMAT" + ANALYZING_COLUMNS = "ANALYZING_COLUMNS" + CHECKING_INTEGRITY = "CHECKING_INTEGRITY" + SCANNING_TRANSACTION_COMBINATIONS = "SCANNING_TRANSACTION_COMBINATIONS" + PARSING = "PARSING" + PARSING_ICEBERG = "PARSING_ICEBERG" + ANALYZING_EFFECTIVE_DATE_METRICS = "ANALYZING_EFFECTIVE_DATE_METRICS" + FORMAT_DETECTION_COMPLETED = "FORMAT_DETECTION_COMPLETED" + COLUMN_MAPPINGS_CONFIRMED = "COLUMN_MAPPINGS_CONFIRMED" + SETTINGS_CONFIRMED = "SETTINGS_CONFIRMED" + PREPARING_ICEBERG = "PREPARING_ICEBERG" + ANALYSIS_PERIOD_SELECTED = "ANALYSIS_PERIOD_SELECTED" + FUNDS_REVIEWED = "FUNDS_REVIEWED" + RUNNING = "RUNNING" + UNPACK_COMPLETE = "UNPACK_COMPLETE" + UPLOADED = "UPLOADED" + FORMAT_DETECTED = "FORMAT_DETECTED" + COLUMNS_ANALYZED = "COLUMNS_ANALYZED" + INTEGRITY_CHECKED = "INTEGRITY_CHECKED" + PARSED = "PARSED" + AUTHENTICATED = "AUTHENTICATED" + CONFIGURED = "CONFIGURED" + EFFECTIVE_DATE_METRICS_ANALYZED = "EFFECTIVE_DATE_METRICS_ANALYZED" + DATA_VALIDATION_CONFIRMED = "DATA_VALIDATION_CONFIRMED" + + +class ApiColumnMappingUpdate(BaseItem): + position: Annotated[ + int | None, Field(description="The position of the column mapping.") + ] = None + mindbridge_field: Annotated[ + str | None, + Field( + alias="mindbridgeField", + description="The MindBridge field that the data column was mapped to.", + ), + ] = None + additional_column_name: Annotated[ + str | None, + Field( + alias="additionalColumnName", + description="Additional columns of data that were added to the analysis.", + ), + ] = None + + +class ApiProposedAmbiguousColumnResolutionUpdate(BaseItem): + position: Annotated[ + int | None, + Field( + description="The position of the column with the proposed resolution.", ge=0 + ), + ] = None + selected_format: Annotated[ + str | None, + Field( + alias="selectedFormat", + description="The selected format of the proposed resolution.", + ), + ] = None + + +class ApiProposedColumnMappingUpdate(BaseItem): + column_position: Annotated[ + int | None, + Field( + alias="columnPosition", + description="The position of the proposed column mapping in the original input file.", + ), + ] = None + virtual_column_index: Annotated[ + int | None, + Field( + alias="virtualColumnIndex", + description="The position of the proposed virtual columns within the `proposedVirtualColumns` list.", + ), + ] = None + mindbridge_field: Annotated[ + str | None, + Field( + alias="mindbridgeField", + description="The MindBridge field that the data column should be mapped to.", + ), + ] = None + additional_column_name: Annotated[ + str | None, + Field( + alias="additionalColumnName", + description="Proposed additional columns of data to be added to the analysis.", + ), + ] = None + + +class ApiProposedVirtualColumnUpdateType(str, Enum): + """The type of proposed virtual column.""" + + DUPLICATE = "DUPLICATE" + SPLIT_BY_POSITION = "SPLIT_BY_POSITION" + SPLIT_BY_DELIMITER = "SPLIT_BY_DELIMITER" + JOIN = "JOIN" + + +class ApiProposedVirtualColumnUpdate(BaseItem): + name: Annotated[ + str | None, Field(description="The name of the proposed virtual column.") + ] = None + type: Annotated[ + ApiProposedVirtualColumnUpdateType | None, + Field(description="The type of proposed virtual column."), + ] = None + + +class ApiTransactionIdSelectionUpdateType(str, Enum): + """The type used when selecting a transaction ID.""" + + COMBINATION = "COMBINATION" + RUNNING_TOTAL = "RUNNING_TOTAL" + + +class ApiTransactionIdSelectionUpdate(BaseItem): + column_selection: Annotated[ + list[int] | None, + Field( + alias="columnSelection", + description="The columns included when selecting a transaction ID.", + ), + ] = None + virtual_column_selection: Annotated[ + list[int] | None, + Field( + alias="virtualColumnSelection", + description="The virtual columns included when selecting a transaction ID.", + ), + ] = None + type: Annotated[ + ApiTransactionIdSelectionUpdateType | None, + Field(description="The type used when selecting a transaction ID."), + ] = None + apply_smart_splitter: Annotated[ + bool | None, + Field( + alias="applySmartSplitter", + description="Indicates whether or not the Smart Splitter was run when selecting a transaction ID.", + ), + ] = None + + +class ApiVirtualColumnUpdateType(str, Enum): + """The type of virtual column.""" + + DUPLICATE = "DUPLICATE" + SPLIT_BY_POSITION = "SPLIT_BY_POSITION" + SPLIT_BY_DELIMITER = "SPLIT_BY_DELIMITER" + JOIN = "JOIN" + + +class ApiVirtualColumnUpdate(BaseItem): + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + name: Annotated[ + str | None, Field(description="The name of the virtual column.") + ] = None + type: Annotated[ + ApiVirtualColumnUpdateType | None, + Field(description="The type of virtual column."), + ] = None + + +class ApiAsyncResultReadType(str, Enum): + """Indicates the type of job being run.""" + + ANALYSIS_RUN = "ANALYSIS_RUN" + ANALYSIS_SOURCE_INGESTION = "ANALYSIS_SOURCE_INGESTION" + ADMIN_REPORT = "ADMIN_REPORT" + DATA_TABLE_EXPORT = "DATA_TABLE_EXPORT" + ANALYSIS_ROLL_FORWARD = "ANALYSIS_ROLL_FORWARD" + GDPDU_UNPACK_JOB = "GDPDU_UNPACK_JOB" + ACCOUNT_GROUPING_EXPORT = "ACCOUNT_GROUPING_EXPORT" + ACCOUNT_MAPPING_EXPORT = "ACCOUNT_MAPPING_EXPORT" + DATA_TRANSFORMATION_JOB = "DATA_TRANSFORMATION_JOB" + CONNECTION_TEST = "CONNECTION_TEST" + CONNECTION_TABLES = "CONNECTION_TABLES" + DATA_TABLE = "DATA_TABLE" + + +class ApiAsyncResultReadStatus(str, Enum): + """Indicates the current state of the job.""" + + IN_PROGRESS = "IN_PROGRESS" + COMPLETE = "COMPLETE" + ERROR = "ERROR" + + +class ApiAsyncResultReadEntityType(str, Enum): + """Identifies the entity type used in the job.""" + + ORGANIZATION = "ORGANIZATION" + ENGAGEMENT = "ENGAGEMENT" + ANALYSIS = "ANALYSIS" + ANALYSIS_RESULT = "ANALYSIS_RESULT" + ANALYSIS_SOURCE = "ANALYSIS_SOURCE" + FILE_RESULT = "FILE_RESULT" + GDPDU_UNPACK_JOB = "GDPDU_UNPACK_JOB" + ACCOUNT_GROUPING = "ACCOUNT_GROUPING" + ENGAGEMENT_ACCOUNT_GROUPING = "ENGAGEMENT_ACCOUNT_GROUPING" + FILE_MANAGER_FILE = "FILE_MANAGER_FILE" + CONNECTION_TEST_RESULT = "CONNECTION_TEST_RESULT" + CONNECTION_TABLES_RESULT = "CONNECTION_TABLES_RESULT" + DATA_TABLE = "DATA_TABLE" + + +class ApiAsyncResultRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + type: Annotated[ + ApiAsyncResultReadType | None, + Field(description="Indicates the type of job being run."), + ] = None + status: Annotated[ + ApiAsyncResultReadStatus | None, + Field(description="Indicates the current state of the job."), + ] = None + entity_id: Annotated[ + str | None, + Field(alias="entityId", description="Identifies the entity used in the job."), + ] = None + entity_type: Annotated[ + ApiAsyncResultReadEntityType | None, + Field( + alias="entityType", + description="Identifies the entity type used in the job.", + ), + ] = None + error: Annotated[ + str | None, Field(description="The reason why the async job failed.") + ] = None + error_message: Annotated[str | None, Field(alias="errorMessage")] = None + + +class ApiAnalysisPeriodUpdate(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + start_date: Annotated[ + date | None, + Field( + alias="startDate", description="The first day of the period under analysis." + ), + ] = None + interim_as_at_date: Annotated[ + date | None, + Field( + alias="interimAsAtDate", + description="The last day of the interim period under analysis.", + ), + ] = None + end_date: Annotated[ + date | None, + Field( + alias="endDate", description="The last day of the period under analysis." + ), + ] = None + + +class ApiAnalysisUpdate(BaseItem): + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the analysis.", max_length=80, min_length=0), + ] = None + archived: Annotated[ + bool | None, + Field(description="Indicates whether or not the analysis has been archived."), + ] = None + analysis_periods: Annotated[ + list[ApiAnalysisPeriodUpdate] | None, + Field( + alias="analysisPeriods", + description="Details about the specific analysis periods under audit.", + ), + ] = None + currency_code: Annotated[ + str | None, + Field( + alias="currencyCode", + description="The currency to be displayed across the analysis results.", + ), + ] = None + reporting_period_configuration_id: Annotated[ + str | None, + Field( + alias="reportingPeriodConfigurationId", + description="Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period.", + ), + ] = None + accounting_period: Annotated[ + ApiAccountingPeriodUpdate | None, + Field( + alias="accountingPeriod", + description="Details about the accounting period used in this analysis. If null the analysis uses a custom reporting period.", + ), + ] = None + + +class ApiAnalysisImportantColumnRead(BaseItem): + column_name: Annotated[ + str | None, + Field( + alias="columnName", + description="The name of the column as it appears in the imported file.", + ), + ] = None + field: Annotated[ + str | None, Field(description="The name of the additional data column.") + ] = None + + +class ApiAnalysisPeriodGapRead(BaseItem): + analysis_period_id: Annotated[ + str | None, + Field(alias="analysisPeriodId", description="Identifies the analysis period."), + ] = None + previous_analysis_period_id: Annotated[ + str | None, + Field( + alias="previousAnalysisPeriodId", + description="Identifies the previous analysis period relevant to the current analysis period.", + ), + ] = None + days: Annotated[ + int | None, + Field(description="The number of days between two analysis periods."), + ] = None + + +class ApiAnalysisPeriodRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + start_date: Annotated[ + date | None, + Field( + alias="startDate", description="The first day of the period under analysis." + ), + ] = None + interim_as_at_date: Annotated[ + date | None, + Field( + alias="interimAsAtDate", + description="The last day of the interim period under analysis.", + ), + ] = None + end_date: Annotated[ + date | None, + Field( + alias="endDate", description="The last day of the period under analysis." + ), + ] = None + + +class ApiAnalysisRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + analysis_type_id: Annotated[ + str | None, + Field(alias="analysisTypeId", description="Identifies the type of analysis."), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the analysis.", max_length=80, min_length=0), + ] = None + interim: Annotated[ + bool | None, + Field( + description="Indicates whether or not the analysis is using an interim time frame." + ), + ] = None + archived: Annotated[ + bool | None, + Field(description="Indicates whether or not the analysis has been archived."), + ] = None + converted: Annotated[ + bool | None, + Field( + description="Indicates whether or not an interim analysis time frame has been converted to a full analysis time frame." + ), + ] = None + periodic: Annotated[ + bool | None, + Field( + description="Indicates whether or not the analysis is using a periodic time frame." + ), + ] = None + important_columns: Annotated[ + list[ApiAnalysisImportantColumnRead] | None, + Field( + alias="importantColumns", + description="Additional data columns that can be used when importing additional data.", + ), + ] = None + analysis_periods: Annotated[ + list[ApiAnalysisPeriodRead] | None, + Field( + alias="analysisPeriods", + description="Details about the specific analysis periods under audit.", + ), + ] = None + analysis_period_gaps: Annotated[ + list[ApiAnalysisPeriodGapRead] | None, + Field( + alias="analysisPeriodGaps", + description="Details about the gap in time between two analysis periods.", + ), + ] = None + currency_code: Annotated[ + str | None, + Field( + alias="currencyCode", + description="The currency to be displayed across the analysis results.", + ), + ] = None + latest_analysis_result_id: Annotated[ + str | None, Field(alias="latestAnalysisResultId") + ] = None + reference_id: Annotated[ + str | None, + Field( + alias="referenceId", + description="A reference ID to identify the analysis.", + max_length=256, + min_length=0, + ), + ] = None + reporting_period_configuration_id: Annotated[ + str | None, + Field( + alias="reportingPeriodConfigurationId", + description="Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period.", + ), + ] = None + accounting_period: Annotated[ + ApiAccountingPeriodRead | None, + Field( + alias="accountingPeriod", + description="Details about the accounting period used in this analysis. If null the analysis uses a custom reporting period.", + ), + ] = None + + +class ApiAccountMappingUpdate(BaseItem): + version: Annotated[ + int | None, + Field(description="The data integrity version, to ensure data consistency."), + ] = None + code: Annotated[ + str | None, + Field(description="The account grouping code mapped to this account."), + ] = None + account_tags: Annotated[ + list[str] | None, + Field( + alias="accountTags", + description="A list of account tags associated with this account.", + ), + ] = None + + +class ApiAccountMappingReadStatus(str, Enum): + """Indicates the current status of the account mapping.""" + + MANUAL = "MANUAL" + MAC_CODE = "MAC_CODE" + MODIFIED_MAC = "MODIFIED_MAC" + UNVERIFIED = "UNVERIFIED" + VERIFIED = "VERIFIED" + INFERRED = "INFERRED" + UNMAPPED = "UNMAPPED" + USED = "USED" + UNUSED = "UNUSED" + + +class ApiAccountMappingRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="The data integrity version, to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + account: Annotated[ + str | None, + Field(description="The account name as provided in the source data."), + ] = None + account_description: Annotated[ + str | None, + Field( + alias="accountDescription", + description="The description of the account as provided in the source data.", + ), + ] = None + code: Annotated[ + str | None, + Field(description="The account grouping code mapped to this account."), + ] = None + status: Annotated[ + ApiAccountMappingReadStatus | None, + Field(description="Indicates the current status of the account mapping."), + ] = None + used_by_analysis_sources: Annotated[ + list[str] | None, + Field( + alias="usedByAnalysisSources", + description="A list of analysis sources that use this account.", + ), + ] = None + fund_id: Annotated[ + str | None, + Field(alias="fundId", description="The fund that includes this account."), + ] = None + account_tags: Annotated[ + list[str] | None, + Field( + alias="accountTags", + description="A list of account tags associated with this account.", + ), + ] = None + + +class ApiAccountGroupUpdate(BaseItem): + mac_code: Annotated[ + str | None, + Field( + alias="macCode", description="The MAC code mapped to this account group." + ), + ] = None + account_tags: Annotated[ + list[str] | None, + Field( + alias="accountTags", + description="A list of account tags assigned to this account group.", + ), + ] = None + + +class ApiAccountGroupRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + account_grouping_id: Annotated[ + str | None, + Field( + alias="accountGroupingId", + description="The unique identifier for the account grouping that the account group belongs to.", + ), + ] = None + code: Annotated[ + str | None, Field(description="The account code for this account group.") + ] = None + description: Annotated[ + dict[str, str] | None, + Field(description="A description of the account code for this account group."), + ] = None + lowest_level: Annotated[bool | None, Field(alias="lowestLevel")] = None + hierarchy: Annotated[ + list[str] | None, + Field(description="A list of the parent codes for this account group."), + ] = None + parent_code: Annotated[ + str | None, + Field( + alias="parentCode", description="The parent code for this account group." + ), + ] = None + mac_code: Annotated[ + str | None, + Field( + alias="macCode", description="The MAC code mapped to this account group." + ), + ] = None + account_tags: Annotated[ + list[str] | None, + Field( + alias="accountTags", + description="A list of account tags assigned to this account group.", + ), + ] = None + published_date: Annotated[ + AwareDatetime | None, + Field( + alias="publishedDate", + description="The date this account group was published. If not set, this account group is not published.\n\nPublished account groups cannot be updated.", + ), + ] = None + order_index: Annotated[ + int | None, + Field( + alias="orderIndex", + description="The order in which this account group is displayed, relative to other account groups with the same parent.", + ), + ] = None + errors: Annotated[ + list[ApiAccountGroupErrorRead] | None, + Field(description="A list of errors associated with this account group."), + ] = None + + +class ApiAccountGroupingUpdatePublishStatus(str, Enum): + """The current status of the account grouping.""" + + DRAFT = "DRAFT" + UNPUBLISHED_CHANGES = "UNPUBLISHED_CHANGES" + PUBLISHED = "PUBLISHED" + + +class ApiAccountGroupingUpdate(BaseItem): + version: Annotated[ + int | None, + Field(description="The data integrity version, to ensure data consistency."), + ] = None + name: Annotated[ + dict[str, str] | None, Field(description="The name of the account grouping.") + ] = None + archived: Annotated[ + bool | None, Field(description="When `true`, the account grouping is archived.") + ] = None + publish_status: Annotated[ + ApiAccountGroupingUpdatePublishStatus | None, + Field( + alias="publishStatus", + description="The current status of the account grouping.", + ), + ] = None + + +class ApiAccountGroupingReadPublishStatus(str, Enum): + """The current status of the account grouping.""" + + DRAFT = "DRAFT" + UNPUBLISHED_CHANGES = "UNPUBLISHED_CHANGES" + PUBLISHED = "PUBLISHED" + + +class ApiAccountGroupingRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="The data integrity version, to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + name: Annotated[ + dict[str, str] | None, Field(description="The name of the account grouping.") + ] = None + code_display_name: Annotated[ + dict[str, str] | None, + Field( + alias="codeDisplayName", + description="The name of the account code hierarchy system used within the dataset.", + ), + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The delimiter character used to separate each category level in an account grouping code." + ), + ] = None + mac: Annotated[ + bool | None, + Field( + description="When `true`, the account grouping is based on the MAC code system." + ), + ] = None + system: Annotated[ + bool | None, + Field( + description="When `true`, the account grouping is a system account grouping and cannot be modified." + ), + ] = None + archived: Annotated[ + bool | None, Field(description="When `true`, the account grouping is archived.") + ] = None + published_date: Annotated[ + AwareDatetime | None, + Field( + alias="publishedDate", + description="The date that the account grouping was published.", + ), + ] = None + publish_status: Annotated[ + ApiAccountGroupingReadPublishStatus | None, + Field( + alias="publishStatus", + description="The current status of the account grouping.", + ), + ] = None + + +class ApiWebhookCreateEvent(str, Enum): + EXPORT_READY = "EXPORT_READY" + FILE_MANAGER_FILE_ADDED = "FILE_MANAGER_FILE_ADDED" + INGESTION_COMPLETE = "INGESTION_COMPLETE" + INGESTION_FAILED = "INGESTION_FAILED" + INGESTION_ANALYSIS_COMPLETE = "INGESTION_ANALYSIS_COMPLETE" + INGESTION_ANALYSIS_FAILED = "INGESTION_ANALYSIS_FAILED" + UNMAPPED_ACCOUNTS_DETECTED = "UNMAPPED_ACCOUNTS_DETECTED" + ENGAGEMENT_CREATED = "ENGAGEMENT_CREATED" + ENGAGEMENT_UPDATED = "ENGAGEMENT_UPDATED" + ENGAGEMENT_DELETED = "ENGAGEMENT_DELETED" + ANALYSIS_CREATED = "ANALYSIS_CREATED" + ANALYSIS_UPDATED = "ANALYSIS_UPDATED" + ANALYSIS_DELETED = "ANALYSIS_DELETED" + ANALYSIS_ARCHIVED = "ANALYSIS_ARCHIVED" + ANALYSIS_UNARCHIVED = "ANALYSIS_UNARCHIVED" + USER_INVITED = "USER_INVITED" + USER_STATUS_UPDATED = "USER_STATUS_UPDATED" + USER_ROLE_UPDATED = "USER_ROLE_UPDATED" + USER_DELETED = "USER_DELETED" + USER_LOGIN = "USER_LOGIN" + + +class ApiWebhookCreateStatus(str, Enum): + """The current status of the webhook.""" + + ACTIVE = "ACTIVE" + INACTIVE = "INACTIVE" + + +class ApiWebhookCreate(BaseItem): + name: Annotated[str | None, Field(description="The name of the webhook.")] = None + url: Annotated[ + str | None, + Field(description="The URL to which the webhook will send notifications."), + ] = None + technical_contact_id: Annotated[ + str | None, + Field( + alias="technicalContactId", + description="A reference to an administrative user used to inform system administrators of issues with the webhooks.", + ), + ] = None + events: Annotated[ + list[ApiWebhookCreateEvent] | None, + Field( + description="A list of events that will trigger this webhook.", + max_length=2147483647, + min_length=1, + ), + ] = None + status: Annotated[ + ApiWebhookCreateStatus | None, + Field(description="The current status of the webhook."), + ] = None + + +class SortnullRead(BaseItem): + sorted: bool | None = None + unsorted: bool | None = None + empty: bool | None = None + + +class ApiWebhookEventLogReadStatus(str, Enum): + IN_PROGRESS = "IN_PROGRESS" + COMPLETED = "COMPLETED" + FAILED = "FAILED" + FAILED_PERMANENTLY = "FAILED_PERMANENTLY" + DISCONNECTED = "DISCONNECTED" + + +class ApiWebhookEventLogRead(BaseItem): + id: str | None = None + version: int | None = None + creation_date: Annotated[AwareDatetime | None, Field(alias="creationDate")] = None + last_modified_date: Annotated[ + AwareDatetime | None, Field(alias="lastModifiedDate") + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, Field(alias="createdUserInfo") + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, Field(alias="lastModifiedUserInfo") + ] = None + status: ApiWebhookEventLogReadStatus | None = None + webhook_id: Annotated[str | None, Field(alias="webhookId")] = None + attempt_start_date: Annotated[ + AwareDatetime | None, Field(alias="attemptStartDate") + ] = None + url: str | None = None + event_type: Annotated[str | None, Field(alias="eventType")] = None + request_headers: Annotated[ + dict[str, list[str]] | None, Field(alias="requestHeaders") + ] = None + request_body: Annotated[str | None, Field(alias="requestBody")] = None + response_status_code: Annotated[int | None, Field(alias="responseStatusCode")] = ( + None + ) + response_headers: Annotated[ + dict[str, list[str]] | None, Field(alias="responseHeaders") + ] = None + response_time_sec: Annotated[float | None, Field(alias="responseTimeSec")] = None + retry_count: Annotated[int | None, Field(alias="retryCount")] = None + request_id: Annotated[str | None, Field(alias="requestId")] = None + + +class ApiUserCreateRole(str, Enum): + """The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)""" + + ROLE_ADMIN = "ROLE_ADMIN" + ROLE_ORGANIZATION_ADMIN = "ROLE_ORGANIZATION_ADMIN" + ROLE_USER = "ROLE_USER" + ROLE_CLIENT = "ROLE_CLIENT" + ROLE_MINDBRIDGE_SUPPORT = "ROLE_MINDBRIDGE_SUPPORT" + ROLE_USER_ADMIN = "ROLE_USER_ADMIN" + + +class ApiUserCreate(BaseItem): + email: Annotated[str | None, Field(description="The user's email address.")] = None + role: Annotated[ + ApiUserCreateRole | None, + Field( + description="The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)" + ), + ] = None + + +class ApiTransactionIdPreviewIndicatorReadRating(str, Enum): + """The quality of the indicator as rated by MindBridge.""" + + BLOCK = "BLOCK" + FAIL = "FAIL" + POOR = "POOR" + NEUTRAL = "NEUTRAL" + GOOD = "GOOD" + + +class ApiTransactionIdPreviewRowRead(BaseItem): + transaction_id: Annotated[ + str | None, + Field( + alias="transactionId", + description="Identifies the transaction ID for this transaction.", + ), + ] = None + balance: Annotated[ + int | None, Field(description="The balance of the transaction.") + ] = None + entry_count: Annotated[ + int | None, + Field( + alias="entryCount", + description="The number of entries that appear within the transaction.", + ), + ] = None + detail_rows: Annotated[ + list[dict[str, Any]] | None, + Field( + alias="detailRows", + description="The set of entries that appear within the transaction.", + ), + ] = None + + +class ApiTransactionIdPreviewReadType(str, Enum): + """The type used when selecting a transaction ID.""" + + COMBINATION = "COMBINATION" + RUNNING_TOTAL = "RUNNING_TOTAL" + + +class ApiTransactionIdPreviewReadOverallRating(str, Enum): + """The quality of the transaction ID as rated by MindBridge.""" + + BLOCK = "BLOCK" + FAIL = "FAIL" + POOR = "POOR" + NEUTRAL = "NEUTRAL" + GOOD = "GOOD" + + +class ApiTaskCreateStatus(str, Enum): + """The current state of the task.""" + + OPEN = "OPEN" + NORMAL = "NORMAL" + COMPLETED = "COMPLETED" + DISMISSED = "DISMISSED" + RESOLVED = "RESOLVED" + + +class ApiTaskCreateType(str, Enum): + """The type of entry this task is associated with.""" + + ENTRY = "ENTRY" + TRANSACTION = "TRANSACTION" + AP_ENTRY = "AP_ENTRY" + AR_ENTRY = "AR_ENTRY" + AP_OUTSTANDING_ENTRY = "AP_OUTSTANDING_ENTRY" + AR_OUTSTANDING_ENTRY = "AR_OUTSTANDING_ENTRY" + TRA_ENTRY = "TRA_ENTRY" + SUBLEDGER_ENTRY = "SUBLEDGER_ENTRY" + + +class ApiTaskCreateTaskApprovalStatus(str, Enum): + PENDING = "PENDING" + REJECTED = "REJECTED" + APPROVED = "APPROVED" + + +class ApiTaskCreate(BaseItem): + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + analysis_result_id: Annotated[str | None, Field(alias="analysisResultId")] = None + row_id: Annotated[ + int | None, Field(alias="rowId", description="Identifies the associated entry.") + ] = None + transaction_id: Annotated[ + int | None, + Field( + alias="transactionId", description="Identifies the associated transaction." + ), + ] = None + status: Annotated[ + ApiTaskCreateStatus | None, + Field(description="The current state of the task.", title="Task Status"), + ] = None + assigned_id: Annotated[ + str | None, + Field( + alias="assignedId", description="Identifies the user assigned to this task." + ), + ] = None + description: Annotated[ + str | None, Field(description="A description of the task.") + ] = None + sample: Annotated[ + str | None, Field(description="Which sample this task is a part of.") + ] = None + audit_areas: Annotated[ + list[str] | None, + Field( + alias="auditAreas", + description="Which audit areas this task is associated with.", + ), + ] = None + assertions: Annotated[ + list[str] | None, + Field(description="Which assertions this task is associated with."), + ] = None + type: Annotated[ + ApiTaskCreateType | None, + Field( + description="The type of entry this task is associated with.", + title="Task Type", + ), + ] = None + task_approval_status: Annotated[ + ApiTaskCreateTaskApprovalStatus | None, + Field(alias="taskApprovalStatus", title="Task Approval Status"), + ] = None + due_date: Annotated[date | None, Field(alias="dueDate")] = None + tags: list[str] | None = None + + +class ApiTaskCommentCreate(BaseItem): + comment_text: Annotated[ + str | None, Field(alias="commentText", description="The text of the comment.") + ] = None + + +class ApiTaskHistoryEntryReadFieldType(str, Enum): + ARRAY = "ARRAY" + ISO_DATE = "ISO_DATE" + OBJECT = "OBJECT" + STRING = "STRING" + INTEGER = "INTEGER" + + +class ApiTaskHistoryEntryRead(BaseItem): + field_name: Annotated[str | None, Field(alias="fieldName")] = None + field_type: Annotated[ + ApiTaskHistoryEntryReadFieldType | None, Field(alias="fieldType") + ] = None + previous_value: Annotated[Any | None, Field(alias="previousValue")] = None + new_value: Annotated[Any | None, Field(alias="newValue")] = None + previous_value_string: Annotated[str | None, Field(alias="previousValueString")] = ( + None + ) + new_value_string: Annotated[str | None, Field(alias="newValueString")] = None + + +class ApiTaskHistoryReadOperation(str, Enum): + """The operation that was performed on the task.""" + + CREATE = "CREATE" + UPDATE = "UPDATE" + COMPLETED = "COMPLETED" + DELETE = "DELETE" + COMMENT = "COMMENT" + ASSIGNMENT = "ASSIGNMENT" + STATUS_CHANGE = "STATUS_CHANGE" + MARKASNORMAL = "MARKASNORMAL" + + +class ApiTaskHistoryRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + date_time: Annotated[ + AwareDatetime | None, + Field( + alias="dateTime", + description="The date and time that the task history was created.", + ), + ] = None + user_name: Annotated[ + str | None, + Field( + alias="userName", + description="Name of the user associated with the history record", + ), + ] = None + task_id: Annotated[ + str | None, Field(alias="taskId", description="Identifies the associated task.") + ] = None + user_id: Annotated[ + str | None, + Field( + alias="userId", + description="The id of the user associated with the history record", + ), + ] = None + operation: Annotated[ + ApiTaskHistoryReadOperation | None, + Field(description="The operation that was performed on the task."), + ] = None + changes: Annotated[ + list[ApiTaskHistoryEntryRead] | None, + Field(description="A list of changes that were made to the task."), + ] = None + + +class ApiFilterConditionCreateType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterGroupConditionCreateType(str, Enum): + """The type of condition.""" + + GROUP = "GROUP" + STRING = "STRING" + STRING_ARRAY = "STRING_ARRAY" + CONTROL_POINT = "CONTROL_POINT" + ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" + TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" + POPULATIONS = "POPULATIONS" + RISK_SCORE = "RISK_SCORE" + MONETARY_FLOW = "MONETARY_FLOW" + MONEY = "MONEY" + MATERIALITY = "MATERIALITY" + NUMERICAL = "NUMERICAL" + DATE = "DATE" + + +class ApiFilterGroupConditionCreateOperator(str, Enum): + """The operator to be applied to conditions within this group.""" + + AND = "AND" + OR = "OR" + + +class ApiFilterCreateFilterType(str, Enum): + """The type of this filter. Determines in which context analyses can access it.""" + + LIBRARY = "LIBRARY" + ORGANIZATION = "ORGANIZATION" + PRIVATE = "PRIVATE" + ENGAGEMENT = "ENGAGEMENT" + + +class ApiFilterCreateDataType(str, Enum): + """The intended data type for this filter.""" + + TRANSACTIONS = "TRANSACTIONS" + ENTRIES = "ENTRIES" + LIBRARY = "LIBRARY" + + +class ApiFilterValidateRequestCreate(BaseItem): + filter_id: Annotated[str | None, Field(alias="filterId")] = None + data_table_id: Annotated[str | None, Field(alias="dataTableId")] = None + + +class ApiRiskRangeBoundsCreate(BaseItem): + low_threshold: Annotated[ + int | None, + Field( + alias="lowThreshold", + description="The low threshold of the risk range.", + ge=0, + le=10000, + ), + ] = None + high_threshold: Annotated[ + int | None, + Field( + alias="highThreshold", + description="The high threshold of the risk range.", + ge=0, + le=10000, + ), + ] = None + + +class ApiRiskRangesCreate(BaseItem): + low: Annotated[ + ApiRiskRangeBoundsCreate | None, Field(description="The low range bounds.") + ] = None + medium: Annotated[ + ApiRiskRangeBoundsCreate | None, Field(description="The medium range bounds.") + ] = None + high: Annotated[ + ApiRiskRangeBoundsCreate | None, Field(description="The high range bounds.") + ] = None + library_id: Annotated[ + str | None, + Field( + alias="libraryId", + description="Identifies the library associated with this risk range.", + ), + ] = None + analysis_type_id: Annotated[ + str | None, + Field( + alias="analysisTypeId", + description="Identifies the analysis type associated with this risk range.", + ), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the risk range.", max_length=80, min_length=0), + ] = None + description: Annotated[ + str | None, + Field( + description="The description of the risk range.", + max_length=250, + min_length=0, + ), + ] = None + + +class ApiMonthlyReportingPeriodCreate(BaseItem): + period_number: Annotated[int | None, Field(alias="periodNumber")] = None + quarter_number: Annotated[int | None, Field(alias="quarterNumber")] = None + year_label: Annotated[str | None, Field(alias="yearLabel")] = None + start_date: Annotated[date | None, Field(alias="startDate")] = None + end_date: Annotated[date | None, Field(alias="endDate")] = None + + +class ApiWeeklyReportingPeriodCreate(BaseItem): + week_number: Annotated[int | None, Field(alias="weekNumber")] = None + year_label: Annotated[str | None, Field(alias="yearLabel")] = None + start_date: Annotated[date | None, Field(alias="startDate")] = None + end_date: Annotated[date | None, Field(alias="endDate")] = None + + +class ApiMonthlyReportingPeriodRead(BaseItem): + period_number: Annotated[int | None, Field(alias="periodNumber")] = None + quarter_number: Annotated[int | None, Field(alias="quarterNumber")] = None + year_label: Annotated[str | None, Field(alias="yearLabel")] = None + start_date: Annotated[date | None, Field(alias="startDate")] = None + end_date: Annotated[date | None, Field(alias="endDate")] = None + + +class ApiReportingPeriodConfigurationReadStatus(str, Enum): + UPLOADED = "UPLOADED" + VALIDATING = "VALIDATING" + FAILED = "FAILED" + COMPLETED = "COMPLETED" + + +class ApiWeeklyReportingPeriodRead(BaseItem): + week_number: Annotated[int | None, Field(alias="weekNumber")] = None + year_label: Annotated[str | None, Field(alias="yearLabel")] = None + start_date: Annotated[date | None, Field(alias="startDate")] = None + end_date: Annotated[date | None, Field(alias="endDate")] = None + + +class ApiOrganizationCreate(BaseItem): + name: Annotated[ + str | None, + Field(description="The name of the organization.", max_length=80, min_length=0), + ] = None + external_client_code: Annotated[ + str | None, + Field( + alias="externalClientCode", + description="The unique client ID applied to this organization.", + max_length=80, + min_length=0, + ), + ] = None + manager_user_ids: Annotated[ + list[str] | None, + Field( + alias="managerUserIds", + description="Identifies users assigned to the organization manager role.", + ), + ] = None + + +class ApiLibraryCreateRiskScoreDisplay(str, Enum): + """Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.""" + + HIGH_MEDIUM_LOW = "HIGH_MEDIUM_LOW" + PERCENTAGE = "PERCENTAGE" + + +class ApiLibraryCreate(BaseItem): + name: Annotated[ + str | None, + Field( + description="The current name of the library.", max_length=80, min_length=0 + ), + ] = None + based_on_library_id: Annotated[ + str | None, + Field( + alias="basedOnLibraryId", + description="Identifies the library that the new library is based on. This may be a user-created library or a MindBridge system library.", + ), + ] = None + convert_settings: Annotated[ + bool | None, + Field( + alias="convertSettings", + description="Indicates whether or not settings from the selected base library should be converted for use with the selected account grouping.", + ), + ] = None + warnings_dismissed: Annotated[ + bool | None, + Field( + alias="warningsDismissed", + description="When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI.", + ), + ] = None + account_grouping_id: Annotated[ + str | None, + Field( + alias="accountGroupingId", + description="Identifies the account grouping used.", + ), + ] = None + analysis_type_ids: Annotated[ + list[str] | None, + Field( + alias="analysisTypeIds", + description="Identifies the analysis types used in the library.", + ), + ] = None + default_delimiter: Annotated[ + str | None, + Field( + alias="defaultDelimiter", + description="Identifies the default delimiter used in imported CSV files.", + ), + ] = None + control_point_selection_permission: Annotated[ + bool | None, + Field( + alias="controlPointSelectionPermission", + description="When set to `true`, control points can be added or removed within each risk score.", + ), + ] = None + control_point_weight_permission: Annotated[ + bool | None, + Field( + alias="controlPointWeightPermission", + description="When set to `true`, the weight of each control point can be adjusted within each risk score.", + ), + ] = None + control_point_settings_permission: Annotated[ + bool | None, + Field( + alias="controlPointSettingsPermission", + description="When set to `true`, individual control point settings can be adjusted within each risk score.", + ), + ] = None + risk_score_and_groups_selection_permission: Annotated[ + bool | None, + Field( + alias="riskScoreAndGroupsSelectionPermission", + description="When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited.", + ), + ] = None + risk_range_edit_permission: Annotated[ + bool | None, Field(alias="riskRangeEditPermission") + ] = None + risk_score_display: Annotated[ + ApiLibraryCreateRiskScoreDisplay | None, + Field( + alias="riskScoreDisplay", + description="Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.", + ), + ] = None + + +class ApiJsonTableRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="The data integrity version, to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + headers: list[str] | None = None + current_size: Annotated[ + int | None, + Field( + alias="currentSize", + description="The combined size of all data that has been appended to this JSON table.", + ), + ] = None + + +class ApiFileExportRead(BaseItem): + id: Annotated[ + str | None, Field(description="The unique file export identifier.") + ] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the file export.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the file export.", + ), + ] = None + file_name: Annotated[ + str | None, Field(alias="fileName", description="The name of the file.") + ] = None + size: Annotated[int | None, Field(description="The size of the file.")] = None + + +class ApiFileManagerDirectoryCreate(BaseItem): + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + parent_file_manager_entity_id: Annotated[ + str | None, + Field( + alias="parentFileManagerEntityId", + description="Identifies the parent directory. If NULL, the directory is positioned at the root level.", + ), + ] = None + name: Annotated[str | None, Field(description="The name of the directory.")] = None + + +class FileMergeMappingCreate(BaseItem): + file_manager_file_id: Annotated[ + str | None, + Field( + alias="fileManagerFileId", description="The file manager file id to merge" + ), + ] = None + columns: Annotated[ + list[int] | None, + Field(description="Columns to include from this file, in order"), + ] = None + + +class CreateApiFileManagerFileFromJsonTableRequestCreate(BaseItem): + name: Annotated[ + str | None, + Field(description="The name of the newly created file manager file."), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", + description="Identifies the associated engagement to import the formatted file into.", + ), + ] = None + parent_file_manager_entity_id: Annotated[ + str | None, + Field( + alias="parentFileManagerEntityId", + description="Identifies the file manager entity that will be the parent of the newly created file.", + ), + ] = None + json_table_id: Annotated[ + str | None, + Field( + alias="jsonTableId", + description="Identifies the JSON table to be formatted into a file.", + ), + ] = None + + +class ApiCsvConfigurationCreate(BaseItem): + delimiter: Annotated[ + str | None, Field(description="The character used to separate entries.") + ] = None + quote: Annotated[ + str | None, Field(description="The character used to encapsulate an entry.") + ] = None + quote_escape: Annotated[ + str | None, + Field( + alias="quoteEscape", + description="The character used to escape the quote character.", + ), + ] = None + quote_escape_escape: Annotated[ + str | None, + Field( + alias="quoteEscapeEscape", + description="The character used to escape the quote escape character.", + ), + ] = None + + +class ApiDataTableQuerySortOrderCreateDirection(str, Enum): + """How the column will be sorted.""" + + ASC = "ASC" + DESC = "DESC" + + +class ApiDataTableQuerySortOrderCreate(BaseItem): + field: Annotated[str | None, Field(description="The data table column.")] = None + direction: Annotated[ + ApiDataTableQuerySortOrderCreateDirection | None, + Field(description="How the column will be sorted."), + ] = None + + +class ShieldQueryTermCreateOperatorShieldQueryTermCreateOperatorEnum(str, Enum): + FIELD_EQ = "$eq" + FIELD_NE = "$ne" + FIELD_GT = "$gt" + FIELD_GTE = "$gte" + FIELD_LT = "$lt" + FIELD_LTE = "$lte" + FIELD_CONTAINS = "$contains" + FIELD_NCONTAINS = "$ncontains" + FIELD_IN = "$in" + FIELD_NIN = "$nin" + FIELD_FLAGS = "$flags" + FIELD_KEYWORD_PREFIX = "$keyword_prefix" + FIELD_KEYWORD_PREFIX_NOT = "$keyword_prefix_not" + FIELD_ISUBSTR = "$isubstr" + FIELD_IPREFIX = "$iprefix" + FIELD_NIPREFIX = "$niprefix" + FIELD_BETWEEN = "$between" + FIELD_NBETWEEN = "$nbetween" + FIELD_AND = "$and" + FIELD_OR = "$or" + FIELD_POPULATION = "$population" + FIELD_NOT_POPULATION = "$not_population" + + +ShieldQueryTermCreateOperator = RootModel[ + ShieldQueryTermCreateOperatorShieldQueryTermCreateOperatorEnum | None +] + + +class ShieldQueryTermCreate(BaseItem): + operator: ShieldQueryTermCreateOperator | None = None + + +class ApiFileManagerFileCreate(BaseItem): + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + parent_file_manager_entity_id: Annotated[ + str | None, + Field( + alias="parentFileManagerEntityId", + description="Identifies the parent directory. If NULL, the directory is positioned at the root level.", + ), + ] = None + name: Annotated[ + str | None, + Field(description="The current name of the file, excluding the extension."), + ] = None + + +class CreateApiFileManagerFileFromChunkedFileRequestCreate(BaseItem): + chunked_file_id: Annotated[str | None, Field(alias="chunkedFileId")] = None + api_file_manager_file: Annotated[ + ApiFileManagerFileCreate | None, Field(alias="apiFileManagerFile") + ] = None + + +class ApiBasicMetricsReadState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiColumnDateTimeFormatRead(BaseItem): + selected: Annotated[ + bool | None, + Field( + description="If true, this format was selected during column mapping as the correct format for this column." + ), + ] = None + custom_format_pattern: Annotated[ + str | None, + Field( + alias="customFormatPattern", description="The pattern of this date format." + ), + ] = None + sample_raw_values: Annotated[ + list[str] | None, + Field(alias="sampleRawValues", description="A list of values in this column."), + ] = None + sample_converted_values: Annotated[ + list[AwareDatetime] | None, + Field( + alias="sampleConvertedValues", + description="A list of date time values derived by parsing the text using this format.", + ), + ] = None + + +class ApiCountMetricsReadState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiCurrencyFormatRead(BaseItem): + decimal_character: Annotated[ + str | None, + Field( + alias="decimalCharacter", + description="The character used as a decimal separator.", + ), + ] = None + non_decimal_delimiters: Annotated[ + list[str] | None, + Field( + alias="nonDecimalDelimiters", + description="Non decimal separator special characters, including currency and grouping characters.", + ), + ] = None + ambiguous_delimiters: Annotated[ + list[str] | None, + Field( + alias="ambiguousDelimiters", + description="A list of possible delimiter characters, if multiple possible candidates are available.", + ), + ] = None + example: Annotated[str | None, Field(description="An example value.")] = None + + +class ApiDataPreviewRead(BaseItem): + row: Annotated[ + int | None, Field(description="The row number within the table.") + ] = None + column: Annotated[ + int | None, Field(description="The column index within the row.") + ] = None + data: Annotated[ + str | None, Field(description="The value within the target row.") + ] = None + + +class ApiDataTypeMetricsReadState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiDataTypeMetricsReadDetectedType(str, Enum): + TEXT = "TEXT" + NUMBER = "NUMBER" + DATE = "DATE" + UNKNOWN = "UNKNOWN" + FLOAT64 = "FLOAT64" + + +class ApiDataTypeMetricsReadDominantType(str, Enum): + """The type determined to be the most prevalent in this column.""" + + TEXT = "TEXT" + NUMBER = "NUMBER" + DATE = "DATE" + UNKNOWN = "UNKNOWN" + FLOAT64 = "FLOAT64" + + +class ApiDensityMetricsReadState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiDensityMetricsRead(BaseItem): + state: Annotated[ + ApiDensityMetricsReadState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreviewRead] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( + None + ) + density: Annotated[ + float | None, + Field( + description="The percentage density of values against blanks, represented as decimal between 1 and 0." + ), + ] = None + blanks: Annotated[int | None, Field(description="The number of blank values.")] = ( + None + ) + + +class ApiDistinctValueMetricsReadState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiDistinctValueMetricsRead(BaseItem): + state: Annotated[ + ApiDistinctValueMetricsReadState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreviewRead] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( + None + ) + + +class ApiFileInfoType(str, Enum): + """The type of file info entity.""" + + FILE_INFO = "FILE_INFO" + TABULAR_FILE_INFO = "TABULAR_FILE_INFO" + + +class ApiFileInfoFormat(str, Enum): + """The grouped format that was detected.""" + + QUICKBOOKS_JOURNAL = "QUICKBOOKS_JOURNAL" + QUICKBOOKS_JOURNAL_2024 = "QUICKBOOKS_JOURNAL_2024" + QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT = ( + "QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT" + ) + SAGE50_LEDGER = "SAGE50_LEDGER" + SAGE50_TRANSACTIONS = "SAGE50_TRANSACTIONS" + CCH_ACCOUNT_LIST = "CCH_ACCOUNT_LIST" + MS_DYNAMICS_JOURNAL = "MS_DYNAMICS_JOURNAL" + SAGE50_UK = "SAGE50_UK" + + +class ApiFileInfo(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + type: Annotated[ + ApiFileInfoType | None, + Field(description="The type of file info entity.", title="File Info Type"), + ] = None + name: Annotated[ + str | None, Field(description="The name of the underlying file or table.") + ] = None + format_detected: Annotated[ + bool | None, + Field( + alias="formatDetected", + description="When `true` a known grouped format was detected.", + ), + ] = None + format: Annotated[ + ApiFileInfoFormat | None, + Field(description="The grouped format that was detected."), + ] = None + + +class ApiFileInfoReadType(str, Enum): + """The type of file info entity.""" + + FILE_INFO = "FILE_INFO" + TABULAR_FILE_INFO = "TABULAR_FILE_INFO" + + +class ApiFileInfoReadFormat(str, Enum): + """The grouped format that was detected.""" + + QUICKBOOKS_JOURNAL = "QUICKBOOKS_JOURNAL" + QUICKBOOKS_JOURNAL_2024 = "QUICKBOOKS_JOURNAL_2024" + QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT = ( + "QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT" + ) + SAGE50_LEDGER = "SAGE50_LEDGER" + SAGE50_TRANSACTIONS = "SAGE50_TRANSACTIONS" + CCH_ACCOUNT_LIST = "CCH_ACCOUNT_LIST" + MS_DYNAMICS_JOURNAL = "MS_DYNAMICS_JOURNAL" + SAGE50_UK = "SAGE50_UK" + + +class ApiFileInfoRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + type: Annotated[ + ApiFileInfoReadType | None, + Field(description="The type of file info entity.", title="File Info Type"), + ] = None + name: Annotated[ + str | None, Field(description="The name of the underlying file or table.") + ] = None + format_detected: Annotated[ + bool | None, + Field( + alias="formatDetected", + description="When `true` a known grouped format was detected.", + ), + ] = None + format: Annotated[ + ApiFileInfoReadFormat | None, + Field(description="The grouped format that was detected."), + ] = None + + +class ApiHistogramMetricsReadState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiHistogramMetricsRead(BaseItem): + state: Annotated[ + ApiHistogramMetricsReadState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreviewRead] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( + None + ) + histogram: Annotated[ + dict[str, int] | None, + Field( + description="A map of the number of columns to the number of rows with that many columns, in the case of unevenColumnsMetrics." + ), + ] = None + + +class ApiOverallDataTypeMetricsReadState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiOverallDataTypeMetricsRead(BaseItem): + state: Annotated[ + ApiOverallDataTypeMetricsReadState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreviewRead] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + cell_type_counts: Annotated[ + dict[str, int] | None, + Field( + alias="cellTypeCounts", + description="A map of data types to the number of cells in the table of that data type.", + ), + ] = None + column_type_counts: Annotated[ + dict[str, int] | None, + Field( + alias="columnTypeCounts", + description="A map of data types to the number of columns in the table of that data type.", + ), + ] = None + total_records: Annotated[ + int | None, + Field(alias="totalRecords", description="The total number of values."), + ] = None + blank_records: Annotated[ + int | None, + Field(alias="blankRecords", description="The number of blank values."), + ] = None + column_count: Annotated[ + int | None, Field(alias="columnCount", description="The number of columns.") + ] = None + total_rows: Annotated[ + int | None, Field(alias="totalRows", description="The total number of rows.") + ] = None + + +class ApiSheetMetricsReadState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiSheetMetricsRead(BaseItem): + state: Annotated[ + ApiSheetMetricsReadState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreviewRead] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( + None + ) + sheet_names: Annotated[ + list[str] | None, + Field( + alias="sheetNames", + description="A list of sheet names within the underlying Excel file.", + ), + ] = None + valid_sheets: Annotated[ + list[str] | None, + Field( + alias="validSheets", + description="A list of usable sheet names within the underlying Excel file.", + ), + ] = None + + +class RangeBigDecimalRead(BaseItem): + min: float | None = None + max: float | None = None + + +class RangeIntegerRead(BaseItem): + min: int | None = None + max: int | None = None + + +class RangeZonedDateTimeRead(BaseItem): + min: AwareDatetime | None = None + max: AwareDatetime | None = None + + +class ApiAccountingPeriodCreateFrequency(str, Enum): + """The frequency with which your client's financial data is reported.""" + + ANNUAL = "ANNUAL" + SEMI_ANNUAL = "SEMI_ANNUAL" + QUARTERLY = "QUARTERLY" + MONTHLY = "MONTHLY" + THIRTEEN_PERIODS = "THIRTEEN_PERIODS" + + +class ApiAccountingPeriodCreate(BaseItem): + fiscal_start_month: Annotated[ + int | None, + Field( + alias="fiscalStartMonth", + description="The month that the fiscal period begins.", + ), + ] = None + fiscal_start_day: Annotated[ + int | None, + Field( + alias="fiscalStartDay", + description="The date of the month that the fiscal period begins.", + ), + ] = None + frequency: Annotated[ + ApiAccountingPeriodCreateFrequency | None, + Field( + description="The frequency with which your client's financial data is reported." + ), + ] = None + + +class ApiEngagementCreate(BaseItem): + organization_id: Annotated[ + str | None, + Field(alias="organizationId", description="Identifies the organization."), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the engagement.", max_length=80, min_length=0), + ] = None + billing_code: Annotated[ + str | None, + Field( + alias="billingCode", + description="A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage.", + ), + ] = None + library_id: Annotated[ + str | None, Field(alias="libraryId", description="Identifies the library.") + ] = None + accounting_period: Annotated[ + ApiAccountingPeriodCreate | None, + Field( + alias="accountingPeriod", description="Details about the accounting period." + ), + ] = None + audit_period_end_date: Annotated[ + date | None, + Field( + alias="auditPeriodEndDate", + description="The last day of the occurring audit.", + ), + ] = None + accounting_package: Annotated[ + str | None, + Field( + alias="accountingPackage", + description="The ERP or financial management system that your client is using.", + ), + ] = None + industry: Annotated[ + str | None, + Field(description="The type of industry that your client operates within."), + ] = None + engagement_lead_id: Annotated[ + str | None, + Field( + alias="engagementLeadId", + description="Identifies the user who will lead the engagement.", + ), + ] = None + settings_based_on_engagement_id: Annotated[ + str | None, + Field( + alias="settingsBasedOnEngagementId", + description="Identifies the engagement that the settings are based on.", + ), + ] = None + reporting_period_configuration_id: Annotated[ + str | None, + Field( + alias="reportingPeriodConfigurationId", + description="Identifies the associated reporting period configuration. If null the analyses use a standard reporting period.", + ), + ] = None + auditor_ids: Annotated[ + list[str] | None, + Field( + alias="auditorIds", + description="Identifies the users who will act as auditors in the engagement.", + ), + ] = None + + +class ApiEngagementAccountGroupCreate(BaseItem): + engagement_account_grouping_id: Annotated[ + str | None, + Field( + alias="engagementAccountGroupingId", + description="The unique identifier for the engagement account grouping that the engagement account group belongs to.", + ), + ] = None + code: Annotated[ + str | None, Field(description="The account code for this account group.") + ] = None + description: Annotated[ + dict[str, str] | None, + Field(description="A description of the account code for this account group."), + ] = None + parent_code: Annotated[ + str | None, + Field( + alias="parentCode", description="The parent code for this account group." + ), + ] = None + mac_code: Annotated[ + str | None, + Field( + alias="macCode", description="The MAC code mapped to this account group." + ), + ] = None + hidden: Annotated[ + bool | None, + Field( + description="When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import." + ), + ] = None + alias: Annotated[ + str | None, + Field( + description="A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping." + ), + ] = None + + +class ApiAsyncResultType(str, Enum): + """Indicates the type of job being run.""" + + ANALYSIS_RUN = "ANALYSIS_RUN" + ANALYSIS_SOURCE_INGESTION = "ANALYSIS_SOURCE_INGESTION" + ADMIN_REPORT = "ADMIN_REPORT" + DATA_TABLE_EXPORT = "DATA_TABLE_EXPORT" + ANALYSIS_ROLL_FORWARD = "ANALYSIS_ROLL_FORWARD" + GDPDU_UNPACK_JOB = "GDPDU_UNPACK_JOB" + ACCOUNT_GROUPING_EXPORT = "ACCOUNT_GROUPING_EXPORT" + ACCOUNT_MAPPING_EXPORT = "ACCOUNT_MAPPING_EXPORT" + DATA_TRANSFORMATION_JOB = "DATA_TRANSFORMATION_JOB" + CONNECTION_TEST = "CONNECTION_TEST" + CONNECTION_TABLES = "CONNECTION_TABLES" + DATA_TABLE = "DATA_TABLE" + + +class ApiAsyncResultStatus(str, Enum): + """Indicates the current state of the job.""" + + IN_PROGRESS = "IN_PROGRESS" + COMPLETE = "COMPLETE" + ERROR = "ERROR" + + +class ApiAsyncResultEntityType(str, Enum): + """Identifies the entity type used in the job.""" + + ORGANIZATION = "ORGANIZATION" + ENGAGEMENT = "ENGAGEMENT" + ANALYSIS = "ANALYSIS" + ANALYSIS_RESULT = "ANALYSIS_RESULT" + ANALYSIS_SOURCE = "ANALYSIS_SOURCE" + FILE_RESULT = "FILE_RESULT" + GDPDU_UNPACK_JOB = "GDPDU_UNPACK_JOB" + ACCOUNT_GROUPING = "ACCOUNT_GROUPING" + ENGAGEMENT_ACCOUNT_GROUPING = "ENGAGEMENT_ACCOUNT_GROUPING" + FILE_MANAGER_FILE = "FILE_MANAGER_FILE" + CONNECTION_TEST_RESULT = "CONNECTION_TEST_RESULT" + CONNECTION_TABLES_RESULT = "CONNECTION_TABLES_RESULT" + DATA_TABLE = "DATA_TABLE" + + +class ApiUserInfo(BaseItem): + user_id: Annotated[ + str | None, Field(alias="userId", description="Identifies the user.") + ] = None + user_name: Annotated[ + str | None, Field(alias="userName", description="The name of the user.") + ] = None + + +class ApiEngagementAccountGroupingRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="The data integrity version, to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", + description="The unique identifier of the engagement that this engagement account grouping belongs to.", + ), + ] = None + account_grouping_id: Annotated[ + str | None, + Field( + alias="accountGroupingId", + description="The unique identifier of the account grouping on which this is based.", + ), + ] = None + name: Annotated[ + dict[str, str] | None, Field(description="The name of the account grouping.") + ] = None + code_display_name: Annotated[ + dict[str, str] | None, + Field( + alias="codeDisplayName", + description="The name of the account code hierarchy system used within the dataset.", + ), + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The delimiter character used to separate each category level in an account grouping code." + ), + ] = None + + +class ApiDatabricksAuthorizationCreateAuthType(str, Enum): + """The authentication method to use. Possible values: PAT, OAUTH_M2M.""" + + PAT = "PAT" + OAUTH_M2_M = "OAUTH_M2M" + + +class ApiDatabricksAuthorizationCreate(BaseItem): + connection_id: Annotated[ + str | None, + Field( + alias="connectionId", + description="The ID of the Connection this authorization belongs to.", + ), + ] = None + auth_type: Annotated[ + ApiDatabricksAuthorizationCreateAuthType | None, + Field( + alias="authType", + description="The authentication method to use. Possible values: PAT, OAUTH_M2M.", + ), + ] = None + host: Annotated[ + str | None, Field(description="The Databricks server hostname.") + ] = None + port: Annotated[ + int | None, + Field( + description="The port number for the Databricks connection. Typically 443." + ), + ] = None + http_path: Annotated[ + str | None, + Field( + alias="httpPath", + description="The HTTP path for the Databricks SQL warehouse or cluster.", + ), + ] = None + access_token: Annotated[ + str | None, + Field( + alias="accessToken", + description="The personal access token for PAT authentication.", + ), + ] = None + client_id: Annotated[ + str | None, + Field( + alias="clientId", + description="The OAuth client ID for OAUTH_M2M authentication.", + ), + ] = None + client_secret: Annotated[ + str | None, + Field( + alias="clientSecret", + description="The OAuth client secret for OAUTH_M2M authentication.", + ), + ] = None + + +class ProblemProblemType(str, Enum): + """The type of problem.""" + + UNKNOWN = "UNKNOWN" + ILLEGAL_ARGUMENT = "ILLEGAL_ARGUMENT" + CANNOT_DELETE = "CANNOT_DELETE" + GREATER_VALUE_REQUIRED = "GREATER_VALUE_REQUIRED" + LESS_VALUE_REQUIRED = "LESS_VALUE_REQUIRED" + NON_UNIQUE_VALUE = "NON_UNIQUE_VALUE" + USER_EMAIL_ALREADY_EXISTS = "USER_EMAIL_ALREADY_EXISTS" + INCORRECT_DATA_TYPE = "INCORRECT_DATA_TYPE" + RATIO_CONVERSION_FAILED = "RATIO_CONVERSION_FAILED" + RISK_SCORE_FILTER_CONVERSION_FAILED = "RISK_SCORE_FILTER_CONVERSION_FAILED" + FILTER_CONVERSION_FAILED = "FILTER_CONVERSION_FAILED" + POPULATION_CONVERSION_FAILED = "POPULATION_CONVERSION_FAILED" + INSUFFICIENT_PERMISSION = "INSUFFICIENT_PERMISSION" + ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS = "ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS" + ACCOUNT_GROUPING_IN_USE_BY_LIBRARY = "ACCOUNT_GROUPING_IN_USE_BY_LIBRARY" + INVALID_ACCOUNT_GROUPING_FILE = "INVALID_ACCOUNT_GROUPING_FILE" + DELIVERY_FAILURE = "DELIVERY_FAILURE" + INVALID_STATE = "INVALID_STATE" + + +class ProblemSeverity(str, Enum): + """Indicates how severe the problem is.""" + + WARNING = "WARNING" + ERROR = "ERROR" + + +class Problem(BaseItem): + problem_type: Annotated[ + ProblemProblemType | None, + Field(alias="problemType", description="The type of problem."), + ] = None + severity: Annotated[ + ProblemSeverity | None, + Field(description="Indicates how severe the problem is."), + ] = None + entity_type: Annotated[ + str | None, + Field( + alias="entityType", + description="The type of entity impacted by the problem.", + ), + ] = None + entity_id: Annotated[ + str | None, + Field( + alias="entityId", + description="Identifies the entity impacted by the problem.", + ), + ] = None + identifier: Annotated[ + str | None, Field(description="Identifies the field causing the problem.") + ] = None + values: Annotated[ + list[str] | None, + Field(description="Identifies the values causing the problem."), + ] = None + reason: Annotated[ + str | None, Field(description="The reason(s) why the problem occurred.") + ] = None + suggested_values: Annotated[ + list[str] | None, + Field( + alias="suggestedValues", + description="A suggested set of values to assist in resolving the problem.", + ), + ] = None + problem_count: Annotated[ + int | None, + Field( + alias="problemCount", + description="The total number of occurrences of this problem.", + ), + ] = None + + +class ApiCsvConfiguration(BaseItem): + delimiter: Annotated[ + str | None, Field(description="The character used to separate entries.") + ] = None + quote: Annotated[ + str | None, Field(description="The character used to encapsulate an entry.") + ] = None + quote_escape: Annotated[ + str | None, + Field( + alias="quoteEscape", + description="The character used to escape the quote character.", + ), + ] = None + quote_escape_escape: Annotated[ + str | None, + Field( + alias="quoteEscapeEscape", + description="The character used to escape the quote escape character.", + ), + ] = None + + +class ApiDataTableQuerySortOrderDirection(str, Enum): + """How the column will be sorted.""" + + ASC = "ASC" + DESC = "DESC" + + +class ApiDataTableQuerySortOrder(BaseItem): + field: Annotated[str | None, Field(description="The data table column.")] = None + direction: Annotated[ + ApiDataTableQuerySortOrderDirection | None, + Field(description="How the column will be sorted."), + ] = None + + +class ShieldQueryTermOperatorShieldQueryTermOperatorEnum(str, Enum): + FIELD_EQ = "$eq" + FIELD_NE = "$ne" + FIELD_GT = "$gt" + FIELD_GTE = "$gte" + FIELD_LT = "$lt" + FIELD_LTE = "$lte" + FIELD_CONTAINS = "$contains" + FIELD_NCONTAINS = "$ncontains" + FIELD_IN = "$in" + FIELD_NIN = "$nin" + FIELD_FLAGS = "$flags" + FIELD_KEYWORD_PREFIX = "$keyword_prefix" + FIELD_KEYWORD_PREFIX_NOT = "$keyword_prefix_not" + FIELD_ISUBSTR = "$isubstr" + FIELD_IPREFIX = "$iprefix" + FIELD_NIPREFIX = "$niprefix" + FIELD_BETWEEN = "$between" + FIELD_NBETWEEN = "$nbetween" + FIELD_AND = "$and" + FIELD_OR = "$or" + FIELD_POPULATION = "$population" + FIELD_NOT_POPULATION = "$not_population" + + +ShieldQueryTermOperator = RootModel[ + ShieldQueryTermOperatorShieldQueryTermOperatorEnum | None +] + + +class ShieldQueryTerm(BaseItem): + operator: ShieldQueryTermOperator | None = None + + +class ApiDataTablePage(BaseItem): + content: list[dict[str, Any]] | None = None + + +class ApiDataTableQuerySortOrderReadDirection(str, Enum): + """How the column will be sorted.""" + + ASC = "ASC" + DESC = "DESC" + + +class ApiDataTableQuerySortOrderRead(BaseItem): + field: Annotated[str | None, Field(description="The data table column.")] = None + direction: Annotated[ + ApiDataTableQuerySortOrderReadDirection | None, + Field(description="How the column will be sorted."), + ] = None + + +class ApiDataTableColumnReadType(str, Enum): + """The type of data found in the column.""" + + STRING = "STRING" + DATE = "DATE" + DATE_TIME = "DATE_TIME" + BOOLEAN = "BOOLEAN" + INT16 = "INT16" + INT32 = "INT32" + INT64 = "INT64" + FLOAT32 = "FLOAT32" + FLOAT64 = "FLOAT64" + MONEY_100 = "MONEY_100" + PERCENTAGE_FIXED_POINT = "PERCENTAGE_FIXED_POINT" + ARRAY_STRINGS = "ARRAY_STRINGS" + ARRAY_INT64 = "ARRAY_INT64" + KEYWORD_SEARCH = "KEYWORD_SEARCH" + OBJECTID = "OBJECTID" + BOOLEAN_FLAGS = "BOOLEAN_FLAGS" + MAP_SCALARS = "MAP_SCALARS" + LEGACY_ACCOUNT_TAG_EFFECTS = "LEGACY_ACCOUNT_TAG_EFFECTS" + JSONB = "JSONB" + + +class ApiDataTableColumnRead(BaseItem): + original_name: Annotated[ + str | None, + Field( + alias="originalName", + description="The original field name, derived from the source file, risk score name, or similar source.", + ), + ] = None + field: Annotated[str | None, Field(description="The column name.")] = None + mind_bridge_field: Annotated[ + str | None, + Field( + alias="mindBridgeField", + description="The MindBridge field name that this column is mapped to.", + ), + ] = None + type: Annotated[ + ApiDataTableColumnReadType | None, + Field(description="The type of data found in the column."), + ] = None + nullable: Annotated[ + bool | None, + Field(description="Indicates whether or not NULL values are allowed."), + ] = None + equality_search: Annotated[ + bool | None, + Field( + alias="equalitySearch", + description="Indicates whether or not a search can be performed based on two equal operands.", + ), + ] = None + range_search: Annotated[ + bool | None, + Field( + alias="rangeSearch", + description="Indicates whether or not a search can be performed on a value-based comparison.", + ), + ] = None + sortable: Annotated[ + bool | None, + Field( + description="Indicates whether or not the data table can be sorted by this column." + ), + ] = None + contains_search: Annotated[ + bool | None, + Field( + alias="containsSearch", + description="Indicates whether or not a value-based search can be performed.", + ), + ] = None + keyword_search: Annotated[ + bool | None, + Field( + alias="keywordSearch", + description="Indicates whether or not a keyword search can be performed.", + ), + ] = None + case_insensitive_substring_search: Annotated[ + bool | None, + Field( + alias="caseInsensitiveSubstringSearch", + description="Indicates whether or not a case insensitive search can be performed on a substring.", + ), + ] = None + case_insensitive_prefix_search: Annotated[ + bool | None, + Field( + alias="caseInsensitivePrefixSearch", + description="Indicates whether or not a case insensitive search can be performed on a prefix.", + ), + ] = None + filter_only: Annotated[ + bool | None, + Field( + alias="filterOnly", + description="Indicates whether a field can only be used as part of a filter.", + ), + ] = None + typeahead_data_table_id: Annotated[ + str | None, + Field( + alias="typeaheadDataTableId", + description="The ID of the typeahead table that this column references.", + ), + ] = None + + +class ApiDataTableRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + analysis_id: Annotated[ + str | None, + Field(alias="analysisId", description="Identifies the associated analysis."), + ] = None + analysis_result_id: Annotated[ + str | None, + Field( + alias="analysisResultId", + description="Identifies the associated analysis results.", + ), + ] = None + logical_name: Annotated[ + str | None, + Field(alias="logicalName", description="The name of the data table."), + ] = None + type: Annotated[str | None, Field(description="The type of data table.")] = None + columns: Annotated[ + list[ApiDataTableColumnRead] | None, + Field(description="Details about the data table columns."), + ] = None + + +class ApiConnectionCreateType(str, Enum): + """The type of external connection.""" + + DATABRICKS = "DATABRICKS" + MINDBRIDGE_DATA_TABLES = "MINDBRIDGE_DATA_TABLES" + + +class ApiConnectionCreate(BaseItem): + type: Annotated[ + ApiConnectionCreateType | None, + Field(description="The type of external connection."), + ] = None + + +class ApiConnectionReadType(str, Enum): + """The type of external connection.""" + + DATABRICKS = "DATABRICKS" + MINDBRIDGE_DATA_TABLES = "MINDBRIDGE_DATA_TABLES" + + +class ApiConnectionRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + type: Annotated[ + ApiConnectionReadType | None, + Field(description="The type of external connection."), + ] = None + + +class ApiTabularSchemaColumnCreateColumnType(str, Enum): + """The data type of the column.""" + + STRING = "STRING" + DATE = "DATE" + DATE_TIME = "DATE_TIME" + BOOLEAN = "BOOLEAN" + INT16 = "INT16" + INT32 = "INT32" + INT64 = "INT64" + FLOAT32 = "FLOAT32" + FLOAT64 = "FLOAT64" + MONEY_100 = "MONEY_100" + PERCENTAGE_FIXED_POINT = "PERCENTAGE_FIXED_POINT" + ARRAY_STRINGS = "ARRAY_STRINGS" + ARRAY_INT64 = "ARRAY_INT64" + KEYWORD_SEARCH = "KEYWORD_SEARCH" + OBJECTID = "OBJECTID" + BOOLEAN_FLAGS = "BOOLEAN_FLAGS" + MAP_SCALARS = "MAP_SCALARS" + LEGACY_ACCOUNT_TAG_EFFECTS = "LEGACY_ACCOUNT_TAG_EFFECTS" + JSONB = "JSONB" + + +class ApiTabularSchemaColumnCreate(BaseItem): + name: Annotated[str | None, Field(description="The name of the column.")] = None + column_type: Annotated[ + ApiTabularSchemaColumnCreateColumnType | None, + Field(alias="columnType", description="The data type of the column."), + ] = None + nullable: Annotated[ + bool | None, Field(description="Whether the column allows null values.") + ] = None + + +class ApiTabularSchemaCreate(BaseItem): + columns: Annotated[ + list[ApiTabularSchemaColumnCreate] | None, + Field(description="The list of column definitions for the table."), + ] = None + + +class ApiConnectionTestResultRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + connection_id: Annotated[ + str | None, + Field( + alias="connectionId", + description="The ID of the Connection that was tested.", + ), + ] = None + message: Annotated[ + str | None, + Field(description="A message describing the outcome of the connection test."), + ] = None + + +class ApiTabularSchemaColumnReadColumnType(str, Enum): + """The data type of the column.""" + + STRING = "STRING" + DATE = "DATE" + DATE_TIME = "DATE_TIME" + BOOLEAN = "BOOLEAN" + INT16 = "INT16" + INT32 = "INT32" + INT64 = "INT64" + FLOAT32 = "FLOAT32" + FLOAT64 = "FLOAT64" + MONEY_100 = "MONEY_100" + PERCENTAGE_FIXED_POINT = "PERCENTAGE_FIXED_POINT" + ARRAY_STRINGS = "ARRAY_STRINGS" + ARRAY_INT64 = "ARRAY_INT64" + KEYWORD_SEARCH = "KEYWORD_SEARCH" + OBJECTID = "OBJECTID" + BOOLEAN_FLAGS = "BOOLEAN_FLAGS" + MAP_SCALARS = "MAP_SCALARS" + LEGACY_ACCOUNT_TAG_EFFECTS = "LEGACY_ACCOUNT_TAG_EFFECTS" + JSONB = "JSONB" + + +class ApiTabularSchemaColumnRead(BaseItem): + name: Annotated[str | None, Field(description="The name of the column.")] = None + column_type: Annotated[ + ApiTabularSchemaColumnReadColumnType | None, + Field(alias="columnType", description="The data type of the column."), + ] = None + nullable: Annotated[ + bool | None, Field(description="Whether the column allows null values.") + ] = None + + +class ApiTabularSchemaRead(BaseItem): + columns: Annotated[ + list[ApiTabularSchemaColumnRead] | None, + Field(description="The list of column definitions for the table."), + ] = None + + +class ApiConnectionTablesResultRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + connection_id: Annotated[ + str | None, + Field( + alias="connectionId", + description="The ID of the Connection that this tables result belongs to.", + ), + ] = None + table_count: Annotated[ + int | None, + Field( + alias="tableCount", + description="The total number of tables discovered from the connection.", + ), + ] = None + + +class ApiConnectionDataSourceCreate(BaseItem): + connection_id: Annotated[ + str | None, + Field( + alias="connectionId", + description="The ID of the Connection this data source belongs to.", + ), + ] = None + table_id: Annotated[ + str | None, + Field( + alias="tableId", + description="The identifier of the table within the external connection.", + ), + ] = None + schema_: Annotated[ + ApiTabularSchemaCreate | None, + Field( + alias="schema", + description="The schema describing the columns of the table.", + ), + ] = None + + +class ApiConnectionDataSourceRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + connection_id: Annotated[ + str | None, + Field( + alias="connectionId", + description="The ID of the Connection this data source belongs to.", + ), + ] = None + table_id: Annotated[ + str | None, + Field( + alias="tableId", + description="The identifier of the table within the external connection.", + ), + ] = None + schema_: Annotated[ + ApiTabularSchemaRead | None, + Field( + alias="schema", + description="The schema describing the columns of the table.", + ), + ] = None + + +class ApiDataSourceDataRequestCreate(BaseItem): + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", + description="Identifies the engagement that the resulting Data Table will be associated with.", + ), + ] = None + filter: Annotated[ + ShieldQueryTermCreate | None, + Field( + description="Optional filter to apply to the data retrieval. If not set, all rows are returned unfiltered." + ), + ] = None + limit: Annotated[ + int | None, + Field( + description="Maximum number of rows to return. If not set, all matching rows are returned.", + ge=0, + ), + ] = None + offset: Annotated[ + int | None, + Field( + description="Number of rows to skip before returning results. If not set, results start from the first row.", + ge=0, + ), + ] = None + + +class ApiChunkedFileCreate(BaseItem): + name: Annotated[str | None, Field(description="The name of the chunked file.")] = ( + None + ) + size: Annotated[ + int | None, Field(description="The size of the chunked file.", ge=0) + ] = None + + +class ApiChunkedFilePartRead(BaseItem): + offset: Annotated[ + int | None, + Field( + description="Indicates the start position of the file part in the chunked file.", + ge=0, + ), + ] = None + size: Annotated[ + int | None, Field(description="The size of the file part.", ge=0) + ] = None + + +class ApiChunkedFileRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + name: Annotated[str | None, Field(description="The name of the chunked file.")] = ( + None + ) + size: Annotated[ + int | None, Field(description="The size of the chunked file.", ge=0) + ] = None + chunked_file_parts: Annotated[ + list[ApiChunkedFilePartRead] | None, + Field( + alias="chunkedFileParts", + description="The offset and size of the chunked file parts.", + ), + ] = None + + +class ApiChunkedFilePart(BaseItem): + offset: Annotated[ + int | None, + Field( + description="Indicates the start position of the file part in the chunked file.", + ge=0, + ), + ] = None + size: Annotated[ + int | None, Field(description="The size of the file part.", ge=0) + ] = None + + +class ApiApiTokenCreatePermission(str, Enum): + API_ORGANIZATIONS_READ = "api.organizations.read" + API_ORGANIZATIONS_WRITE = "api.organizations.write" + API_ORGANIZATIONS_DELETE = "api.organizations.delete" + API_ENGAGEMENTS_READ = "api.engagements.read" + API_ENGAGEMENTS_WRITE = "api.engagements.write" + API_ENGAGEMENTS_DELETE = "api.engagements.delete" + API_ANALYSES_READ = "api.analyses.read" + API_ANALYSES_WRITE = "api.analyses.write" + API_ANALYSES_DELETE = "api.analyses.delete" + API_ANALYSES_RUN = "api.analyses.run" + API_ANALYSIS_SOURCES_READ = "api.analysis-sources.read" + API_ANALYSIS_SOURCES_WRITE = "api.analysis-sources.write" + API_ANALYSIS_SOURCES_DELETE = "api.analysis-sources.delete" + API_FILE_MANAGER_READ = "api.file-manager.read" + API_FILE_MANAGER_WRITE = "api.file-manager.write" + API_FILE_MANAGER_DELETE = "api.file-manager.delete" + API_REPORTING_PERIOD_CONFIG_READ = "api.reporting-period-config.read" + API_REPORTING_PERIOD_CONFIG_WRITE = "api.reporting-period-config.write" + API_REPORTING_PERIOD_CONFIG_DELETE = "api.reporting-period-config.delete" + API_LIBRARIES_READ = "api.libraries.read" + API_LIBRARIES_WRITE = "api.libraries.write" + API_LIBRARIES_DELETE = "api.libraries.delete" + API_ACCOUNT_GROUPINGS_READ = "api.account-groupings.read" + API_ACCOUNT_GROUPINGS_WRITE = "api.account-groupings.write" + API_ACCOUNT_GROUPINGS_DELETE = "api.account-groupings.delete" + API_ENGAGEMENT_ACCOUNT_GROUPINGS_READ = "api.engagement-account-groupings.read" + API_ENGAGEMENT_ACCOUNT_GROUPINGS_WRITE = "api.engagement-account-groupings.write" + API_ENGAGEMENT_ACCOUNT_GROUPINGS_DELETE = "api.engagement-account-groupings.delete" + API_USERS_READ = "api.users.read" + API_USERS_WRITE = "api.users.write" + API_USERS_DELETE = "api.users.delete" + API_DATA_TABLES_READ = "api.data-tables.read" + API_API_TOKENS_READ = "api.api-tokens.read" + API_API_TOKENS_WRITE = "api.api-tokens.write" + API_API_TOKENS_DELETE = "api.api-tokens.delete" + API_TASKS_READ = "api.tasks.read" + API_TASKS_WRITE = "api.tasks.write" + API_TASKS_DELETE = "api.tasks.delete" + API_ADMIN_REPORTS_RUN = "api.admin-reports.run" + API_ANALYSIS_TYPES_READ = "api.analysis-types.read" + API_ANALYSIS_SOURCE_TYPES_READ = "api.analysis-source-types.read" + API_ANALYSIS_TYPE_CONFIGURATION_READ = "api.analysis-type-configuration.read" + API_ANALYSIS_TYPE_CONFIGURATION_WRITE = "api.analysis-type-configuration.write" + API_ANALYSIS_TYPE_CONFIGURATION_DELETE = "api.analysis-type-configuration.delete" + API_RISK_RANGES_READ = "api.risk-ranges.read" + API_RISK_RANGES_WRITE = "api.risk-ranges.write" + API_RISK_RANGES_DELETE = "api.risk-ranges.delete" + API_FILTERS_READ = "api.filters.read" + API_FILTERS_WRITE = "api.filters.write" + API_FILTERS_DELETE = "api.filters.delete" + API_FILE_INFOS_READ = "api.file-infos.read" + API_WEBHOOKS_READ = "api.webhooks.read" + API_WEBHOOKS_WRITE = "api.webhooks.write" + API_WEBHOOKS_DELETE = "api.webhooks.delete" + API_CONNECTIONS_READ = "api.connections.read" + API_CONNECTIONS_WRITE = "api.connections.write" + API_CONNECTIONS_DELETE = "api.connections.delete" + API_CONNECTION_DATA_SOURCES_READ = "api.connection-data-sources.read" + API_CONNECTION_DATA_SOURCES_WRITE = "api.connection-data-sources.write" + API_CONNECTION_DATA_SOURCES_DELETE = "api.connection-data-sources.delete" + SCIM_USER_READ = "scim.user.read" + SCIM_USER_WRITE = "scim.user.write" + SCIM_USER_DELETE = "scim.user.delete" + SCIM_USER_SCHEMA = "scim.user.schema" + + +class ApiApiTokenCreate(BaseItem): + name: Annotated[ + str | None, + Field( + description="The token record's name. This will also be used as the API Token User's name." + ), + ] = None + expiry: Annotated[ + AwareDatetime | None, + Field(description="The day on which the API token expires."), + ] = None + allowed_addresses: Annotated[ + list[str] | None, + Field( + alias="allowedAddresses", + description="Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.", + ), + ] = None + permissions: Annotated[ + list[ApiApiTokenCreatePermission] | None, + Field( + description="The set of permissions that inform which endpoints this token is authorized to access." + ), + ] = None + + +class CreateApiTokenResponseReadPermission(str, Enum): + API_ORGANIZATIONS_READ = "api.organizations.read" + API_ORGANIZATIONS_WRITE = "api.organizations.write" + API_ORGANIZATIONS_DELETE = "api.organizations.delete" + API_ENGAGEMENTS_READ = "api.engagements.read" + API_ENGAGEMENTS_WRITE = "api.engagements.write" + API_ENGAGEMENTS_DELETE = "api.engagements.delete" + API_ANALYSES_READ = "api.analyses.read" + API_ANALYSES_WRITE = "api.analyses.write" + API_ANALYSES_DELETE = "api.analyses.delete" + API_ANALYSES_RUN = "api.analyses.run" + API_ANALYSIS_SOURCES_READ = "api.analysis-sources.read" + API_ANALYSIS_SOURCES_WRITE = "api.analysis-sources.write" + API_ANALYSIS_SOURCES_DELETE = "api.analysis-sources.delete" + API_FILE_MANAGER_READ = "api.file-manager.read" + API_FILE_MANAGER_WRITE = "api.file-manager.write" + API_FILE_MANAGER_DELETE = "api.file-manager.delete" + API_REPORTING_PERIOD_CONFIG_READ = "api.reporting-period-config.read" + API_REPORTING_PERIOD_CONFIG_WRITE = "api.reporting-period-config.write" + API_REPORTING_PERIOD_CONFIG_DELETE = "api.reporting-period-config.delete" + API_LIBRARIES_READ = "api.libraries.read" + API_LIBRARIES_WRITE = "api.libraries.write" + API_LIBRARIES_DELETE = "api.libraries.delete" + API_ACCOUNT_GROUPINGS_READ = "api.account-groupings.read" + API_ACCOUNT_GROUPINGS_WRITE = "api.account-groupings.write" + API_ACCOUNT_GROUPINGS_DELETE = "api.account-groupings.delete" + API_ENGAGEMENT_ACCOUNT_GROUPINGS_READ = "api.engagement-account-groupings.read" + API_ENGAGEMENT_ACCOUNT_GROUPINGS_WRITE = "api.engagement-account-groupings.write" + API_ENGAGEMENT_ACCOUNT_GROUPINGS_DELETE = "api.engagement-account-groupings.delete" + API_USERS_READ = "api.users.read" + API_USERS_WRITE = "api.users.write" + API_USERS_DELETE = "api.users.delete" + API_DATA_TABLES_READ = "api.data-tables.read" + API_API_TOKENS_READ = "api.api-tokens.read" + API_API_TOKENS_WRITE = "api.api-tokens.write" + API_API_TOKENS_DELETE = "api.api-tokens.delete" + API_TASKS_READ = "api.tasks.read" + API_TASKS_WRITE = "api.tasks.write" + API_TASKS_DELETE = "api.tasks.delete" + API_ADMIN_REPORTS_RUN = "api.admin-reports.run" + API_ANALYSIS_TYPES_READ = "api.analysis-types.read" + API_ANALYSIS_SOURCE_TYPES_READ = "api.analysis-source-types.read" + API_ANALYSIS_TYPE_CONFIGURATION_READ = "api.analysis-type-configuration.read" + API_ANALYSIS_TYPE_CONFIGURATION_WRITE = "api.analysis-type-configuration.write" + API_ANALYSIS_TYPE_CONFIGURATION_DELETE = "api.analysis-type-configuration.delete" + API_RISK_RANGES_READ = "api.risk-ranges.read" + API_RISK_RANGES_WRITE = "api.risk-ranges.write" + API_RISK_RANGES_DELETE = "api.risk-ranges.delete" + API_FILTERS_READ = "api.filters.read" + API_FILTERS_WRITE = "api.filters.write" + API_FILTERS_DELETE = "api.filters.delete" + API_FILE_INFOS_READ = "api.file-infos.read" + API_WEBHOOKS_READ = "api.webhooks.read" + API_WEBHOOKS_WRITE = "api.webhooks.write" + API_WEBHOOKS_DELETE = "api.webhooks.delete" + API_CONNECTIONS_READ = "api.connections.read" + API_CONNECTIONS_WRITE = "api.connections.write" + API_CONNECTIONS_DELETE = "api.connections.delete" + API_CONNECTION_DATA_SOURCES_READ = "api.connection-data-sources.read" + API_CONNECTION_DATA_SOURCES_WRITE = "api.connection-data-sources.write" + API_CONNECTION_DATA_SOURCES_DELETE = "api.connection-data-sources.delete" + SCIM_USER_READ = "scim.user.read" + SCIM_USER_WRITE = "scim.user.write" + SCIM_USER_DELETE = "scim.user.delete" + SCIM_USER_SCHEMA = "scim.user.schema" + + +class CreateApiTokenResponseRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + user_id: Annotated[ + str | None, + Field( + alias="userId", + description="Identifies the API Token User associated with this token.", + ), + ] = None + name: Annotated[ + str | None, + Field( + description="The token record's name. This will also be used as the API Token User's name." + ), + ] = None + partial_token: Annotated[ + str | None, + Field( + alias="partialToken", + description="A partial representation of the API token.", + ), + ] = None + expiry: Annotated[ + AwareDatetime | None, + Field(description="The day on which the API token expires."), + ] = None + allowed_addresses: Annotated[ + list[str] | None, + Field( + alias="allowedAddresses", + description="Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.", + ), + ] = None + permissions: Annotated[ + list[CreateApiTokenResponseReadPermission] | None, + Field( + description="The set of permissions that inform which endpoints this token is authorized to access." + ), + ] = None + token: Annotated[ + str | None, + Field( + description="The API token.\n\n**Note:** The security of the API token is paramount. If compromised, contact your **App Admin** immediately." + ), + ] = None + + +class ApiSourceConfigurationReadSourceScope(str, Enum): + """Indicates whether the source configuration applies to the current period, all of the prior periods, or the entire analysis. + + **Note**: Sources with an `ANALYSIS` scope should not provide an `analysisPeriodId`. + """ + + CURRENT_PERIOD = "CURRENT_PERIOD" + PRIOR_PERIOD = "PRIOR_PERIOD" + ANALYSIS = "ANALYSIS" + + +class ApiSourceConfigurationRead(BaseItem): + source_type_id: Annotated[ + str | None, + Field( + alias="sourceTypeId", + description="The source type ID selected as part of this configuration.", + ), + ] = None + source_scope: Annotated[ + ApiSourceConfigurationReadSourceScope | None, + Field( + alias="sourceScope", + description="Indicates whether the source configuration applies to the current period, all of the prior periods, or the entire analysis.\n\n**Note**: Sources with an `ANALYSIS` scope should not provide an `analysisPeriodId`.", + ), + ] = None + required: Annotated[ + bool | None, + Field( + description="When `true`, the analysis cannot be run until at least one analysis source with this source type in this source scope is present." + ), + ] = None + post_analysis: Annotated[ + bool | None, + Field( + alias="postAnalysis", + description="When `true`, this source configuration will be enabled after an analysis is run (not before).", + ), + ] = None + interim_only: Annotated[ + bool | None, + Field( + alias="interimOnly", + description="When `true`, this source configuration only applies when the interim time frame is used (i.e., it has not been converted for use with a full time frame).", + ), + ] = None + disable_for_interim: Annotated[ + bool | None, + Field( + alias="disableForInterim", + description="When `true` and the interim time frame is used (i.e., it has not been converted for use with a full time frame), new analysis sources of this source type and source scope cannot be added.", + ), + ] = None + allow_multiple: Annotated[ + bool | None, + Field( + alias="allowMultiple", + description="When `true`, multiple versions of this analysis source type may be imported using this source scope.", + ), + ] = None + allow_multiple_for_periodic: Annotated[ + bool | None, + Field( + alias="allowMultipleForPeriodic", + description="When `true` and the periodic time frame is used, multiple versions of this analysis source type may be imported using this source scope.", + ), + ] = None + alternative_required_source_types: Annotated[ + list[str] | None, + Field( + alias="alternativeRequiredSourceTypes", + description="A list of alternative analysis source types. If one of the alternatives is present for this source scope, then the `required` constraint is considered satisfied.", + ), + ] = None + tracks_additional_data_entries: Annotated[ + bool | None, + Field( + alias="tracksAdditionalDataEntries", + description="When `true`, the `additionalDataColumnField` field is required upon importing an analysis source type.", + ), + ] = None + + +class ApiAnalysisSourceCreateTargetWorkflowState(str, Enum): + """The state that the current workflow will advance to.""" + + COMPLETED = "COMPLETED" + CANCELLED = "CANCELLED" + FAILED = "FAILED" + STARTED = "STARTED" + DETECTING_FORMAT = "DETECTING_FORMAT" + ANALYZING_COLUMNS = "ANALYZING_COLUMNS" + CHECKING_INTEGRITY = "CHECKING_INTEGRITY" + SCANNING_TRANSACTION_COMBINATIONS = "SCANNING_TRANSACTION_COMBINATIONS" + PARSING = "PARSING" + PARSING_ICEBERG = "PARSING_ICEBERG" + ANALYZING_EFFECTIVE_DATE_METRICS = "ANALYZING_EFFECTIVE_DATE_METRICS" + FORMAT_DETECTION_COMPLETED = "FORMAT_DETECTION_COMPLETED" + COLUMN_MAPPINGS_CONFIRMED = "COLUMN_MAPPINGS_CONFIRMED" + SETTINGS_CONFIRMED = "SETTINGS_CONFIRMED" + PREPARING_ICEBERG = "PREPARING_ICEBERG" + ANALYSIS_PERIOD_SELECTED = "ANALYSIS_PERIOD_SELECTED" + FUNDS_REVIEWED = "FUNDS_REVIEWED" + RUNNING = "RUNNING" + UNPACK_COMPLETE = "UNPACK_COMPLETE" + UPLOADED = "UPLOADED" + FORMAT_DETECTED = "FORMAT_DETECTED" + COLUMNS_ANALYZED = "COLUMNS_ANALYZED" + INTEGRITY_CHECKED = "INTEGRITY_CHECKED" + PARSED = "PARSED" + AUTHENTICATED = "AUTHENTICATED" + CONFIGURED = "CONFIGURED" + EFFECTIVE_DATE_METRICS_ANALYZED = "EFFECTIVE_DATE_METRICS_ANALYZED" + DATA_VALIDATION_CONFIRMED = "DATA_VALIDATION_CONFIRMED" + + +class ApiProposedAmbiguousColumnResolutionCreate(BaseItem): + position: Annotated[ + int | None, + Field( + description="The position of the column with the proposed resolution.", ge=0 + ), + ] = None + selected_format: Annotated[ + str | None, + Field( + alias="selectedFormat", + description="The selected format of the proposed resolution.", + ), + ] = None + + +class ApiProposedColumnMappingCreate(BaseItem): + column_position: Annotated[ + int | None, + Field( + alias="columnPosition", + description="The position of the proposed column mapping in the original input file.", + ), + ] = None + virtual_column_index: Annotated[ + int | None, + Field( + alias="virtualColumnIndex", + description="The position of the proposed virtual columns within the `proposedVirtualColumns` list.", + ), + ] = None + mindbridge_field: Annotated[ + str | None, + Field( + alias="mindbridgeField", + description="The MindBridge field that the data column should be mapped to.", + ), + ] = None + additional_column_name: Annotated[ + str | None, + Field( + alias="additionalColumnName", + description="Proposed additional columns of data to be added to the analysis.", + ), + ] = None + + +class ApiProposedVirtualColumnCreateType(str, Enum): + """The type of proposed virtual column.""" + + DUPLICATE = "DUPLICATE" + SPLIT_BY_POSITION = "SPLIT_BY_POSITION" + SPLIT_BY_DELIMITER = "SPLIT_BY_DELIMITER" + JOIN = "JOIN" + + +class ApiProposedVirtualColumnCreate(BaseItem): + name: Annotated[ + str | None, Field(description="The name of the proposed virtual column.") + ] = None + type: Annotated[ + ApiProposedVirtualColumnCreateType | None, + Field(description="The type of proposed virtual column."), + ] = None + + +class ApiTransactionIdSelectionCreateType(str, Enum): + """The type used when selecting a transaction ID.""" + + COMBINATION = "COMBINATION" + RUNNING_TOTAL = "RUNNING_TOTAL" + + +class ApiTransactionIdSelectionCreate(BaseItem): + column_selection: Annotated[ + list[int] | None, + Field( + alias="columnSelection", + description="The columns included when selecting a transaction ID.", + ), + ] = None + virtual_column_selection: Annotated[ + list[int] | None, + Field( + alias="virtualColumnSelection", + description="The virtual columns included when selecting a transaction ID.", + ), + ] = None + type: Annotated[ + ApiTransactionIdSelectionCreateType | None, + Field(description="The type used when selecting a transaction ID."), + ] = None + apply_smart_splitter: Annotated[ + bool | None, + Field( + alias="applySmartSplitter", + description="Indicates whether or not the Smart Splitter was run when selecting a transaction ID.", + ), + ] = None + + +class ApiAmbiguousColumnRead(BaseItem): + position: Annotated[ + int | None, Field(description="The position of the column with the resolution.") + ] = None + ambiguous_formats: Annotated[ + list[str] | None, + Field( + alias="ambiguousFormats", + description="A list of ambiguous formats detected.", + ), + ] = None + selected_format: Annotated[ + str | None, + Field( + alias="selectedFormat", + description="The data format to be used in case of ambiguity.", + ), + ] = None + + +class ApiAnalysisSourceReadWorkflowState(str, Enum): + """The current state of the workflow.""" + + COMPLETED = "COMPLETED" + CANCELLED = "CANCELLED" + FAILED = "FAILED" + STARTED = "STARTED" + DETECTING_FORMAT = "DETECTING_FORMAT" + ANALYZING_COLUMNS = "ANALYZING_COLUMNS" + CHECKING_INTEGRITY = "CHECKING_INTEGRITY" + SCANNING_TRANSACTION_COMBINATIONS = "SCANNING_TRANSACTION_COMBINATIONS" + PARSING = "PARSING" + PARSING_ICEBERG = "PARSING_ICEBERG" + ANALYZING_EFFECTIVE_DATE_METRICS = "ANALYZING_EFFECTIVE_DATE_METRICS" + FORMAT_DETECTION_COMPLETED = "FORMAT_DETECTION_COMPLETED" + COLUMN_MAPPINGS_CONFIRMED = "COLUMN_MAPPINGS_CONFIRMED" + SETTINGS_CONFIRMED = "SETTINGS_CONFIRMED" + PREPARING_ICEBERG = "PREPARING_ICEBERG" + ANALYSIS_PERIOD_SELECTED = "ANALYSIS_PERIOD_SELECTED" + FUNDS_REVIEWED = "FUNDS_REVIEWED" + RUNNING = "RUNNING" + UNPACK_COMPLETE = "UNPACK_COMPLETE" + UPLOADED = "UPLOADED" + FORMAT_DETECTED = "FORMAT_DETECTED" + COLUMNS_ANALYZED = "COLUMNS_ANALYZED" + INTEGRITY_CHECKED = "INTEGRITY_CHECKED" + PARSED = "PARSED" + AUTHENTICATED = "AUTHENTICATED" + CONFIGURED = "CONFIGURED" + EFFECTIVE_DATE_METRICS_ANALYZED = "EFFECTIVE_DATE_METRICS_ANALYZED" + DATA_VALIDATION_CONFIRMED = "DATA_VALIDATION_CONFIRMED" + + +class ApiAnalysisSourceReadTargetWorkflowState(str, Enum): + """The state that the current workflow will advance to.""" + + COMPLETED = "COMPLETED" + CANCELLED = "CANCELLED" + FAILED = "FAILED" + STARTED = "STARTED" + DETECTING_FORMAT = "DETECTING_FORMAT" + ANALYZING_COLUMNS = "ANALYZING_COLUMNS" + CHECKING_INTEGRITY = "CHECKING_INTEGRITY" + SCANNING_TRANSACTION_COMBINATIONS = "SCANNING_TRANSACTION_COMBINATIONS" + PARSING = "PARSING" + PARSING_ICEBERG = "PARSING_ICEBERG" + ANALYZING_EFFECTIVE_DATE_METRICS = "ANALYZING_EFFECTIVE_DATE_METRICS" + FORMAT_DETECTION_COMPLETED = "FORMAT_DETECTION_COMPLETED" + COLUMN_MAPPINGS_CONFIRMED = "COLUMN_MAPPINGS_CONFIRMED" + SETTINGS_CONFIRMED = "SETTINGS_CONFIRMED" + PREPARING_ICEBERG = "PREPARING_ICEBERG" + ANALYSIS_PERIOD_SELECTED = "ANALYSIS_PERIOD_SELECTED" + FUNDS_REVIEWED = "FUNDS_REVIEWED" + RUNNING = "RUNNING" + UNPACK_COMPLETE = "UNPACK_COMPLETE" + UPLOADED = "UPLOADED" + FORMAT_DETECTED = "FORMAT_DETECTED" + COLUMNS_ANALYZED = "COLUMNS_ANALYZED" + INTEGRITY_CHECKED = "INTEGRITY_CHECKED" + PARSED = "PARSED" + AUTHENTICATED = "AUTHENTICATED" + CONFIGURED = "CONFIGURED" + EFFECTIVE_DATE_METRICS_ANALYZED = "EFFECTIVE_DATE_METRICS_ANALYZED" + DATA_VALIDATION_CONFIRMED = "DATA_VALIDATION_CONFIRMED" + + +class ApiAnalysisSourceReadDetectedFormat(str, Enum): + """The data format that MindBridge detected.""" + + QUICKBOOKS_JOURNAL = "QUICKBOOKS_JOURNAL" + QUICKBOOKS_JOURNAL_2024 = "QUICKBOOKS_JOURNAL_2024" + QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT = ( + "QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT" + ) + SAGE50_LEDGER = "SAGE50_LEDGER" + SAGE50_TRANSACTIONS = "SAGE50_TRANSACTIONS" + CCH_ACCOUNT_LIST = "CCH_ACCOUNT_LIST" + MS_DYNAMICS_JOURNAL = "MS_DYNAMICS_JOURNAL" + SAGE50_UK = "SAGE50_UK" + + +class ApiColumnMappingReadMappingType(str, Enum): + """The method used to map the column.""" + + AUTO = "AUTO" + NOT_MAPPED = "NOT_MAPPED" + MANUAL = "MANUAL" + + +class ApiColumnMappingRead(BaseItem): + position: Annotated[ + int | None, Field(description="The position of the column mapping.") + ] = None + field: Annotated[str | None, Field(description="The column name.")] = None + mindbridge_field: Annotated[ + str | None, + Field( + alias="mindbridgeField", + description="The MindBridge field that the data column was mapped to.", + ), + ] = None + mapping_type: Annotated[ + ApiColumnMappingReadMappingType | None, + Field(alias="mappingType", description="The method used to map the column."), + ] = None + additional_column_name: Annotated[ + str | None, + Field( + alias="additionalColumnName", + description="Additional columns of data that were added to the analysis.", + ), + ] = None + + +class ApiMessageRead(BaseItem): + code: Annotated[str | None, Field(description="Identifies the message type.")] = ( + None + ) + default_message: Annotated[ + str | None, + Field( + alias="defaultMessage", + description="The message as it appears in MindBridge.", + ), + ] = None + + +class ApiProposedAmbiguousColumnResolutionRead(BaseItem): + position: Annotated[ + int | None, + Field( + description="The position of the column with the proposed resolution.", ge=0 + ), + ] = None + selected_format: Annotated[ + str | None, + Field( + alias="selectedFormat", + description="The selected format of the proposed resolution.", + ), + ] = None + + +class ApiProposedColumnMappingRead(BaseItem): + column_position: Annotated[ + int | None, + Field( + alias="columnPosition", + description="The position of the proposed column mapping in the original input file.", + ), + ] = None + virtual_column_index: Annotated[ + int | None, + Field( + alias="virtualColumnIndex", + description="The position of the proposed virtual columns within the `proposedVirtualColumns` list.", + ), + ] = None + mindbridge_field: Annotated[ + str | None, + Field( + alias="mindbridgeField", + description="The MindBridge field that the data column should be mapped to.", + ), + ] = None + additional_column_name: Annotated[ + str | None, + Field( + alias="additionalColumnName", + description="Proposed additional columns of data to be added to the analysis.", + ), + ] = None + + +class ApiProposedVirtualColumnReadType(str, Enum): + """The type of proposed virtual column.""" + + DUPLICATE = "DUPLICATE" + SPLIT_BY_POSITION = "SPLIT_BY_POSITION" + SPLIT_BY_DELIMITER = "SPLIT_BY_DELIMITER" + JOIN = "JOIN" + + +class ApiProposedVirtualColumnRead(BaseItem): + name: Annotated[ + str | None, Field(description="The name of the proposed virtual column.") + ] = None + type: Annotated[ + ApiProposedVirtualColumnReadType | None, + Field(description="The type of proposed virtual column."), + ] = None + + +class ApiTransactionIdSelectionReadType(str, Enum): + """The type used when selecting a transaction ID.""" + + COMBINATION = "COMBINATION" + RUNNING_TOTAL = "RUNNING_TOTAL" + + +class ApiTransactionIdSelectionRead(BaseItem): + column_selection: Annotated[ + list[int] | None, + Field( + alias="columnSelection", + description="The columns included when selecting a transaction ID.", + ), + ] = None + virtual_column_selection: Annotated[ + list[int] | None, + Field( + alias="virtualColumnSelection", + description="The virtual columns included when selecting a transaction ID.", + ), + ] = None + type: Annotated[ + ApiTransactionIdSelectionReadType | None, + Field(description="The type used when selecting a transaction ID."), + ] = None + apply_smart_splitter: Annotated[ + bool | None, + Field( + alias="applySmartSplitter", + description="Indicates whether or not the Smart Splitter was run when selecting a transaction ID.", + ), + ] = None + + +class ApiVirtualColumnReadType(str, Enum): + """The type of virtual column.""" + + DUPLICATE = "DUPLICATE" + SPLIT_BY_POSITION = "SPLIT_BY_POSITION" + SPLIT_BY_DELIMITER = "SPLIT_BY_DELIMITER" + JOIN = "JOIN" + + +class ApiVirtualColumnRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + index: Annotated[ + int | None, Field(description="The position of the virtual column.") + ] = None + name: Annotated[ + str | None, Field(description="The name of the virtual column.") + ] = None + type: Annotated[ + ApiVirtualColumnReadType | None, + Field(description="The type of virtual column."), + ] = None + + +class ApiAnalysisSourceTypeReadFeature(str, Enum): + FORMAT_DETECTION = "FORMAT_DETECTION" + DATA_VALIDATION = "DATA_VALIDATION" + COLUMN_MAPPING = "COLUMN_MAPPING" + EFFECTIVE_DATE_METRICS = "EFFECTIVE_DATE_METRICS" + TRANSACTION_ID_SELECTION = "TRANSACTION_ID_SELECTION" + PARSE = "PARSE" + CONFIRM_SETTINGS = "CONFIRM_SETTINGS" + REVIEW_FUNDS = "REVIEW_FUNDS" + + +class ApiColumnDefinitionReadType(str, Enum): + """The type of data this column accepts.""" + + TEXT = "TEXT" + NUMBER = "NUMBER" + DATE = "DATE" + UNKNOWN = "UNKNOWN" + FLOAT64 = "FLOAT64" + + +class ApiColumnDefinitionRead(BaseItem): + mindbridge_field_name: Annotated[ + str | None, + Field( + alias="mindbridgeFieldName", + description="The internal name of the analysis source type's column.", + ), + ] = None + mindbridge_field_name_for_non_mac_groupings: Annotated[ + str | None, + Field( + alias="mindbridgeFieldNameForNonMacGroupings", + description="The alternative column name when a non-MAC based account grouping is used.", + ), + ] = None + type: Annotated[ + ApiColumnDefinitionReadType | None, + Field(description="The type of data this column accepts."), + ] = None + required: Annotated[ + bool | None, + Field(description="Indicates whether or not this column is required."), + ] = None + required_for_non_mac_groupings: Annotated[ + bool | None, + Field( + alias="requiredForNonMacGroupings", + description="Indicates whether or not this column is required when using a non-MAC based account grouping.", + ), + ] = None + allow_blanks: Annotated[ + bool | None, + Field( + alias="allowBlanks", + description="Indicates whether or not this column allows the source column to contain blank values.", + ), + ] = None + alternative_mappings: Annotated[ + list[str] | None, + Field( + alias="alternativeMappings", + description="A list of alternative mappings, identified by their `mindbridgeFieldName`. If all of the alternatives are mapped, then this mapping's `required` constraint is considered satisfied. \n\n**Note**: This column may not be mapped if any alternative is also mapped.", + ), + ] = None + default_value: Annotated[ + str | None, + Field( + alias="defaultValue", + description="A value that is substituted for blank values when `allowBlanks` is false.", + ), + ] = None + + +class ApiAnalysisResultRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="The data integrity version, to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + analysis_id: Annotated[ + str | None, + Field(alias="analysisId", description="Identifies the associated analysis."), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + analysis_type_id: Annotated[ + str | None, + Field(alias="analysisTypeId", description="Identifies the type of analysis."), + ] = None + interim: Annotated[ + bool | None, + Field( + description="Indicates whether or not the analysis is using an interim time frame." + ), + ] = None + analysis_periods: Annotated[ + list[ApiAnalysisPeriodRead] | None, + Field( + alias="analysisPeriods", + description="Details about the specific analysis periods under audit.", + ), + ] = None + reporting_period_configuration_id: Annotated[ + str | None, + Field( + alias="reportingPeriodConfigurationId", + description="Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period.", + ), + ] = None + + +class PageablenullRead(BaseItem): + paged: bool | None = None + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + page_size: Annotated[int | None, Field(alias="pageSize")] = None + unpaged: bool | None = None + offset: int | None = None + sort: SortnullRead | None = None + + +class ApiAnalysisPeriodCreate(BaseItem): + start_date: Annotated[ + date | None, + Field( + alias="startDate", description="The first day of the period under analysis." + ), + ] = None + interim_as_at_date: Annotated[ + date | None, + Field( + alias="interimAsAtDate", + description="The last day of the interim period under analysis.", + ), + ] = None + end_date: Annotated[ + date | None, + Field( + alias="endDate", description="The last day of the period under analysis." + ), + ] = None + + +class ApiAnalysisCreate(BaseItem): + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + analysis_type_id: Annotated[ + str | None, + Field(alias="analysisTypeId", description="Identifies the type of analysis."), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the analysis.", max_length=80, min_length=0), + ] = None + interim: Annotated[ + bool | None, + Field( + description="Indicates whether or not the analysis is using an interim time frame." + ), + ] = None + periodic: Annotated[ + bool | None, + Field( + description="Indicates whether or not the analysis is using a periodic time frame." + ), + ] = None + analysis_periods: Annotated[ + list[ApiAnalysisPeriodCreate] | None, + Field( + alias="analysisPeriods", + description="Details about the specific analysis periods under audit.", + ), + ] = None + currency_code: Annotated[ + str | None, + Field( + alias="currencyCode", + description="The currency to be displayed across the analysis results.", + ), + ] = None + reference_id: Annotated[ + str | None, + Field( + alias="referenceId", + description="A reference ID to identify the analysis.", + max_length=256, + min_length=0, + ), + ] = None + + +class ApiEngagementRollForwardRequest(BaseItem): + analysis_id: Annotated[ + str | None, + Field( + alias="analysisId", description="Identifies the analysis to roll forward." + ), + ] = None + target_engagement_id: Annotated[ + str | None, + Field( + alias="targetEngagementId", + description="Identifies the engagement that the analysis will be rolled forward into.", + ), + ] = None + interim: Annotated[ + bool | None, + Field( + description="When `true`, the new analysis period will use an interim time frame." + ), + ] = None + + +class RunAdminReportRequestCreate(BaseItem): + start: Annotated[ + AwareDatetime | None, + Field(description="The first date in the reporting timeframe."), + ] = None + end: Annotated[ + AwareDatetime | None, + Field(description="The last date in the reporting timeframe."), + ] = None + + +class RunAnalysisOverviewReportRequestCreate(BaseItem): + include_amount_value: Annotated[ + bool | None, + Field( + alias="includeAmountValue", + description="Indicates whether to include amount value. Defaults to `false` if not specified.", + ), + ] = None + include_entries_percentage_value: Annotated[ + bool | None, + Field( + alias="includeEntriesPercentageValue", + description="Indicates whether to include entries percentage value. Defaults to `false` if not specified.", + ), + ] = None + include_amount_percentage_value: Annotated[ + bool | None, + Field( + alias="includeAmountPercentageValue", + description="Indicates whether to include amount percentage value. Defaults to `false` if not specified.", + ), + ] = None + include_control_point_and_weights: Annotated[ + bool | None, + Field( + alias="includeControlPointAndWeights", + description="Indicates whether to include control point and weights. Defaults to `false` if not specified.", + ), + ] = None + user_time_zone: Annotated[ + str | None, + Field( + alias="userTimeZone", + description="Time zone to use for certain times in the export. Defaults to `UTC` if not specified or if the provided timezone string value is unable to be determined.", + ), + ] = None + csv_export: Annotated[ + bool | None, + Field( + alias="csvExport", + description="Indicates to export as a CSV file format instead of Excel. Defaults to `true` if not specified.", + ), + ] = None + analysis_ids: Annotated[ + list[str] | None, + Field( + alias="analysisIds", + description="The analysis ids to include. If not provided or empty, all will be included.", + ), + ] = None + risk_score_ids: Annotated[ + list[str] | None, + Field( + alias="riskScoreIds", + description="The risk score ids being filtered. If not provided, all will be included.", + ), + ] = None + + +class RunActivityReportRequestCreateCategory(str, Enum): + ACCOUNT_GROUPING = "ACCOUNT_GROUPING" + ACCOUNT_MAPPING = "ACCOUNT_MAPPING" + ADMIN_REPORT = "ADMIN_REPORT" + ANALYSIS = "ANALYSIS" + ANALYSIS_SETTINGS = "ANALYSIS_SETTINGS" + ANALYSIS_TYPE = "ANALYSIS_TYPE" + API_TOKEN = "API_TOKEN" + AUDIT_ANNOTATION = "AUDIT_ANNOTATION" + COLLECTION_ASSIGNMENT = "COLLECTION_ASSIGNMENT" + CUSTOM_CONTROL_POINT = "CUSTOM_CONTROL_POINT" + ENGAGEMENT = "ENGAGEMENT" + ENGAGEMENT_ACCOUNT_GROUP = "ENGAGEMENT_ACCOUNT_GROUP" + FILE_LOCKER = "FILE_LOCKER" + FILE_MANAGER = "FILE_MANAGER" + FILTER = "FILTER" + GDPDU = "GDPDU" + INGESTION = "INGESTION" + INTEGRATIONS = "INTEGRATIONS" + LIBRARY = "LIBRARY" + MIGRATION = "MIGRATION" + ORGANIZATION = "ORGANIZATION" + POPULATION = "POPULATION" + QUERY = "QUERY" + RATIO = "RATIO" + REPORT_BUILDER = "REPORT_BUILDER" + REPORT = "REPORT" + RESULTS_EXPORT = "RESULTS_EXPORT" + RISK_RANGES = "RISK_RANGES" + RISK_SEGMENTATION_DASHBOARD = "RISK_SEGMENTATION_DASHBOARD" + SCIM_API = "SCIM_API" + SUPPORT_ACCESS = "SUPPORT_ACCESS" + TASK = "TASK" + USER = "USER" + WORKFLOW = "WORKFLOW" + PAGE_VIEW = "PAGE_VIEW" + ANALYSIS_SOURCE = "ANALYSIS_SOURCE" + WEBHOOK = "WEBHOOK" + PROCEDURE_INSTANCE = "PROCEDURE_INSTANCE" + CLOUD_ELEMENTS = "CLOUD_ELEMENTS" + ENGAGEMENT_ACCOUNT_GROUPING_NODE = "ENGAGEMENT_ACCOUNT_GROUPING_NODE" + + +class RunActivityReportRequestCreate(BaseItem): + start: Annotated[ + AwareDatetime | None, + Field(description="The first date in the reporting timeframe."), + ] = None + end: Annotated[ + AwareDatetime | None, + Field(description="The last date in the reporting timeframe."), + ] = None + user_ids: Annotated[ + list[str] | None, + Field( + alias="userIds", + description="The users to include in the report. If empty, all users will be included.", + ), + ] = None + categories: Annotated[ + list[RunActivityReportRequestCreateCategory] | None, + Field( + description="The categories to include in the report. If empty, all categories will be included." + ), + ] = None + only_completed_analyses: Annotated[ + bool | None, + Field( + alias="onlyCompletedAnalyses", + description="Restrict entries to analysis complete events.", + ), + ] = None + + +class ApiVerifyAccountsRequest(BaseItem): + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", + description="The unique identifier of the engagement to verify accounts for.", + ), + ] = None + + +class ApiExportAccountsRequest(BaseItem): + engagement_id: Annotated[str | None, Field(alias="engagementId")] = None + + +class ApiDeleteUnusedAccountMappingsRequest(BaseItem): + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", + description="The unique identifier of the engagement to delete unused account mappings for.", + ), + ] = None + + +class ApiImportAccountGroupingParamsUpdate(BaseItem): + chunked_file_id: Annotated[ + str | None, + Field( + alias="chunkedFileId", + description="The unique identifier of the chunked file that contains the account grouping data.", + ), + ] = None + + +class ApiAccountGroupingPublishStatus(str, Enum): + """The current status of the account grouping.""" + + DRAFT = "DRAFT" + UNPUBLISHED_CHANGES = "UNPUBLISHED_CHANGES" + PUBLISHED = "PUBLISHED" + + +class ApiAccountGrouping(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="The data integrity version, to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfo | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfo | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + name: Annotated[ + dict[str, str] | None, Field(description="The name of the account grouping.") + ] = None + code_display_name: Annotated[ + dict[str, str] | None, + Field( + alias="codeDisplayName", + description="The name of the account code hierarchy system used within the dataset.", + ), + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The delimiter character used to separate each category level in an account grouping code." + ), + ] = None + mac: Annotated[ + bool | None, + Field( + description="When `true`, the account grouping is based on the MAC code system." + ), + ] = None + system: Annotated[ + bool | None, + Field( + description="When `true`, the account grouping is a system account grouping and cannot be modified." + ), + ] = None + archived: Annotated[ + bool | None, Field(description="When `true`, the account grouping is archived.") + ] = None + published_date: Annotated[ + AwareDatetime | None, + Field( + alias="publishedDate", + description="The date that the account grouping was published.", + ), + ] = None + publish_status: Annotated[ + ApiAccountGroupingPublishStatus | None, + Field( + alias="publishStatus", + description="The current status of the account grouping.", + ), + ] = None + + +class ApiImportAccountGroupingParamsCreateType(str, Enum): + """The type of account grouping file being imported.""" + + MINDBRIDGE_TEMPLATE = "MINDBRIDGE_TEMPLATE" + CCH_GROUP_TRIAL_BALANCE = "CCH_GROUP_TRIAL_BALANCE" + + +class ApiImportAccountGroupingParamsCreate(BaseItem): + name: Annotated[ + str | None, Field(description="The name of the new account grouping.") + ] = None + type: Annotated[ + ApiImportAccountGroupingParamsCreateType | None, + Field(description="The type of account grouping file being imported."), + ] = None + chunked_file_id: Annotated[ + str | None, + Field( + alias="chunkedFileId", + description="The unique identifier of the chunked file that contains the account grouping data.", + ), + ] = None + + +class ApiBasicMetricsState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiColumnDateTimeFormat(BaseItem): + selected: Annotated[ + bool | None, + Field( + description="If true, this format was selected during column mapping as the correct format for this column." + ), + ] = None + custom_format_pattern: Annotated[ + str | None, + Field( + alias="customFormatPattern", description="The pattern of this date format." + ), + ] = None + sample_raw_values: Annotated[ + list[str] | None, + Field(alias="sampleRawValues", description="A list of values in this column."), + ] = None + sample_converted_values: Annotated[ + list[AwareDatetime] | None, + Field( + alias="sampleConvertedValues", + description="A list of date time values derived by parsing the text using this format.", + ), + ] = None + + +class ApiCountMetricsState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiCurrencyFormat(BaseItem): + decimal_character: Annotated[ + str | None, + Field( + alias="decimalCharacter", + description="The character used as a decimal separator.", + ), + ] = None + non_decimal_delimiters: Annotated[ + list[str] | None, + Field( + alias="nonDecimalDelimiters", + description="Non decimal separator special characters, including currency and grouping characters.", + ), + ] = None + ambiguous_delimiters: Annotated[ + list[str] | None, + Field( + alias="ambiguousDelimiters", + description="A list of possible delimiter characters, if multiple possible candidates are available.", + ), + ] = None + example: Annotated[str | None, Field(description="An example value.")] = None + + +class ApiDataPreview(BaseItem): + row: Annotated[ + int | None, Field(description="The row number within the table.") + ] = None + column: Annotated[ + int | None, Field(description="The column index within the row.") + ] = None + data: Annotated[ + str | None, Field(description="The value within the target row.") + ] = None + + +class ApiDataTypeMetricsState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiDataTypeMetricsDetectedType(str, Enum): + TEXT = "TEXT" + NUMBER = "NUMBER" + DATE = "DATE" + UNKNOWN = "UNKNOWN" + FLOAT64 = "FLOAT64" + + +class ApiDataTypeMetricsDominantType(str, Enum): + """The type determined to be the most prevalent in this column.""" + + TEXT = "TEXT" + NUMBER = "NUMBER" + DATE = "DATE" + UNKNOWN = "UNKNOWN" + FLOAT64 = "FLOAT64" + + +class ApiDensityMetricsState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiDensityMetrics(BaseItem): + state: Annotated[ + ApiDensityMetricsState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreview] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( + None + ) + density: Annotated[ + float | None, + Field( + description="The percentage density of values against blanks, represented as decimal between 1 and 0." + ), + ] = None + blanks: Annotated[int | None, Field(description="The number of blank values.")] = ( + None + ) + + +class ApiDistinctValueMetricsState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiDistinctValueMetrics(BaseItem): + state: Annotated[ + ApiDistinctValueMetricsState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreview] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( + None + ) + + +class ApiHistogramMetricsState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiHistogramMetrics(BaseItem): + state: Annotated[ + ApiHistogramMetricsState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreview] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( + None + ) + histogram: Annotated[ + dict[str, int] | None, + Field( + description="A map of the number of columns to the number of rows with that many columns, in the case of unevenColumnsMetrics." + ), + ] = None + + +class ApiOverallDataTypeMetricsState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiOverallDataTypeMetrics(BaseItem): + state: Annotated[ + ApiOverallDataTypeMetricsState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreview] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + cell_type_counts: Annotated[ + dict[str, int] | None, + Field( + alias="cellTypeCounts", + description="A map of data types to the number of cells in the table of that data type.", + ), + ] = None + column_type_counts: Annotated[ + dict[str, int] | None, + Field( + alias="columnTypeCounts", + description="A map of data types to the number of columns in the table of that data type.", + ), + ] = None + total_records: Annotated[ + int | None, + Field(alias="totalRecords", description="The total number of values."), + ] = None + blank_records: Annotated[ + int | None, + Field(alias="blankRecords", description="The number of blank values."), + ] = None + column_count: Annotated[ + int | None, Field(alias="columnCount", description="The number of columns.") + ] = None + total_rows: Annotated[ + int | None, Field(alias="totalRows", description="The total number of rows.") + ] = None + + +class ApiSheetMetricsState(str, Enum): + """Validation state of the metric within its context.""" + + PASS = "PASS" + WARN = "WARN" + FAIL = "FAIL" + + +class ApiSheetMetrics(BaseItem): + state: Annotated[ + ApiSheetMetricsState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreview] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( + None + ) + sheet_names: Annotated[ + list[str] | None, + Field( + alias="sheetNames", + description="A list of sheet names within the underlying Excel file.", + ), + ] = None + valid_sheets: Annotated[ + list[str] | None, + Field( + alias="validSheets", + description="A list of usable sheet names within the underlying Excel file.", + ), + ] = None + + +class RangeBigDecimal(BaseItem): + min: float | None = None + max: float | None = None + + +class RangeInteger(BaseItem): + min: int | None = None + max: int | None = None + + +class RangeZonedDateTime(BaseItem): + min: AwareDatetime | None = None + max: AwareDatetime | None = None + + +class ApiEffectiveDateMetricsReadPeriodType(str, Enum): + """Indicates the time period by which the histogram has been broken down.""" + + DAY = "DAY" + WEEK = "WEEK" + MONTH = "MONTH" + + +class ApiEffectiveDateMetricsRead(BaseItem): + period_type: Annotated[ + ApiEffectiveDateMetricsReadPeriodType | None, + Field( + alias="periodType", + description="Indicates the time period by which the histogram has been broken down.", + ), + ] = None + entries_in_period: Annotated[ + int | None, + Field( + alias="entriesInPeriod", + description="The number of entries that occurred within the source period's date range.", + ), + ] = None + entries_out_of_period: Annotated[ + int | None, + Field( + alias="entriesOutOfPeriod", + description="The number of entries that occurred outside of the source period's date range.", + ), + ] = None + debits_in_period: Annotated[ + float | None, + Field( + alias="debitsInPeriod", + description="The total debit amount that occurred within the source period's date range.", + ), + ] = None + credits_in_period: Annotated[ + float | None, + Field( + alias="creditsInPeriod", + description="The total credit amount that occurred within the source period's date range.", + ), + ] = None + in_period_count_histogram: Annotated[ + dict[str, int] | None, + Field( + alias="inPeriodCountHistogram", + description="A map showing the total number of entries that occurred within each indicated date period.", + ), + ] = None + out_of_period_count_histogram: Annotated[ + dict[str, int] | None, + Field( + alias="outOfPeriodCountHistogram", + description="A map showing the total number of entries that occurred outside of each indicated date period.", + ), + ] = None + + +class ApiAnalysisSourceStatusReadStatus(str, Enum): + """The current state of the analysis source.""" + + IMPORTING = "IMPORTING" + UPLOADING = "UPLOADING" + IN_PROGRESS = "IN_PROGRESS" + COMPLETED = "COMPLETED" + CANCELLED = "CANCELLED" + FAILED = "FAILED" + + +class ApiAnalysisSourceStatusRead(BaseItem): + source_id: Annotated[ + str | None, + Field(alias="sourceId", description="Identifies the analysis source object."), + ] = None + analysis_source_type_id: Annotated[ + str | None, + Field( + alias="analysisSourceTypeId", + description="Identifies the analysis source type.", + ), + ] = None + status: Annotated[ + ApiAnalysisSourceStatusReadStatus | None, + Field(description="The current state of the analysis source."), + ] = None + period_id: Annotated[ + str | None, + Field( + alias="periodId", + description="Identifies the analysis period within the analysis.", + ), + ] = None + + +class ApiAnalysisStatusReadPreflightError(str, Enum): + IN_PROGRESS = "IN_PROGRESS" + NOT_READY = "NOT_READY" + ARCHIVED = "ARCHIVED" + REQUIRED_FILES_MISSING = "REQUIRED_FILES_MISSING" + SOURCES_NOT_READY = "SOURCES_NOT_READY" + SOURCE_ERROR = "SOURCE_ERROR" + UNVERIFIED_ACCOUNT_MAPPINGS = "UNVERIFIED_ACCOUNT_MAPPINGS" + ANALYSIS_PERIOD_OVERLAP = "ANALYSIS_PERIOD_OVERLAP" + SOURCE_WARNINGS_PRESENT = "SOURCE_WARNINGS_PRESENT" + + +class ApiAnalysisStatusReadStatus(str, Enum): + """The current state of the analysis.""" + + NOT_STARTED = "NOT_STARTED" + IMPORTING_FILE = "IMPORTING_FILE" + PREPARING_DATA = "PREPARING_DATA" + PROCESSING = "PROCESSING" + CONSOLIDATING_RESULTS = "CONSOLIDATING_RESULTS" + COMPLETED = "COMPLETED" + FAILED = "FAILED" + + +class ApiAnalysisStatusRead(BaseItem): + analysis_id: Annotated[ + str | None, + Field(alias="analysisId", description="Identifies the associated analysis."), + ] = None + analysis_type_id: Annotated[ + str | None, + Field(alias="analysisTypeId", description="Identifies the type of analysis."), + ] = None + preflight_errors: Annotated[ + list[ApiAnalysisStatusReadPreflightError] | None, + Field( + alias="preflightErrors", + description="The errors that occurred before the analysis was run.", + ), + ] = None + source_statuses: Annotated[ + list[ApiAnalysisSourceStatusRead] | None, + Field( + alias="sourceStatuses", + description="Details about the state of each analysis source.", + ), + ] = None + available_features: Annotated[ + dict[str, bool] | None, + Field( + alias="availableFeatures", + description="Details about the various analysis capabilities available in MindBridge. [Learn more](https://support.mindbridge.ai/hc/en-us/articles/360056395234)", + ), + ] = None + status: Annotated[ + ApiAnalysisStatusReadStatus | None, + Field(description="The current state of the analysis."), + ] = None + ready: Annotated[ + bool | None, + Field(description="Indicates whether or not the analysis is ready to be run."), + ] = None + mapped_account_mapping_count: Annotated[ + int | None, + Field( + alias="mappedAccountMappingCount", + description="The number of mapped accounts.", + ), + ] = None + unmapped_account_mapping_count: Annotated[ + int | None, + Field( + alias="unmappedAccountMappingCount", + description="The number of unmapped accounts.", + ), + ] = None + inferred_account_mapping_count: Annotated[ + int | None, + Field( + alias="inferredAccountMappingCount", + description="The number of inferred account mapping; this can be considered a warning on partial matches.", + ), + ] = None + re_run_ready: Annotated[ + bool | None, + Field( + alias="reRunReady", + description="Indicates whether or not the analysis is ready to be run again.", + ), + ] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm(BaseItem): + field_eq: Annotated[int | float | bool | str | None, Field(alias="$eq")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm1(BaseItem): + field_ne: Annotated[int | float | bool | str | None, Field(alias="$ne")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm2(BaseItem): + field_gt: Annotated[int | float | str | None, Field(alias="$gt")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm3(BaseItem): + field_gte: Annotated[int | float | str | None, Field(alias="$gte")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm4(BaseItem): + field_lt: Annotated[int | float | str | None, Field(alias="$lt")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm5(BaseItem): + field_lte: Annotated[int | float | str | None, Field(alias="$lte")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm6(BaseItem): + field_contains: Annotated[list[str] | None, Field(alias="$contains")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm8(BaseItem): + field_in: Annotated[list[int | float | bool | str] | None, Field(alias="$in")] = ( + None + ) + + +class MindBridgeQueryTermMindBridgeQueryTerm9(BaseItem): + field_nin: Annotated[list[int | float | bool | str] | None, Field(alias="$nin")] = ( + None + ) + + +class MindBridgeQueryTermMindBridgeQueryTerm10(BaseItem): + field_flags: Annotated[dict[str, bool] | None, Field(alias="$flags")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm11(BaseItem): + field_isubstr: Annotated[str | None, Field(alias="$isubstr")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm12(BaseItem): + field_iprefix: Annotated[str | None, Field(alias="$iprefix")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm13(BaseItem): + field_niprefix: Annotated[str | None, Field(alias="$niprefix")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm16(BaseItem): + field_keyword_prefix: Annotated[str | None, Field(alias="$keyword_prefix")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm17(BaseItem): + field_keyword_prefix_not: Annotated[ + str | None, Field(alias="$keyword_prefix_not") + ] = None + + +class JsonTableBodyJsonTableBody(BaseItem): + pass + + +JsonTableBody = RootModel[ + list[list[int | float | bool | str] | JsonTableBodyJsonTableBody] | None +] + + +class AnalysisResultWebhookPayload(BaseItem): + type: Annotated[ + AnalysisResultWebhookPayloadType | None, + Field(description="The event type that triggered the webhook."), + ] = None + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + timestamp: Annotated[ + AwareDatetime | None, + Field(description="The time that the webhook was triggered."), + ] = None + sender_id: Annotated[ + ObjectId | None, + Field( + alias="senderId", + description="The ID of the registered webhook configuration that initiated the outbound request.", + ), + ] = None + tenant_id: Annotated[ + str | None, + Field( + alias="tenantId", + description="The name of the tenant that triggered the webhook.", + ), + ] = None + user_id: Annotated[ + ObjectId | None, + Field( + alias="userId", + description="The ID of the user that initiated the event that triggered the webhook.", + ), + ] = None + data: Annotated[ + AnalysisResultWebhookData | None, + Field(description="The data associated with the webhook event."), + ] = None + + +class AnalysisSourceWebhookPayload(BaseItem): + type: Annotated[ + AnalysisSourceWebhookPayloadType | None, + Field(description="The event type that triggered the webhook."), + ] = None + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + timestamp: Annotated[ + AwareDatetime | None, + Field(description="The time that the webhook was triggered."), + ] = None + sender_id: Annotated[ + ObjectId | None, + Field( + alias="senderId", + description="The ID of the registered webhook configuration that initiated the outbound request.", + ), + ] = None + tenant_id: Annotated[ + str | None, + Field( + alias="tenantId", + description="The name of the tenant that triggered the webhook.", + ), + ] = None + user_id: Annotated[ + ObjectId | None, + Field( + alias="userId", + description="The ID of the user that initiated the event that triggered the webhook.", + ), + ] = None + data: Annotated[ + AnalysisSourceWebhookData | None, + Field(description="The data associated with the webhook event."), + ] = None + + +class EngagementSubscriptionWebhookPayload(BaseItem): + type: Annotated[ + Literal["unmapped.accounts"] | None, + Field(description="The event type that triggered the webhook."), + ] = None + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + timestamp: Annotated[ + AwareDatetime | None, + Field(description="The time that the webhook was triggered."), + ] = None + sender_id: Annotated[ + ObjectId | None, + Field( + alias="senderId", + description="The ID of the registered webhook configuration that initiated the outbound request.", + ), + ] = None + tenant_id: Annotated[ + str | None, + Field( + alias="tenantId", + description="The name of the tenant that triggered the webhook.", + ), + ] = None + user_id: Annotated[ + ObjectId | None, + Field( + alias="userId", + description="The ID of the user that initiated the event that triggered the webhook.", + ), + ] = None + data: Annotated[ + EngagementSubscriptionWebhookData | None, + Field(description="The data associated with the webhook event."), + ] = None + + +class EngagementWebhookPayload(BaseItem): + type: Annotated[ + EngagementWebhookPayloadType | None, + Field(description="The event type that triggered the webhook."), + ] = None + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + timestamp: Annotated[ + AwareDatetime | None, + Field(description="The time that the webhook was triggered."), + ] = None + sender_id: Annotated[ + ObjectId | None, + Field( + alias="senderId", + description="The ID of the registered webhook configuration that initiated the outbound request.", + ), + ] = None + tenant_id: Annotated[ + str | None, + Field( + alias="tenantId", + description="The name of the tenant that triggered the webhook.", + ), + ] = None + user_id: Annotated[ + ObjectId | None, + Field( + alias="userId", + description="The ID of the user that initiated the event that triggered the webhook.", + ), + ] = None + data: Annotated[ + EngagementWebhookData | None, + Field(description="The data associated with the webhook event."), + ] = None + + +class FileManagerWebhookPayload(BaseItem): + type: Annotated[ + FileManagerWebhookPayloadType | None, + Field(description="The event type that triggered the webhook."), + ] = None + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + timestamp: Annotated[ + AwareDatetime | None, + Field(description="The time that the webhook was triggered."), + ] = None + sender_id: Annotated[ + ObjectId | None, + Field( + alias="senderId", + description="The ID of the registered webhook configuration that initiated the outbound request.", + ), + ] = None + tenant_id: Annotated[ + str | None, + Field( + alias="tenantId", + description="The name of the tenant that triggered the webhook.", + ), + ] = None + user_id: Annotated[ + ObjectId | None, + Field( + alias="userId", + description="The ID of the user that initiated the event that triggered the webhook.", + ), + ] = None + data: Annotated[ + FileManagerWebhookData | None, + Field(description="The data associated with the webhook event."), + ] = None + + +class UserWebhookPayload(BaseItem): + type: Annotated[ + Literal["user.deleted"] | None, + Field(description="The event type that triggered the webhook."), + ] = None + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + timestamp: Annotated[ + AwareDatetime | None, + Field(description="The time that the webhook was triggered."), + ] = None + sender_id: Annotated[ + ObjectId | None, + Field( + alias="senderId", + description="The ID of the registered webhook configuration that initiated the outbound request.", + ), + ] = None + tenant_id: Annotated[ + str | None, + Field( + alias="tenantId", + description="The name of the tenant that triggered the webhook.", + ), + ] = None + user_id: Annotated[ + ObjectId | None, + Field( + alias="userId", + description="The ID of the user that initiated the event that triggered the webhook.", + ), + ] = None + data: Annotated[ + UserWebhookData | None, + Field(description="The data associated with the webhook event."), + ] = None + + +class UserRoleWebhookPayload(BaseItem): + type: Annotated[ + UserRoleWebhookPayloadType | None, + Field(description="The event type that triggered the webhook."), + ] = None + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + timestamp: Annotated[ + AwareDatetime | None, + Field(description="The time that the webhook was triggered."), + ] = None + sender_id: Annotated[ + ObjectId | None, + Field( + alias="senderId", + description="The ID of the registered webhook configuration that initiated the outbound request.", + ), + ] = None + tenant_id: Annotated[ + str | None, + Field( + alias="tenantId", + description="The name of the tenant that triggered the webhook.", + ), + ] = None + user_id: Annotated[ + ObjectId | None, + Field( + alias="userId", + description="The ID of the user that initiated the event that triggered the webhook.", + ), + ] = None + data: Annotated[ + UserRoleWebhookData | None, + Field(description="The data associated with the webhook event."), + ] = None + + +class UserLoginWebhookPayload(BaseItem): + type: Annotated[ + Literal["user.login"] | None, + Field(description="The event type that triggered the webhook."), + ] = None + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + timestamp: Annotated[ + AwareDatetime | None, + Field(description="The time that the webhook was triggered."), + ] = None + sender_id: Annotated[ + ObjectId | None, + Field( + alias="senderId", + description="The ID of the registered webhook configuration that initiated the outbound request.", + ), + ] = None + tenant_id: Annotated[ + str | None, + Field( + alias="tenantId", + description="The name of the tenant that triggered the webhook.", + ), + ] = None + user_id: Annotated[ + ObjectId | None, + Field( + alias="userId", + description="The ID of the user that initiated the event that triggered the webhook.", + ), + ] = None + data: Annotated[ + UserLoginWebhookData | None, + Field(description="The data associated with the webhook event."), + ] = None + + +class UserStatusWebhookPayload(BaseItem): + type: Annotated[ + Literal["user.status"] | None, + Field(description="The event type that triggered the webhook."), + ] = None + event_id: Annotated[ + ObjectId | None, + Field( + alias="eventId", + description="The ID of the event that triggered the outbound request.", + ), + ] = None + timestamp: Annotated[ + AwareDatetime | None, + Field(description="The time that the webhook was triggered."), + ] = None + sender_id: Annotated[ + ObjectId | None, + Field( + alias="senderId", + description="The ID of the registered webhook configuration that initiated the outbound request.", + ), + ] = None + tenant_id: Annotated[ + str | None, + Field( + alias="tenantId", + description="The name of the tenant that triggered the webhook.", + ), + ] = None + user_id: Annotated[ + ObjectId | None, + Field( + alias="userId", + description="The ID of the user that initiated the event that triggered the webhook.", + ), + ] = None + data: Annotated[ + UserStatusWebhookData | None, + Field(description="The data associated with the webhook event."), + ] = None + + +class ApiTaskRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + analysis_result_id: Annotated[str | None, Field(alias="analysisResultId")] = None + analysis_id: Annotated[ + str | None, + Field(alias="analysisId", description="Identifies the associated analysis."), + ] = None + analysis_type_id: Annotated[ + str | None, + Field( + alias="analysisTypeId", + description="Identifies the associated analysis type.", + ), + ] = None + transaction: Annotated[ + str | None, Field(description="The name of the associated transaction.") + ] = None + name: Annotated[ + str | None, + Field( + description="The task's name. Generated based on on the related entry or transaction." + ), + ] = None + row_id: Annotated[ + int | None, Field(alias="rowId", description="Identifies the associated entry.") + ] = None + transaction_id: Annotated[ + int | None, + Field( + alias="transactionId", description="Identifies the associated transaction." + ), + ] = None + status: Annotated[ + ApiTaskReadStatus | None, + Field(description="The current state of the task.", title="Task Status"), + ] = None + assigned_id: Annotated[ + str | None, + Field( + alias="assignedId", description="Identifies the user assigned to this task." + ), + ] = None + description: Annotated[ + str | None, Field(description="A description of the task.") + ] = None + comments: Annotated[ + list[ApiTaskCommentRead] | None, + Field( + description="A list of all the comments that have been made on this task." + ), + ] = None + sample: Annotated[ + str | None, Field(description="Which sample this task is a part of.") + ] = None + audit_areas: Annotated[ + list[str] | None, + Field( + alias="auditAreas", + description="Which audit areas this task is associated with.", + ), + ] = None + assertions: Annotated[ + list[str] | None, + Field(description="Which assertions this task is associated with."), + ] = None + type: Annotated[ + ApiTaskReadType | None, + Field( + description="The type of entry this task is associated with.", + title="Task Type", + ), + ] = None + sample_type: Annotated[ + ApiTaskReadSampleType | None, + Field( + alias="sampleType", + description="The sampling method used to create this task.", + title="Sample Type", + ), + ] = None + entry_type: Annotated[ + str | None, + Field( + alias="entryType", + description="For AP and AR analyses this is the entry type for the associated entry.", + ), + ] = None + vendor_name: Annotated[ + str | None, + Field( + alias="vendorName", + description="For AP analyses this is the vendor name for the associated entry.", + ), + ] = None + customer_name: Annotated[ + str | None, + Field( + alias="customerName", + description="For AR analyses this is the customer name for the associated entry.", + ), + ] = None + invoice_ref: Annotated[ + str | None, + Field( + alias="invoiceRef", + description="For AP and AR analyses this is the Invoice ref value for the associated entry.", + ), + ] = None + credit_value: Annotated[ + int | None, + Field( + alias="creditValue", + deprecated=True, + description="The credit value of the associated transaction or entry, formatted as MONEY_100.", + ), + ] = None + debit_value: Annotated[ + int | None, + Field( + alias="debitValue", + deprecated=True, + description="The debit value of the associated transaction or entry, formatted as MONEY_100.", + ), + ] = None + risk_scores: Annotated[ + dict[str, int] | None, + Field( + alias="riskScores", + description="A map of ensemble names or IDs mapped to their risk score value. The value is a PERCENTAGE_FIXED_POINT type.", + ), + ] = None + filter_statement: Annotated[ + str | None, + Field( + alias="filterStatement", + description="The filter statement that was applied when creating this task via a bulk task creation.", + ), + ] = None + task_approval_status: Annotated[ + ApiTaskReadTaskApprovalStatus | None, + Field(alias="taskApprovalStatus", title="Task Approval Status"), + ] = None + due_date: Annotated[date | None, Field(alias="dueDate")] = None + approver_id: Annotated[str | None, Field(alias="approverId")] = None + tags: list[str] | None = None + amounts: dict[str, MoneyRead] | None = None + + +class ApiFilterAccountConditionApiFilterAccountCondition13(BaseItem): + type: Annotated[ + Literal["ACCOUNT_NODE_ARRAY"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "ACCOUNT_NODE_ARRAY" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + account_selections: Annotated[ + list[ApiFilterAccountSelection] | None, Field(alias="accountSelections") + ] = None + + +class ApiFilterControlPointConditionApiFilterControlPointCondition13(BaseItem): + type: Annotated[ + Literal["CONTROL_POINT"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "CONTROL_POINT" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel | None, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] = None + control_points: Annotated[ + list[ApiFilterControlPointSelection] | None, + Field(alias="controlPoints", description="A list of control point selections."), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13(BaseItem): + type: Annotated[ + Literal["TYPEAHEAD_ENTRY"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "TYPEAHEAD_ENTRY" + field: str | None = None + field_label: Annotated[str | None, Field(alias="fieldLabel")] = None + negated: bool | None = None + full_condition_description: Annotated[ + str | None, Field(alias="fullConditionDescription") + ] = None + values: Annotated[ + list[ApiTypeaheadEntry] | None, + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] = None + + +class ApiLibraryRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + name: Annotated[ + str | None, + Field( + description="The current name of the library.", max_length=80, min_length=0 + ), + ] = None + based_on_library_id: Annotated[ + str | None, + Field( + alias="basedOnLibraryId", + description="Identifies the library that the new library is based on. This may be a user-created library or a MindBridge system library.", + ), + ] = None + original_system_library_id: Annotated[ + str | None, + Field( + alias="originalSystemLibraryId", + description="Identifies the original MindBridge-supplied library.", + ), + ] = None + warnings_dismissed: Annotated[ + bool | None, + Field( + alias="warningsDismissed", + description="When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI.", + ), + ] = None + conversion_warnings: Annotated[ + list[ProblemRead] | None, + Field( + alias="conversionWarnings", + description="A list of accounts that failed to convert the selected base library's setting to the selected account grouping.", + ), + ] = None + account_grouping_id: Annotated[ + str | None, + Field( + alias="accountGroupingId", + description="Identifies the account grouping used.", + ), + ] = None + analysis_type_ids: Annotated[ + list[str] | None, + Field( + alias="analysisTypeIds", + description="Identifies the analysis types used in the library.", + ), + ] = None + default_delimiter: Annotated[ + str | None, + Field( + alias="defaultDelimiter", + description="Identifies the default delimiter used in imported CSV files.", + ), + ] = None + control_point_selection_permission: Annotated[ + bool | None, + Field( + alias="controlPointSelectionPermission", + description="When set to `true`, control points can be added or removed within each risk score.", + ), + ] = None + control_point_weight_permission: Annotated[ + bool | None, + Field( + alias="controlPointWeightPermission", + description="When set to `true`, the weight of each control point can be adjusted within each risk score.", + ), + ] = None + control_point_settings_permission: Annotated[ + bool | None, + Field( + alias="controlPointSettingsPermission", + description="When set to `true`, individual control point settings can be adjusted within each risk score.", + ), + ] = None + risk_score_and_groups_selection_permission: Annotated[ + bool | None, + Field( + alias="riskScoreAndGroupsSelectionPermission", + description="When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited.", + ), + ] = None + risk_range_edit_permission: Annotated[ + bool | None, Field(alias="riskRangeEditPermission") + ] = None + risk_score_display: Annotated[ + ApiLibraryReadRiskScoreDisplay | None, + Field( + alias="riskScoreDisplay", + description="Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.", + ), + ] = None + system: Annotated[ + bool | None, + Field( + description="Indicates whether or not the library is a MindBridge system library." + ), + ] = None + archived: Annotated[ + bool | None, + Field( + description="Indicates whether or not the library is archived. Archived libraries cannot be selected when creating an engagement." + ), + ] = None + + +class ApiFileManagerDirectoryUpdate(ApiFileManagerEntityUpdate): + name: Annotated[str | None, Field(description="The name of the directory.")] = None + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiFileManagerDirectoryRead(ApiFileManagerEntityRead): + name: Annotated[str | None, Field(description="The name of the directory.")] = None + engagement_id: Annotated[ + str, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiAnalysisConfigUpdate(BaseItem): + risk_groups: Annotated[ + list[ApiRiskGroupUpdate] | None, + Field( + alias="riskGroups", + description="The list of risk groups associated with this analysis config.", + ), + ] = None + + +class ApiAnalysisTypeConfigurationUpdate(BaseItem): + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + system: bool | None = None + configuration: Annotated[ + ApiAnalysisConfigUpdate | None, + Field(description="The configuration details for this analysis type."), + ] = None + + +class ApiAnalysisConfigRead(BaseItem): + risk_groups: Annotated[ + list[ApiRiskGroupRead] | None, + Field( + alias="riskGroups", + description="The list of risk groups associated with this analysis config.", + ), + ] = None + + +class ApiAnalysisTypeConfigurationRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + system: bool | None = None + library_id: Annotated[ + str | None, + Field( + alias="libraryId", + description="Identifies the library associated with this configuration.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + analysis_id: Annotated[ + str | None, + Field( + alias="analysisId", + description="Identifies the analysis associated with this configuration.", + ), + ] = None + analysis_type_id: Annotated[ + str | None, + Field(alias="analysisTypeId", description="Identifies the type of analysis."), + ] = None + configuration: Annotated[ + ApiAnalysisConfigRead | None, + Field(description="The configuration details for this analysis type."), + ] = None + control_point_bundle_version: Annotated[ + str | None, + Field( + alias="controlPointBundleVersion", + description="The version of the control point bundle used in this configuration.", + ), + ] = None + template: Annotated[ + bool | None, + Field(description="Indicates whether this configuration is a template."), + ] = None + + +class ApiDuplicateVirtualColumnUpdate(ApiVirtualColumnUpdate): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", description="The position of the duplicated column." + ), + ] = None + name: Annotated[str, Field(description="The name of the virtual column.")] + type: Annotated[ + ApiVirtualColumnUpdateType, Field(description="The type of virtual column.") + ] + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiJoinVirtualColumnUpdate(ApiVirtualColumnUpdate): + column_indices: Annotated[ + list[int] | None, + Field(alias="columnIndices", description="The position of the joined column."), + ] = None + delimiter: Annotated[ + str | None, Field(description="The character(s) used to separate values.") + ] = None + name: Annotated[str, Field(description="The name of the virtual column.")] + type: Annotated[ + ApiVirtualColumnUpdateType, Field(description="The type of virtual column.") + ] + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiProposedDuplicateVirtualColumnUpdate(ApiProposedVirtualColumnUpdate): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", + description="The position of the column to be duplicated.", + ), + ] = None + + +class ApiProposedJoinVirtualColumnUpdate(ApiProposedVirtualColumnUpdate): + column_indices: Annotated[ + list[int] | None, + Field( + alias="columnIndices", + description="The positions of the columns to be joined.", + ), + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The character(s) that should be inserted to separate values." + ), + ] = None + + +class ApiProposedSplitByDelimiterVirtualColumnUpdate(ApiProposedVirtualColumnUpdate): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", description="The position of the column to be split." + ), + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The character(s) that should be used to separate the string into parts." + ), + ] = None + split_index: Annotated[ + int | None, + Field( + alias="splitIndex", + description="The position of the part to be used as a virtual column.", + ), + ] = None + + +class ApiProposedSplitByPositionVirtualColumnUpdate(ApiProposedVirtualColumnUpdate): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", description="The position of the column to be split." + ), + ] = None + start_position: Annotated[ + int | None, + Field( + alias="startPosition", + description="The starting position of the substring to be used as the new column. **Inclusive**.", + ), + ] = None + end_position: Annotated[ + int | None, + Field( + alias="endPosition", + description="The ending position of the substring to be used as the new column. **Exclusive**.", + ), + ] = None + + +class ApiSplitByDelimiterVirtualColumnUpdate(ApiVirtualColumnUpdate): + column_index: Annotated[ + int | None, + Field(alias="columnIndex", description="The position of the split column."), + ] = None + delimiter: Annotated[ + str | None, + Field(description="The character(s) used to separate the string into parts."), + ] = None + split_index: Annotated[ + int | None, + Field( + alias="splitIndex", + description="The position of the part used as a virtual column.", + ), + ] = None + name: Annotated[str, Field(description="The name of the virtual column.")] + type: Annotated[ + ApiVirtualColumnUpdateType, Field(description="The type of virtual column.") + ] + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiSplitByPositionVirtualColumnUpdate(ApiVirtualColumnUpdate): + column_index: Annotated[ + int | None, + Field(alias="columnIndex", description="The position of the split column."), + ] = None + start_position: Annotated[ + int | None, + Field( + alias="startPosition", + description="The starting position of the substring in the new column. **Inclusive**.", + ), + ] = None + end_position: Annotated[ + int | None, + Field( + alias="endPosition", + description="The ending position of the substring in the new column. **Exclusive**.", + ), + ] = None + name: Annotated[str, Field(description="The name of the virtual column.")] + type: Annotated[ + ApiVirtualColumnUpdateType, Field(description="The type of virtual column.") + ] + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiPageableRead(BaseItem): + page_number: Annotated[ + int | None, + Field( + alias="pageNumber", deprecated=True, description="The current page number." + ), + ] = None + page_size: Annotated[ + int | None, + Field( + alias="pageSize", + deprecated=True, + description="The number of requested elements on a page.", + ), + ] = None + offset: Annotated[ + int | None, + Field( + deprecated=True, + description="Indicates by how many pages the first page is offset.", + ), + ] = None + sort: Annotated[ + SortnullRead | None, + Field(deprecated=True, description="Indicates how the data will be sorted."), + ] = None + + +class ApiPageApiWebhookEventLogRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiWebhookEventLogRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiUserRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiUserRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiTransactionIdPreviewIndicatorRead(BaseItem): + rating: Annotated[ + ApiTransactionIdPreviewIndicatorReadRating | None, + Field(description="The quality of the indicator as rated by MindBridge."), + ] = None + value: Annotated[ + Any | None, Field(description="A value for this specific indicator.") + ] = None + data: Annotated[ + list[ApiTransactionIdPreviewRowRead] | None, + Field(description="The set of transactions related to a specific indicator."), + ] = None + + +class ApiTransactionIdPreviewRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + engagement_id: Annotated[ + str | None, Field(alias="engagementId", deprecated=True) + ] = None + analysis_id: Annotated[str | None, Field(alias="analysisId", deprecated=True)] = ( + None + ) + analysis_source_id: Annotated[ + str | None, + Field( + alias="analysisSourceId", + description="The unique identifier of the associated analysis source.", + ), + ] = None + column_selection: Annotated[ + list[int] | None, + Field( + alias="columnSelection", + description="The list of columns used to generate the transaction ID.", + ), + ] = None + type: Annotated[ + ApiTransactionIdPreviewReadType | None, + Field(description="The type used when selecting a transaction ID."), + ] = None + smart_splitter: Annotated[ + bool | None, + Field( + alias="smartSplitter", + description="Indicates whether or not the Smart Splitter was run when selecting a transaction ID.", + ), + ] = None + overall_rating: Annotated[ + ApiTransactionIdPreviewReadOverallRating | None, + Field( + alias="overallRating", + description="The quality of the transaction ID as rated by MindBridge.", + ), + ] = None + indicators: Annotated[ + dict[str, ApiTransactionIdPreviewIndicatorRead] | None, + Field( + description="The data integrity checks used when selecting a transaction ID." + ), + ] = None + entry_previews: Annotated[ + list[ApiTransactionIdPreviewRowRead] | None, + Field( + alias="entryPreviews", + description="Details about the transactions generated by this transaction ID selection.", + ), + ] = None + + +class ApiPageApiTaskRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiTaskRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiTaskHistoryRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiTaskHistoryRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiRiskRangesRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiRiskRangesRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiReportingPeriodConfigurationRequestCreate(BaseItem): + monthly_reporting_periods: Annotated[ + list[ApiMonthlyReportingPeriodCreate] | None, + Field(alias="monthlyReportingPeriods"), + ] = None + weekly_reporting_periods: Annotated[ + list[ApiWeeklyReportingPeriodCreate] | None, + Field(alias="weeklyReportingPeriods"), + ] = None + + +class ApiReportingPeriodConfigurationRead(BaseItem): + id: str | None = None + version: int | None = None + creation_date: Annotated[AwareDatetime | None, Field(alias="creationDate")] = None + last_modified_date: Annotated[ + AwareDatetime | None, Field(alias="lastModifiedDate") + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, Field(alias="createdUserInfo") + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, Field(alias="lastModifiedUserInfo") + ] = None + monthly_reporting_periods: Annotated[ + list[ApiMonthlyReportingPeriodRead] | None, + Field( + alias="monthlyReportingPeriods", + description="List of monthly reporting periods.", + ), + ] = None + weekly_reporting_periods: Annotated[ + list[ApiWeeklyReportingPeriodRead] | None, + Field( + alias="weeklyReportingPeriods", + description="List of weekly reporting periods.", + ), + ] = None + status: ApiReportingPeriodConfigurationReadStatus | None = None + + +class ApiPageApiReportingPeriodConfigurationRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiReportingPeriodConfigurationRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiOrganizationRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiOrganizationRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiLibraryRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiLibraryRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiFileExportRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiFileExportRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiFileMergeRequestCreate(BaseItem): + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + parent_file_manager_entity_id: Annotated[ + str | None, + Field( + alias="parentFileManagerEntityId", + description="Identifies the parent directory. If NULL, the directory is positioned at the root level.", + ), + ] = None + output_file_name: Annotated[ + str | None, + Field( + alias="outputFileName", + description="The name of the file being generated in the requested merge operation.", + ), + ] = None + file_column_mappings: Annotated[ + dict[str, list[int]] | None, + Field( + alias="fileColumnMappings", + deprecated=True, + description="**Deprecated: use mappings instead.** Reference to the files and the columns to include in the merge operation.", + ), + ] = None + mappings: Annotated[ + list[FileMergeMappingCreate] | None, + Field( + description="Ordered list of file/column selections to merge (each entry has fileManagerFileId and its column indexes)." + ), + ] = None + + +class ApiPageApiFileManagerEntityRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiFileManagerDirectoryRead | ApiFileManagerFileRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiBasicMetricsRead(BaseItem): + state: Annotated[ + ApiBasicMetricsReadState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreviewRead] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + + +class ApiCountMetricsRead(BaseItem): + state: Annotated[ + ApiCountMetricsReadState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreviewRead] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( + None + ) + + +class ApiDateTypeDetailsRead(BaseItem): + range: Annotated[ + RangeZonedDateTimeRead | None, + Field( + description="A pair of values representing the earliest and latest values within this column." + ), + ] = None + ambiguous_date_time_formats: Annotated[ + list[ApiColumnDateTimeFormatRead] | None, + Field( + alias="ambiguousDateTimeFormats", + description="A list of possible date time formats, if multiple possible candidates are available.", + ), + ] = None + unambiguous_date_time_formats: Annotated[ + list[ApiColumnDateTimeFormatRead] | None, + Field( + alias="unambiguousDateTimeFormats", + description="A list of possible date time formats, if multiple possible candidates are available.", + ), + ] = None + + +class ApiNumericTypeDetailsRead(BaseItem): + range: Annotated[ + RangeBigDecimalRead | None, + Field( + description="A pair of values representing the min and max values within this column." + ), + ] = None + currency_format: Annotated[ + ApiCurrencyFormatRead | None, + Field( + alias="currencyFormat", + description="Metadata on the detected number format of this column.", + ), + ] = None + example_pair_from_currency_formatter: Annotated[ + list[str] | None, + Field( + alias="examplePairFromCurrencyFormatter", + description="A pair of values as examples in the event that two or more unambiguous number formats are detected in the same column.", + ), + ] = None + sum: Annotated[ + float | None, + Field( + description="The sum of all values in this column, up to a maximum of 10e50. Values smaller than 10e-50 will be rounded up." + ), + ] = None + capped_sum: Annotated[ + bool | None, + Field( + alias="cappedSum", + description="If `true` then the sum is larger than 10e50.", + ), + ] = None + capped_max: Annotated[ + bool | None, + Field( + alias="cappedMax", + description="If `true` then at least one individual value is larger than 10e50.", + ), + ] = None + + +class ApiTableMetadataRead(BaseItem): + cell_length_metrics: Annotated[ + ApiCountMetricsRead | None, + Field( + alias="cellLengthMetrics", + description="Metrics regarding cells that are larger than 2000 characters in the table.", + ), + ] = None + density_metrics: Annotated[ + ApiDensityMetricsRead | None, + Field( + alias="densityMetrics", description="Metrics regarding whole table density." + ), + ] = None + inconsistent_date_metrics: Annotated[ + ApiCountMetricsRead | None, + Field( + alias="inconsistentDateMetrics", + description="Metrics regarding inconsistent date formats within columns for the entire table.", + ), + ] = None + null_value_metrics: Annotated[ + ApiCountMetricsRead | None, + Field( + alias="nullValueMetrics", + description="Metrics regarding “null” values across the entire table.", + ), + ] = None + numeric_column_metrics: Annotated[ + ApiBasicMetricsRead | None, + Field( + alias="numericColumnMetrics", + description="Metrics regarding numeric columns within the table.", + ), + ] = None + overall_data_type_metrics: Annotated[ + ApiOverallDataTypeMetricsRead | None, + Field( + alias="overallDataTypeMetrics", + description="Metrics regarding detected data types across the entire table.", + ), + ] = None + scientific_notation_metrics: Annotated[ + ApiCountMetricsRead | None, + Field( + alias="scientificNotationMetrics", + description="Metrics regarding scientific notation across the entire table.", + ), + ] = None + sheet_metrics: Annotated[ + ApiSheetMetricsRead | None, + Field( + alias="sheetMetrics", + description="Metrics regarding excel sheets within the underlying excel file.", + ), + ] = None + special_character_metrics: Annotated[ + ApiCountMetricsRead | None, + Field( + alias="specialCharacterMetrics", + description="Metrics regarding special characters across the entire table.", + ), + ] = None + uneven_columns_metrics: Annotated[ + ApiHistogramMetricsRead | None, + Field( + alias="unevenColumnsMetrics", + description="Metrics regarding column length by row.", + ), + ] = None + + +class ApiTextTypeDetailsRead(BaseItem): + range: Annotated[ + RangeIntegerRead | None, + Field( + description="A pair of values representing the min and max length of text values within this column." + ), + ] = None + + +class ApiPageApiEngagementRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiEngagementRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiEngagementAccountGroupRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiEngagementAccountGroupRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiAsyncResult(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfo | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfo | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + type: Annotated[ + ApiAsyncResultType | None, + Field(description="Indicates the type of job being run."), + ] = None + status: Annotated[ + ApiAsyncResultStatus | None, + Field(description="Indicates the current state of the job."), + ] = None + entity_id: Annotated[ + str | None, + Field(alias="entityId", description="Identifies the entity used in the job."), + ] = None + entity_type: Annotated[ + ApiAsyncResultEntityType | None, + Field( + alias="entityType", + description="Identifies the entity type used in the job.", + ), + ] = None + error: Annotated[ + str | None, Field(description="The reason why the async job failed.") + ] = None + error_message: Annotated[str | None, Field(alias="errorMessage")] = None + + +class ApiPageApiEngagementAccountGroupingRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiEngagementAccountGroupingRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiDatabricksAuthorizationRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiDatabricksAuthorizationRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ActionableErrorResponse(BaseItem): + type: Annotated[ + str | None, + Field( + description="Indicates the type of error that occurred. Type values are formatted as URLs." + ), + ] = None + title: Annotated[str | None, Field(description="A description of the error.")] = ( + None + ) + problems: Annotated[ + list[Problem] | None, Field(description="The reason(s) why the error occurred.") + ] = None + instance: Annotated[ + str | None, Field(description="A unique identifier for this request.") + ] = None + status: Annotated[ + int | None, + Field(description="The HTTP status code determined by the error type."), + ] = None + origin: Annotated[ + str | None, + Field(description="The endpoint where this request originated from."), + ] = None + problem_count: Annotated[ + int | None, + Field(alias="problemCount", description="The total number of problems."), + ] = None + entity_type: Annotated[ + str | None, + Field( + alias="entityType", description="The type of entity impacted by the error." + ), + ] = None + entity_id: Annotated[ + str | None, + Field( + alias="entityId", description="Identifies the entity impacted by the error." + ), + ] = None + + +class ApiPageApiDataTableRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiDataTableRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiConnectionDataRequestCreate(BaseItem): + table_id: Annotated[ + str | None, + Field( + alias="tableId", + description="The identifier of the table to retrieve data from.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", + description="Identifies the engagement that the resulting Data Table will be associated with.", + ), + ] = None + tabular_schema_hint: Annotated[ + ApiTabularSchemaCreate | None, + Field( + alias="tabularSchemaHint", + description="Optional schema hint describing expected column types.", + ), + ] = None + filter: Annotated[ + ShieldQueryTermCreate | None, + Field(description="Optional filter to apply to the data retrieval."), + ] = None + limit: Annotated[ + int | None, Field(description="Maximum number of rows to return.") + ] = None + offset: Annotated[ + int | None, + Field(description="Number of rows to skip before returning results."), + ] = None + + +class ApiPageApiConnectionRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiConnectionRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiConnectionTestResultRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiConnectionTestResultRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiConnectionTableRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + tables_result_id: Annotated[ + str | None, + Field( + alias="tablesResultId", + description="The ID of the Connection Tables Result that discovered this table.", + ), + ] = None + connection_id: Annotated[ + str | None, + Field( + alias="connectionId", + description="The ID of the Connection this table belongs to.", + ), + ] = None + table_id: Annotated[ + str | None, + Field( + alias="tableId", + description="The identifier of the table within the external data source.", + ), + ] = None + name: Annotated[str | None, Field(description="The display name of the table.")] = ( + None + ) + schema_: Annotated[ + ApiTabularSchemaRead | None, + Field( + alias="schema", + description="The schema describing the columns of the table.", + ), + ] = None + + +class ApiPageApiConnectionTableRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiConnectionTableRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiConnectionTablesResultRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiConnectionTablesResultRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiConnectionDataSourceRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiConnectionDataSourceRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiChunkedFileRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiChunkedFileRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiAsyncResultRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiAsyncResultRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiApiTokenRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiApiTokenRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiAnalysisTypeRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + name: Annotated[str | None, Field(description="The name of the analysis type.")] = ( + None + ) + interim_name: Annotated[ + str | None, + Field( + alias="interimName", + description="The name of the analysis type when the analysis uses an interim time frame.", + ), + ] = None + description: Annotated[ + str | None, Field(description="The description of the analysis type.") + ] = None + account_mapping_required: Annotated[ + bool | None, + Field( + alias="accountMappingRequired", + description="Indicates whether or not account mapping must be performed.", + ), + ] = None + fund_supported: Annotated[ + bool | None, + Field( + alias="fundSupported", + description="Indicates whether or not the analysis supports restricted and unrestricted funds.", + ), + ] = None + interim_supported: Annotated[ + bool | None, + Field( + alias="interimSupported", + description="Indicates whether or not the analysis supports the interim time frame.", + ), + ] = None + periodic_supported: Annotated[ + bool | None, + Field( + alias="periodicSupported", + description="Indicates whether or not the analysis supports the periodic time frame.", + ), + ] = None + archived: Annotated[ + bool | None, + Field( + description="Indicates whether or not the analysis type has been archived." + ), + ] = None + max_period: Annotated[ + int | None, + Field( + alias="maxPeriod", + description="A configuration value for the max analysis period.", + ), + ] = None + source_configurations: Annotated[ + list[ApiSourceConfigurationRead] | None, + Field( + alias="sourceConfigurations", + description="A list of analysis source configurations that can be imported into the analysis, as determined by the analysis type.", + ), + ] = None + + +class ApiPageApiAnalysisTypeRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiAnalysisTypeRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiAnalysisTypeConfigurationRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiAnalysisTypeConfigurationRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiProposedDuplicateVirtualColumnCreate(ApiProposedVirtualColumnCreate): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", + description="The position of the column to be duplicated.", + ), + ] = None + + +class ApiProposedJoinVirtualColumnCreate(ApiProposedVirtualColumnCreate): + column_indices: Annotated[ + list[int] | None, + Field( + alias="columnIndices", + description="The positions of the columns to be joined.", + ), + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The character(s) that should be inserted to separate values." + ), + ] = None + + +class ApiProposedSplitByDelimiterVirtualColumnCreate(ApiProposedVirtualColumnCreate): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", description="The position of the column to be split." + ), + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The character(s) that should be used to separate the string into parts." + ), + ] = None + split_index: Annotated[ + int | None, + Field( + alias="splitIndex", + description="The position of the part to be used as a virtual column.", + ), + ] = None + + +class ApiProposedSplitByPositionVirtualColumnCreate(ApiProposedVirtualColumnCreate): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", description="The position of the column to be split." + ), + ] = None + start_position: Annotated[ + int | None, + Field( + alias="startPosition", + description="The starting position of the substring to be used as the new column. **Inclusive**.", + ), + ] = None + end_position: Annotated[ + int | None, + Field( + alias="endPosition", + description="The ending position of the substring to be used as the new column. **Exclusive**.", + ), + ] = None + + +class ApiDuplicateVirtualColumnRead(ApiVirtualColumnRead): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", description="The position of the duplicated column." + ), + ] = None + name: Annotated[str, Field(description="The name of the virtual column.")] + type: Annotated[ + ApiVirtualColumnReadType, Field(description="The type of virtual column.") + ] + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiJoinVirtualColumnRead(ApiVirtualColumnRead): + column_indices: Annotated[ + list[int] | None, + Field(alias="columnIndices", description="The position of the joined column."), + ] = None + delimiter: Annotated[ + str | None, Field(description="The character(s) used to separate values.") + ] = None + name: Annotated[str, Field(description="The name of the virtual column.")] + type: Annotated[ + ApiVirtualColumnReadType, Field(description="The type of virtual column.") + ] + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiProposedDuplicateVirtualColumnRead(ApiProposedVirtualColumnRead): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", + description="The position of the column to be duplicated.", + ), + ] = None + + +class ApiProposedJoinVirtualColumnRead(ApiProposedVirtualColumnRead): + column_indices: Annotated[ + list[int] | None, + Field( + alias="columnIndices", + description="The positions of the columns to be joined.", + ), + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The character(s) that should be inserted to separate values." + ), + ] = None + + +class ApiProposedSplitByDelimiterVirtualColumnRead(ApiProposedVirtualColumnRead): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", description="The position of the column to be split." + ), + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The character(s) that should be used to separate the string into parts." + ), + ] = None + split_index: Annotated[ + int | None, + Field( + alias="splitIndex", + description="The position of the part to be used as a virtual column.", + ), + ] = None + + +class ApiProposedSplitByPositionVirtualColumnRead(ApiProposedVirtualColumnRead): + column_index: Annotated[ + int | None, + Field( + alias="columnIndex", description="The position of the column to be split." + ), + ] = None + start_position: Annotated[ + int | None, + Field( + alias="startPosition", + description="The starting position of the substring to be used as the new column. **Inclusive**.", + ), + ] = None + end_position: Annotated[ + int | None, + Field( + alias="endPosition", + description="The ending position of the substring to be used as the new column. **Exclusive**.", + ), + ] = None + + +class ApiSplitByDelimiterVirtualColumnRead(ApiVirtualColumnRead): + column_index: Annotated[ + int | None, + Field(alias="columnIndex", description="The position of the split column."), + ] = None + delimiter: Annotated[ + str | None, + Field(description="The character(s) used to separate the string into parts."), + ] = None + split_index: Annotated[ + int | None, + Field( + alias="splitIndex", + description="The position of the part used as a virtual column.", + ), + ] = None + name: Annotated[str, Field(description="The name of the virtual column.")] + type: Annotated[ + ApiVirtualColumnReadType, Field(description="The type of virtual column.") + ] + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiSplitByPositionVirtualColumnRead(ApiVirtualColumnRead): + column_index: Annotated[ + int | None, + Field(alias="columnIndex", description="The position of the split column."), + ] = None + start_position: Annotated[ + int | None, + Field( + alias="startPosition", + description="The starting position of the substring in the new column. **Inclusive**.", + ), + ] = None + end_position: Annotated[ + int | None, + Field( + alias="endPosition", + description="The ending position of the substring in the new column. **Exclusive**.", + ), + ] = None + name: Annotated[str, Field(description="The name of the virtual column.")] + type: Annotated[ + ApiVirtualColumnReadType, Field(description="The type of virtual column.") + ] + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiAnalysisSourceTypeRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + name: Annotated[ + str | None, Field(description="The name of the analysis source type.") + ] = None + interim_name: Annotated[ + str | None, + Field( + alias="interimName", + description="The name of the analysis source type when the analysis uses an interim time frame.", + ), + ] = None + archived: Annotated[ + bool | None, + Field( + description="Indicates whether or not the analysis source type is archived." + ), + ] = None + features: Annotated[ + list[ApiAnalysisSourceTypeReadFeature] | None, + Field( + description="A list of the features used when importing data for this analysis source type." + ), + ] = None + column_definitions: Annotated[ + list[ApiColumnDefinitionRead] | None, + Field( + alias="columnDefinitions", + description="A list of MindBridge column definitions that this analysis source type supports.", + ), + ] = None + + +class ApiPageApiAnalysisSourceTypeRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiAnalysisSourceTypeRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class PageApiAnalysisResultRead(BaseItem): + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + pageable: PageablenullRead | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + first: bool | None = None + last: bool | None = None + size: int | None = None + content: list[ApiAnalysisResultRead] | None = None + number: int | None = None + sort: SortnullRead | None = None + empty: bool | None = None + + +class ApiPageApiAnalysisRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiAnalysisRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiAccountMappingRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiAccountMappingRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiAccountGroupRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiAccountGroupRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiAccountGroupingRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiAccountGroupingRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiBasicMetrics(BaseItem): + state: Annotated[ + ApiBasicMetricsState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreview] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + + +class ApiCountMetrics(BaseItem): + state: Annotated[ + ApiCountMetricsState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreview] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( + None + ) + + +class ApiDateTypeDetails(BaseItem): + range: Annotated[ + RangeZonedDateTime | None, + Field( + description="A pair of values representing the earliest and latest values within this column." + ), + ] = None + ambiguous_date_time_formats: Annotated[ + list[ApiColumnDateTimeFormat] | None, + Field( + alias="ambiguousDateTimeFormats", + description="A list of possible date time formats, if multiple possible candidates are available.", + ), + ] = None + unambiguous_date_time_formats: Annotated[ + list[ApiColumnDateTimeFormat] | None, + Field( + alias="unambiguousDateTimeFormats", + description="A list of possible date time formats, if multiple possible candidates are available.", + ), + ] = None + + +class ApiNumericTypeDetails(BaseItem): + range: Annotated[ + RangeBigDecimal | None, + Field( + description="A pair of values representing the min and max values within this column." + ), + ] = None + currency_format: Annotated[ + ApiCurrencyFormat | None, + Field( + alias="currencyFormat", + description="Metadata on the detected number format of this column.", + ), + ] = None + example_pair_from_currency_formatter: Annotated[ + list[str] | None, + Field( + alias="examplePairFromCurrencyFormatter", + description="A pair of values as examples in the event that two or more unambiguous number formats are detected in the same column.", + ), + ] = None + sum: Annotated[ + float | None, + Field( + description="The sum of all values in this column, up to a maximum of 10e50. Values smaller than 10e-50 will be rounded up." + ), + ] = None + capped_sum: Annotated[ + bool | None, + Field( + alias="cappedSum", + description="If `true` then the sum is larger than 10e50.", + ), + ] = None + capped_max: Annotated[ + bool | None, + Field( + alias="cappedMax", + description="If `true` then at least one individual value is larger than 10e50.", + ), + ] = None + + +class ApiTableMetadata(BaseItem): + cell_length_metrics: Annotated[ + ApiCountMetrics | None, + Field( + alias="cellLengthMetrics", + description="Metrics regarding cells that are larger than 2000 characters in the table.", + ), + ] = None + density_metrics: Annotated[ + ApiDensityMetrics | None, + Field( + alias="densityMetrics", description="Metrics regarding whole table density." + ), + ] = None + inconsistent_date_metrics: Annotated[ + ApiCountMetrics | None, + Field( + alias="inconsistentDateMetrics", + description="Metrics regarding inconsistent date formats within columns for the entire table.", + ), + ] = None + null_value_metrics: Annotated[ + ApiCountMetrics | None, + Field( + alias="nullValueMetrics", + description="Metrics regarding “null” values across the entire table.", + ), + ] = None + numeric_column_metrics: Annotated[ + ApiBasicMetrics | None, + Field( + alias="numericColumnMetrics", + description="Metrics regarding numeric columns within the table.", + ), + ] = None + overall_data_type_metrics: Annotated[ + ApiOverallDataTypeMetrics | None, + Field( + alias="overallDataTypeMetrics", + description="Metrics regarding detected data types across the entire table.", + ), + ] = None + scientific_notation_metrics: Annotated[ + ApiCountMetrics | None, + Field( + alias="scientificNotationMetrics", + description="Metrics regarding scientific notation across the entire table.", + ), + ] = None + sheet_metrics: Annotated[ + ApiSheetMetrics | None, + Field( + alias="sheetMetrics", + description="Metrics regarding excel sheets within the underlying excel file.", + ), + ] = None + special_character_metrics: Annotated[ + ApiCountMetrics | None, + Field( + alias="specialCharacterMetrics", + description="Metrics regarding special characters across the entire table.", + ), + ] = None + uneven_columns_metrics: Annotated[ + ApiHistogramMetrics | None, + Field( + alias="unevenColumnsMetrics", + description="Metrics regarding column length by row.", + ), + ] = None + + +class ApiTextTypeDetails(BaseItem): + range: Annotated[ + RangeInteger | None, + Field( + description="A pair of values representing the min and max length of text values within this column." + ), + ] = None + + +class ApiAnalysisSourceUpdate(BaseItem): + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + warnings_ignored: Annotated[ + bool | None, + Field( + alias="warningsIgnored", + description="Indicates whether or not warnings should be ignored.", + ), + ] = None + target_workflow_state: Annotated[ + ApiAnalysisSourceUpdateTargetWorkflowState | None, + Field( + alias="targetWorkflowState", + description="The state that the current workflow will advance to.", + ), + ] = None + apply_degrouper: Annotated[ + bool | None, + Field( + alias="applyDegrouper", + description="Indicates whether or not the degrouper should be applied.", + ), + ] = None + proposed_column_mappings: Annotated[ + list[ApiProposedColumnMappingUpdate] | None, + Field( + alias="proposedColumnMappings", + description="Details about the proposed column mapping.", + ), + ] = None + column_mappings: Annotated[ + list[ApiColumnMappingUpdate] | None, + Field(alias="columnMappings", description="Details about column mapping."), + ] = None + proposed_virtual_columns: Annotated[ + list[ + ApiProposedDuplicateVirtualColumnUpdate + | ApiProposedJoinVirtualColumnUpdate + | ApiProposedSplitByDelimiterVirtualColumnUpdate + | ApiProposedSplitByPositionVirtualColumnUpdate + ] + | None, + Field( + alias="proposedVirtualColumns", + description="Details about the proposed virtual columns added during the file import process.", + ), + ] = None + virtual_columns: Annotated[ + list[ + ApiDuplicateVirtualColumnUpdate + | ApiJoinVirtualColumnUpdate + | ApiSplitByDelimiterVirtualColumnUpdate + | ApiSplitByPositionVirtualColumnUpdate + ] + | None, + Field( + alias="virtualColumns", + description="Details about the virtual columns added during file ingestion. ", + ), + ] = None + proposed_ambiguous_column_resolutions: Annotated[ + list[ApiProposedAmbiguousColumnResolutionUpdate] | None, + Field( + alias="proposedAmbiguousColumnResolutions", + description="Details about the virtual columns added during file ingestion.", + ), + ] = None + ambiguous_column_resolutions: Annotated[ + list[ApiAmbiguousColumnUpdate] | None, + Field( + alias="ambiguousColumnResolutions", + description="Details about resolutions to ambiguity in a column.", + ), + ] = None + proposed_transaction_id_selection: Annotated[ + ApiTransactionIdSelectionUpdate | None, + Field( + alias="proposedTransactionIdSelection", + description="The proposed columns to include when selecting a transaction ID.", + ), + ] = None + transaction_id_selection: Annotated[ + ApiTransactionIdSelectionUpdate | None, + Field( + alias="transactionIdSelection", + description="Details about transaction ID selection.", + ), + ] = None + + +class ApiPageApiWebhookRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiWebhookRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPageApiTransactionIdPreviewRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiTransactionIdPreviewRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiDataTypeMetricsRead(BaseItem): + state: Annotated[ + ApiDataTypeMetricsReadState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreviewRead] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + non_null_value_count: Annotated[ + int | None, + Field( + alias="nonNullValueCount", + description="The number of non-null values in this column.", + ), + ] = None + type_counts: Annotated[ + dict[str, int] | None, + Field( + alias="typeCounts", + description="A map of column type to number of occurrences. A single column value can match multiple types.", + ), + ] = None + text_type_details: Annotated[ + ApiTextTypeDetailsRead | None, + Field( + alias="textTypeDetails", + description="Metrics regarding the text type values in this column.", + ), + ] = None + numeric_type_details: Annotated[ + ApiNumericTypeDetailsRead | None, + Field( + alias="numericTypeDetails", + description="Metrics regarding the number type values in this column.", + ), + ] = None + date_type_details: Annotated[ + ApiDateTypeDetailsRead | None, + Field( + alias="dateTypeDetails", + description="Metrics regarding the date type values in this column.", + ), + ] = None + detected_types: Annotated[ + list[ApiDataTypeMetricsReadDetectedType] | None, + Field( + alias="detectedTypes", + description="A list of all detected types in this column.", + ), + ] = None + dominant_type: Annotated[ + ApiDataTypeMetricsReadDominantType | None, + Field( + alias="dominantType", + description="The type determined to be the most prevalent in this column.", + ), + ] = None + + +class ApiAnalysisSourceCreate(BaseItem): + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + analysis_id: Annotated[ + str | None, + Field(alias="analysisId", description="Identifies the associated analysis."), + ] = None + analysis_period_id: Annotated[ + str | None, + Field( + alias="analysisPeriodId", + description="Identifies the analysis period within MindBridge.", + ), + ] = None + analysis_source_type_id: Annotated[ + str | None, + Field( + alias="analysisSourceTypeId", + description="Identifies the analysis source type.", + ), + ] = None + file_manager_file_id: Annotated[ + str | None, + Field( + alias="fileManagerFileId", + deprecated=True, + description="Identifies the specific file manager file within MindBridge.", + ), + ] = None + additional_data_column_field: Annotated[ + str | None, + Field( + alias="additionalDataColumnField", + description="When creating an additional data source type, this indicates which additional data column is being targeted.", + ), + ] = None + warnings_ignored: Annotated[ + bool | None, + Field( + alias="warningsIgnored", + description="Indicates whether or not warnings should be ignored.", + ), + ] = None + target_workflow_state: Annotated[ + ApiAnalysisSourceCreateTargetWorkflowState | None, + Field( + alias="targetWorkflowState", + description="The state that the current workflow will advance to.", + ), + ] = None + apply_degrouper: Annotated[ + bool | None, + Field( + alias="applyDegrouper", + description="Indicates whether or not the degrouper should be applied.", + ), + ] = None + proposed_column_mappings: Annotated[ + list[ApiProposedColumnMappingCreate] | None, + Field( + alias="proposedColumnMappings", + description="Details about the proposed column mapping.", + ), + ] = None + proposed_virtual_columns: Annotated[ + list[ + ApiProposedDuplicateVirtualColumnCreate + | ApiProposedJoinVirtualColumnCreate + | ApiProposedSplitByDelimiterVirtualColumnCreate + | ApiProposedSplitByPositionVirtualColumnCreate + ] + | None, + Field( + alias="proposedVirtualColumns", + description="Details about the proposed virtual columns added during the file import process.", + ), + ] = None + proposed_ambiguous_column_resolutions: Annotated[ + list[ApiProposedAmbiguousColumnResolutionCreate] | None, + Field( + alias="proposedAmbiguousColumnResolutions", + description="Details about the virtual columns added during file ingestion.", + ), + ] = None + proposed_transaction_id_selection: Annotated[ + ApiTransactionIdSelectionCreate | None, + Field( + alias="proposedTransactionIdSelection", + description="The proposed columns to include when selecting a transaction ID.", + ), + ] = None + + +class ApiDataTypeMetrics(BaseItem): + state: Annotated[ + ApiDataTypeMetricsState | None, + Field(description="Validation state of the metric within its context."), + ] = None + data_previews: Annotated[ + list[ApiDataPreview] | None, + Field( + alias="dataPreviews", + description="A list of values within the table relevant to the metric.", + ), + ] = None + non_null_value_count: Annotated[ + int | None, + Field( + alias="nonNullValueCount", + description="The number of non-null values in this column.", + ), + ] = None + type_counts: Annotated[ + dict[str, int] | None, + Field( + alias="typeCounts", + description="A map of column type to number of occurrences. A single column value can match multiple types.", + ), + ] = None + text_type_details: Annotated[ + ApiTextTypeDetails | None, + Field( + alias="textTypeDetails", + description="Metrics regarding the text type values in this column.", + ), + ] = None + numeric_type_details: Annotated[ + ApiNumericTypeDetails | None, + Field( + alias="numericTypeDetails", + description="Metrics regarding the number type values in this column.", + ), + ] = None + date_type_details: Annotated[ + ApiDateTypeDetails | None, + Field( + alias="dateTypeDetails", + description="Metrics regarding the date type values in this column.", + ), + ] = None + detected_types: Annotated[ + list[ApiDataTypeMetricsDetectedType] | None, + Field( + alias="detectedTypes", + description="A list of all detected types in this column.", + ), + ] = None + dominant_type: Annotated[ + ApiDataTypeMetricsDominantType | None, + Field( + alias="dominantType", + description="The type determined to be the most prevalent in this column.", + ), + ] = None + + +class ApiColumnMetadataRead(BaseItem): + cell_length_metrics: Annotated[ + ApiCountMetricsRead | None, + Field( + alias="cellLengthMetrics", + description="Metrics regarding cells that are larger than 2000 characters in the column.", + ), + ] = None + data_type_metrics: Annotated[ + ApiDataTypeMetricsRead | None, + Field( + alias="dataTypeMetrics", + description="Metrics regarding the data types of column values.", + ), + ] = None + density_metrics: Annotated[ + ApiDensityMetricsRead | None, + Field( + alias="densityMetrics", + description="Metrics regarding the density of column values.", + ), + ] = None + distinct_value_metrics: Annotated[ + ApiDistinctValueMetricsRead | None, + Field( + alias="distinctValueMetrics", + description="Metrics regarding the uniqueness of column values.", + ), + ] = None + null_value_metrics: Annotated[ + ApiCountMetricsRead | None, + Field( + alias="nullValueMetrics", + description="Metrics regarding “null” values in the column.", + ), + ] = None + scientific_notation_metrics: Annotated[ + ApiCountMetricsRead | None, + Field( + alias="scientificNotationMetrics", + description="Metrics regarding the use of scientific notation in the column.", + ), + ] = None + special_character_metrics: Annotated[ + ApiCountMetricsRead | None, + Field( + alias="specialCharacterMetrics", + description="Metrics regarding the use of special characters in the column.", + ), + ] = None + + +class ApiColumnMetadata(BaseItem): + cell_length_metrics: Annotated[ + ApiCountMetrics | None, + Field( + alias="cellLengthMetrics", + description="Metrics regarding cells that are larger than 2000 characters in the column.", + ), + ] = None + data_type_metrics: Annotated[ + ApiDataTypeMetrics | None, + Field( + alias="dataTypeMetrics", + description="Metrics regarding the data types of column values.", + ), + ] = None + density_metrics: Annotated[ + ApiDensityMetrics | None, + Field( + alias="densityMetrics", + description="Metrics regarding the density of column values.", + ), + ] = None + distinct_value_metrics: Annotated[ + ApiDistinctValueMetrics | None, + Field( + alias="distinctValueMetrics", + description="Metrics regarding the uniqueness of column values.", + ), + ] = None + null_value_metrics: Annotated[ + ApiCountMetrics | None, + Field( + alias="nullValueMetrics", + description="Metrics regarding “null” values in the column.", + ), + ] = None + scientific_notation_metrics: Annotated[ + ApiCountMetrics | None, + Field( + alias="scientificNotationMetrics", + description="Metrics regarding the use of scientific notation in the column.", + ), + ] = None + special_character_metrics: Annotated[ + ApiCountMetrics | None, + Field( + alias="specialCharacterMetrics", + description="Metrics regarding the use of special characters in the column.", + ), + ] = None + + +class ApiColumnDataRead(BaseItem): + column_name: Annotated[ + str | None, Field(alias="columnName", description="The name of the column.") + ] = None + position: Annotated[int | None, Field(description="The index of the column.")] = ( + None + ) + synthetic: Annotated[ + bool | None, + Field( + description="If `true` this column was generated, as opposed to being a part of the original data." + ), + ] = None + row_sample: Annotated[ + list[str] | None, + Field( + alias="rowSample", + description="A list of values from this column across multiple rows. All values are distinct.", + ), + ] = None + column_metadata: Annotated[ + ApiColumnMetadataRead | None, + Field(alias="columnMetadata", description="A collection of metrics."), + ] = None + + +class ApiTabularFileInfoRead(ApiFileInfoRead, ApiFileInfo): + header_row_index: Annotated[ + int | None, + Field( + alias="headerRowIndex", + description="The row number of the first detected header.", + ), + ] = None + first_line: Annotated[ + str | None, Field(alias="firstLine", description="The first line of the table.") + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The delimiter character used to separate cells. Only populated when the underlying file is a CSV file." + ), + ] = None + last_non_blank_row_index: Annotated[ + int | None, + Field( + alias="lastNonBlankRowIndex", + description="The row number of the last row that isn't blank.", + ), + ] = None + table_metadata: Annotated[ + ApiTableMetadataRead | None, + Field( + alias="tableMetadata", + description="A collection of metadata describing the table as a whole.", + ), + ] = None + column_data: Annotated[ + list[ApiColumnDataRead] | None, + Field( + alias="columnData", + description="A list of column metadata entities, describing each column.", + ), + ] = None + row_content_snippets: Annotated[ + list[list[str]] | None, + Field( + alias="rowContentSnippets", + description="A list of sample rows from the underlying file.", + ), + ] = None + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiAnalysisSourceRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", description="Identifies the associated engagement." + ), + ] = None + analysis_id: Annotated[ + str | None, + Field(alias="analysisId", description="Identifies the associated analysis."), + ] = None + analysis_period_id: Annotated[ + str | None, + Field( + alias="analysisPeriodId", + description="Identifies the analysis period within MindBridge.", + ), + ] = None + analysis_source_type_id: Annotated[ + str | None, + Field( + alias="analysisSourceTypeId", + description="Identifies the analysis source type.", + ), + ] = None + file_manager_file_id: Annotated[ + str | None, + Field( + alias="fileManagerFileId", + deprecated=True, + description="Identifies the specific file manager file within MindBridge.", + ), + ] = None + additional_data_column_field: Annotated[ + str | None, + Field( + alias="additionalDataColumnField", + description="When creating an additional data source type, this indicates which additional data column is being targeted.", + ), + ] = None + warnings_ignored: Annotated[ + bool | None, + Field( + alias="warningsIgnored", + description="Indicates whether or not warnings should be ignored.", + ), + ] = None + warnings: Annotated[ + list[ApiMessageRead] | None, + Field(description="Details about the warnings associated with the source."), + ] = None + errors: Annotated[ + list[ApiMessageRead] | None, + Field( + description="Details about the errors associated with the specific source." + ), + ] = None + workflow_state: Annotated[ + ApiAnalysisSourceReadWorkflowState | None, + Field(alias="workflowState", description="The current state of the workflow."), + ] = None + target_workflow_state: Annotated[ + ApiAnalysisSourceReadTargetWorkflowState | None, + Field( + alias="targetWorkflowState", + description="The state that the current workflow will advance to.", + ), + ] = None + detected_format: Annotated[ + ApiAnalysisSourceReadDetectedFormat | None, + Field( + alias="detectedFormat", + description="The data format that MindBridge detected.", + ), + ] = None + apply_degrouper: Annotated[ + bool | None, + Field( + alias="applyDegrouper", + description="Indicates whether or not the degrouper should be applied.", + ), + ] = None + degrouper_applied: Annotated[ + bool | None, + Field( + alias="degrouperApplied", + description="Indicates whether or not the degrouper was applied.", + ), + ] = None + file_info: Annotated[ + ApiTabularFileInfoRead | None, + Field( + alias="fileInfo", + description="Details about the file being imported into MindBridge.", + ), + ] = None + proposed_column_mappings: Annotated[ + list[ApiProposedColumnMappingRead] | None, + Field( + alias="proposedColumnMappings", + description="Details about the proposed column mapping.", + ), + ] = None + column_mappings: Annotated[ + list[ApiColumnMappingRead] | None, + Field(alias="columnMappings", description="Details about column mapping."), + ] = None + proposed_virtual_columns: Annotated[ + list[ + ApiProposedDuplicateVirtualColumnRead + | ApiProposedJoinVirtualColumnRead + | ApiProposedSplitByDelimiterVirtualColumnRead + | ApiProposedSplitByPositionVirtualColumnRead + ] + | None, + Field( + alias="proposedVirtualColumns", + description="Details about the proposed virtual columns added during the file import process.", + ), + ] = None + virtual_columns: Annotated[ + list[ + ApiDuplicateVirtualColumnRead + | ApiJoinVirtualColumnRead + | ApiSplitByDelimiterVirtualColumnRead + | ApiSplitByPositionVirtualColumnRead + ] + | None, + Field( + alias="virtualColumns", + description="Details about the virtual columns added during file ingestion. ", + ), + ] = None + proposed_ambiguous_column_resolutions: Annotated[ + list[ApiProposedAmbiguousColumnResolutionRead] | None, + Field( + alias="proposedAmbiguousColumnResolutions", + description="Details about the virtual columns added during file ingestion.", + ), + ] = None + ambiguous_column_resolutions: Annotated[ + list[ApiAmbiguousColumnRead] | None, + Field( + alias="ambiguousColumnResolutions", + description="Details about resolutions to ambiguity in a column.", + ), + ] = None + proposed_transaction_id_selection: Annotated[ + ApiTransactionIdSelectionRead | None, + Field( + alias="proposedTransactionIdSelection", + description="The proposed columns to include when selecting a transaction ID.", + ), + ] = None + transaction_id_selection: Annotated[ + ApiTransactionIdSelectionRead | None, + Field( + alias="transactionIdSelection", + description="Details about transaction ID selection.", + ), + ] = None + file_info_versions: Annotated[ + dict[str, str] | None, + Field( + alias="fileInfoVersions", + description="A map of providing a set of file info IDs by their Analysis Source File Version.", + ), + ] = None + file_manager_files: Annotated[ + dict[str, str] | None, + Field( + alias="fileManagerFiles", + description="A map of providing a set of file manager file IDs by their Analysis Source File Version.", + ), + ] = None + + +class ApiPageApiAnalysisSourceRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiAnalysisSourceRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiColumnData(BaseItem): + column_name: Annotated[ + str | None, Field(alias="columnName", description="The name of the column.") + ] = None + position: Annotated[int | None, Field(description="The index of the column.")] = ( + None + ) + synthetic: Annotated[ + bool | None, + Field( + description="If `true` this column was generated, as opposed to being a part of the original data." + ), + ] = None + row_sample: Annotated[ + list[str] | None, + Field( + alias="rowSample", + description="A list of values from this column across multiple rows. All values are distinct.", + ), + ] = None + column_metadata: Annotated[ + ApiColumnMetadata | None, + Field(alias="columnMetadata", description="A collection of metrics."), + ] = None + + +class ApiTabularFileInfo(ApiFileInfo): + header_row_index: Annotated[ + int | None, + Field( + alias="headerRowIndex", + description="The row number of the first detected header.", + ), + ] = None + first_line: Annotated[ + str | None, Field(alias="firstLine", description="The first line of the table.") + ] = None + delimiter: Annotated[ + str | None, + Field( + description="The delimiter character used to separate cells. Only populated when the underlying file is a CSV file." + ), + ] = None + last_non_blank_row_index: Annotated[ + int | None, + Field( + alias="lastNonBlankRowIndex", + description="The row number of the last row that isn't blank.", + ), + ] = None + table_metadata: Annotated[ + ApiTableMetadata | None, + Field( + alias="tableMetadata", + description="A collection of metadata describing the table as a whole.", + ), + ] = None + column_data: Annotated[ + list[ApiColumnData] | None, + Field( + alias="columnData", + description="A list of column metadata entities, describing each column.", + ), + ] = None + row_content_snippets: Annotated[ + list[list[str]] | None, + Field( + alias="rowContentSnippets", + description="A list of sample rows from the underlying file.", + ), + ] = None + version: Annotated[ + int, Field(description="Data integrity version to ensure data consistency.") + ] + + +class ApiPageApiFileInfoRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiTabularFileInfoRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition13(BaseItem): + type: Annotated[ + Literal["GROUP"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "GROUP" + operator: Annotated[ + ApiFilterGroupConditionOperator | None, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] = None + conditions: Annotated[ + list[ApiFilterCondition] | None, + Field(description="The entries within this condition group.", min_length=1), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13(BaseItem): + type: Annotated[ + Literal["GROUP"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "GROUP" + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator | None, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] = None + conditions: Annotated[ + list[ApiFilterCondition] | None, + Field(description="The entries within this condition group.", min_length=1), + ] = None + + +class ApiFilterUpdate(BaseItem): + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + filter_type: Annotated[ + ApiFilterUpdateFilterType | None, + Field( + alias="filterType", + description="The type of this filter. Determines in which context analyses can access it.", + title="Filter Type", + ), + ] = None + name: Annotated[ + dict[str, str] | None, Field(description="The name of this filter.") + ] = None + category: Annotated[ + dict[str, str] | None, Field(description="The category of this filter.") + ] = None + display_currency_code: Annotated[ + str | None, + Field( + alias="displayCurrencyCode", + description="The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected.", + ), + ] = None + display_locale: Annotated[ + str | None, + Field( + alias="displayLocale", + description="The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified.", + ), + ] = None + condition: Annotated[ + ApiFilterGroupConditionUpdate | None, + Field( + description="A group filter containing all the conditions included in this filter." + ), + ] = None + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead13(BaseItem): + type: Annotated[ + Literal["GROUP"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "GROUP" + operator: Annotated[ + ApiFilterGroupConditionReadOperator | None, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] = None + conditions: Annotated[ + list[ApiFilterCondition] | None, + Field(description="The entries within this condition group.", min_length=1), + ] = None + + +class ApiFilterRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field(description="Data integrity version to ensure data consistency."), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + analysis_type_id: Annotated[ + str | None, + Field( + alias="analysisTypeId", + description="Identifies the associated analysis type.", + ), + ] = None + organization_id: Annotated[ + str | None, + Field( + alias="organizationId", + description="Identifies the parent organization, if applicable. Can only be set if `filterType` is `ORGANIZATION` or `PRIVATE`.", + ), + ] = None + library_id: Annotated[ + str | None, + Field( + alias="libraryId", + description="Identifies the parent library, if applicable. Can only be set if `filterType` is `LIBRARY`.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", + description="Identifies the parent engagement, if applicable. Can only be set if `filterType` is `ENGAGEMENT`.", + ), + ] = None + filter_type: Annotated[ + ApiFilterReadFilterType | None, + Field( + alias="filterType", + description="The type of this filter. Determines in which context analyses can access it.", + title="Filter Type", + ), + ] = None + data_type: Annotated[ + ApiFilterReadDataType | None, + Field( + alias="dataType", + description="The intended data type for this filter.", + title="Filter Data Type", + ), + ] = None + name: Annotated[ + dict[str, str] | None, Field(description="The name of this filter.") + ] = None + category: Annotated[ + dict[str, str] | None, Field(description="The category of this filter.") + ] = None + display_currency_code: Annotated[ + str | None, + Field( + alias="displayCurrencyCode", + description="The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected.", + ), + ] = None + display_locale: Annotated[ + str | None, + Field( + alias="displayLocale", + description="The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified.", + ), + ] = None + condition: Annotated[ + ApiFilterGroupConditionRead | None, + Field( + description="A group filter containing all the conditions included in this filter." + ), + ] = None + legacy_filter_format: Annotated[ + bool | None, + Field( + alias="legacyFilterFormat", + description="If `true` this filter is saved in a legacy format that can't be represented in the API.", + ), + ] = None + + +class ApiPopulationTagUpdate(BaseItem): + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the population.", max_length=80, min_length=0), + ] = None + category: Annotated[ + str | None, + Field( + description="The category of the population.", max_length=80, min_length=0 + ), + ] = None + description: Annotated[ + str | None, + Field( + description="A description of the population.", max_length=250, min_length=0 + ), + ] = None + reason_for_change: Annotated[ + str | None, + Field( + alias="reasonForChange", + description="The reason for the latest change made to the population.", + max_length=250, + min_length=0, + ), + ] = None + disabled: bool | None = None + condition: Annotated[ + ApiFilterGroupConditionUpdate | None, + Field( + description="The filter condition used to determine which entries are included in the population." + ), + ] = None + display_currency_code: Annotated[ + str | None, + Field( + alias="displayCurrencyCode", + description="The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified.", + ), + ] = None + display_locale: Annotated[ + str | None, + Field( + alias="displayLocale", + description="The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified.", + ), + ] = None + + +class ApiPopulationTagRead(BaseItem): + id: Annotated[str | None, Field(description="The unique object identifier.")] = None + version: Annotated[ + int | None, + Field( + description="Indicates the data integrity version to ensure data consistency." + ), + ] = None + creation_date: Annotated[ + AwareDatetime | None, + Field( + alias="creationDate", + description="The date that the object was originally created.", + ), + ] = None + last_modified_date: Annotated[ + AwareDatetime | None, + Field( + alias="lastModifiedDate", + description="The date that the object was last updated or modified.", + ), + ] = None + created_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="createdUserInfo", + description="Details about the user who created the object.", + ), + ] = None + last_modified_user_info: Annotated[ + ApiUserInfoRead | None, + Field( + alias="lastModifiedUserInfo", + description="Details about the user who last modified or updated the object.", + ), + ] = None + analysis_type_id: Annotated[str | None, Field(alias="analysisTypeId")] = None + library_id: Annotated[ + str | None, + Field(alias="libraryId", description="The ID of the parent library."), + ] = None + engagement_id: Annotated[ + str | None, + Field(alias="engagementId", description="The ID of the parent engagement."), + ] = None + derived_from_library: Annotated[ + bool | None, + Field( + alias="derivedFromLibrary", + description="Indicates that the engagement population was derived from a library.", + ), + ] = None + disabled_for_analysis_ids: Annotated[ + list[str] | None, + Field( + alias="disabledForAnalysisIds", + description="Lists the analysis IDs where the engagement population is disabled.", + ), + ] = None + promoted_from_analysis_id: Annotated[ + str | None, + Field( + alias="promotedFromAnalysisId", + description="Identifies the analysis from which the engagement population was promoted.", + ), + ] = None + analysis_id: Annotated[ + str | None, + Field(alias="analysisId", description="The ID of the parent analysis."), + ] = None + derived_from_engagement: Annotated[ + bool | None, + Field( + alias="derivedFromEngagement", + description="Indicates whether the analysis population was derived from an engagement.", + ), + ] = None + base_population_id: Annotated[ + str | None, + Field( + alias="basePopulationId", + description="The ID of the population the current population is based on.", + ), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the population.", max_length=80, min_length=0), + ] = None + category: Annotated[ + str | None, + Field( + description="The category of the population.", max_length=80, min_length=0 + ), + ] = None + description: Annotated[ + str | None, + Field( + description="A description of the population.", max_length=250, min_length=0 + ), + ] = None + cloned_from: Annotated[ + str | None, + Field( + alias="clonedFrom", + description="Identifies the population the current population was cloned from.", + ), + ] = None + reason_for_change: Annotated[ + str | None, + Field( + alias="reasonForChange", + description="The reason for the latest change made to the population.", + max_length=250, + min_length=0, + ), + ] = None + disabled: bool | None = None + condition: Annotated[ + ApiFilterGroupConditionRead | None, + Field( + description="The filter condition used to determine which entries are included in the population." + ), + ] = None + legacy_filter_format: Annotated[ + bool | None, + Field( + alias="legacyFilterFormat", + description="If `true`, this population uses a legacy filter format that cannot be represented in the current condition format.", + ), + ] = None + display_currency_code: Annotated[ + str | None, + Field( + alias="displayCurrencyCode", + description="The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified.", + ), + ] = None + display_locale: Annotated[ + str | None, + Field( + alias="displayLocale", + description="The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified.", + ), + ] = None + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13(BaseItem): + type: Annotated[ + Literal["GROUP"] | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = "GROUP" + operator: Annotated[ + ApiFilterGroupConditionCreateOperator | None, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] = None + conditions: Annotated[ + list[ApiFilterCondition] | None, + Field(description="The entries within this condition group.", min_length=1), + ] = None + + +class ApiFilterCreate(BaseItem): + analysis_type_id: Annotated[ + str | None, + Field( + alias="analysisTypeId", + description="Identifies the associated analysis type.", + ), + ] = None + organization_id: Annotated[ + str | None, + Field( + alias="organizationId", + description="Identifies the parent organization, if applicable. Can only be set if `filterType` is `ORGANIZATION` or `PRIVATE`.", + ), + ] = None + library_id: Annotated[ + str | None, + Field( + alias="libraryId", + description="Identifies the parent library, if applicable. Can only be set if `filterType` is `LIBRARY`.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", + description="Identifies the parent engagement, if applicable. Can only be set if `filterType` is `ENGAGEMENT`.", + ), + ] = None + filter_type: Annotated[ + ApiFilterCreateFilterType | None, + Field( + alias="filterType", + description="The type of this filter. Determines in which context analyses can access it.", + title="Filter Type", + ), + ] = None + data_type: Annotated[ + ApiFilterCreateDataType | None, + Field( + alias="dataType", + description="The intended data type for this filter.", + title="Filter Data Type", + ), + ] = None + name: Annotated[ + dict[str, str] | None, Field(description="The name of this filter.") + ] = None + category: Annotated[ + dict[str, str] | None, Field(description="The category of this filter.") + ] = None + display_currency_code: Annotated[ + str | None, + Field( + alias="displayCurrencyCode", + description="The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected.", + ), + ] = None + display_locale: Annotated[ + str | None, + Field( + alias="displayLocale", + description="The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified.", + ), + ] = None + condition: Annotated[ + ApiFilterGroupConditionCreate | None, + Field( + description="A group filter containing all the conditions included in this filter." + ), + ] = None + + +class ApiPageApiFilterRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiFilterRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiPopulationTagCreate(BaseItem): + analysis_type_id: Annotated[str | None, Field(alias="analysisTypeId")] = None + library_id: Annotated[ + str | None, + Field(alias="libraryId", description="The ID of the parent library."), + ] = None + analysis_id: Annotated[ + str | None, + Field(alias="analysisId", description="The ID of the parent analysis."), + ] = None + base_population_id: Annotated[ + str | None, + Field( + alias="basePopulationId", + description="The ID of the population the current population is based on.", + ), + ] = None + name: Annotated[ + str | None, + Field(description="The name of the population.", max_length=80, min_length=0), + ] = None + category: Annotated[ + str | None, + Field( + description="The category of the population.", max_length=80, min_length=0 + ), + ] = None + description: Annotated[ + str | None, + Field( + description="A description of the population.", max_length=250, min_length=0 + ), + ] = None + disabled: bool | None = None + condition: Annotated[ + ApiFilterGroupConditionCreate | None, + Field( + description="The filter condition used to determine which entries are included in the population." + ), + ] = None + display_currency_code: Annotated[ + str | None, + Field( + alias="displayCurrencyCode", + description="The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified.", + ), + ] = None + display_locale: Annotated[ + str | None, + Field( + alias="displayLocale", + description="The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified.", + ), + ] = None + + +class ApiPageApiPopulationTagRead(BaseItem): + page_number: Annotated[int | None, Field(alias="pageNumber")] = None + total_pages: Annotated[int | None, Field(alias="totalPages")] = None + content: list[ApiPopulationTagRead] | None = None + number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None + total_elements: Annotated[int | None, Field(alias="totalElements")] = None + pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None + page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None + sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None + first: Annotated[bool | None, Field(deprecated=True)] = None + last: Annotated[bool | None, Field(deprecated=True)] = None + size: Annotated[int | None, Field(deprecated=True)] = None + number: Annotated[int | None, Field(deprecated=True)] = None + + +class ApiDataTableExportToFileManagerRequestCreate(BaseItem): + data_table_id: Annotated[ + str | None, + Field( + alias="dataTableId", + description="The ID of the Data Table to export data from.", + ), + ] = None + engagement_id: Annotated[ + str | None, + Field( + alias="engagementId", + description="The engagement that the Data Table belongs to.", + ), + ] = None + name: Annotated[ + str | None, + Field(description="The name for the exported CSV file without extension."), + ] = None + parent_file_manager_entity_id: Annotated[ + str | None, + Field( + alias="parentFileManagerEntityId", + description="The ID of the File Manager directory to place the exported file in. If null, the file is placed in the engagement's root directory.", + ), + ] = None + query: Annotated[ + MindBridgeQueryTerm | None, + Field(description="An optional filter to apply to the data before exporting."), + ] = None + sort: Annotated[ + ApiDataTableQuerySortOrderCreate | None, + Field(description="An optional sort order to apply to the exported rows."), + ] = None + fields: Annotated[ + list[str] | None, + Field( + description="The list of field names (columns) to include in the export." + ), + ] = None + limit: Annotated[ + int | None, Field(description="The maximum number of rows to export.", ge=1) + ] = None + csv_configuration: Annotated[ + ApiCsvConfigurationCreate | None, + Field( + alias="csvConfiguration", + description="The configuration to use when generating the CSV file.", + ), + ] = None + inner_list_csv_configuration: Annotated[ + ApiCsvConfigurationCreate | None, + Field( + alias="innerListCsvConfiguration", + description="The configuration to use when formatting list values within cells in the CSV file.", + ), + ] = None + + +class ApiDataTableExportRequest(BaseItem): + query: Annotated[ + MindBridgeQueryTerm | None, + Field( + description="The MindBridge QL query used to filter data in the data table." + ), + ] = None + sort: Annotated[ + ApiDataTableQuerySortOrder | None, + Field( + description="Indicates how the data will be sorted.\n\nDefault sort order = ascending" + ), + ] = None + fields: Annotated[ + list[str] | None, + Field(description="The data table fields to be included in the results."), + ] = None + limit: Annotated[ + int | None, Field(description="The number of results to be returned.", ge=1) + ] = None + csv_configuration: Annotated[ + ApiCsvConfiguration | None, + Field( + alias="csvConfiguration", + description="The configuration to use when generating the CSV file.", + ), + ] = None + inner_list_csv_configuration: Annotated[ + ApiCsvConfiguration | None, + Field( + alias="innerListCsvConfiguration", + description="The configuration to use when formatting lists within cells in the CSV file.", + ), + ] = None + + +class ApiDataTableQueryRead(BaseItem): + query: Annotated[ + MindBridgeQueryTerm | None, + Field( + description="The MindBridge QL query used to filter data in the data table." + ), + ] = None + page: Annotated[ + int | None, + Field( + description="The specific page of results. This operates on a zero-based page index (0..N).", + ge=0, + ), + ] = None + page_size: Annotated[ + int | None, + Field( + alias="pageSize", + description="The number of results to be returned on each page.", + ge=1, + le=100, + ), + ] = None + sort: Annotated[ + ApiDataTableQuerySortOrderRead | None, + Field( + description="Indicates how the data will be sorted.\n\nDefault sort order = ascending" + ), + ] = None + fields: Annotated[ + list[str] | None, + Field(description="The data table fields to be included in the results."), + ] = None + exclude_fields: Annotated[list[str] | None, Field(alias="excludeFields")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm14(BaseItem): + field_and: Annotated[list[MindBridgeQueryTerm] | None, Field(alias="$and")] = None + + +class MindBridgeQueryTermMindBridgeQueryTerm15(BaseItem): + field_or: Annotated[list[MindBridgeQueryTerm] | None, Field(alias="$or")] = None + + +MindBridgeQueryTerm = RootModel[ + dict[str, int | float | bool | str] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm1] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm2] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm3] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm4] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm5] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm6] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm8] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm9] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm10] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm11] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm12] + | dict[str, MindBridgeQueryTermMindBridgeQueryTerm13] + | MindBridgeQueryTermMindBridgeQueryTerm14 + | MindBridgeQueryTermMindBridgeQueryTerm15 + | MindBridgeQueryTermMindBridgeQueryTerm16 + | MindBridgeQueryTermMindBridgeQueryTerm17 + | dict[str, Any] + | None +] + + +ApiFilterDateRangeCondition = RootModel[ + "ApiFilterDateRangeConditionApiFilterDateRangeCondition2" +] + + +ApiFilterDateValueCondition = RootModel[ + "ApiFilterDateValueConditionApiFilterDateValueCondition2" +] + + +class ApiFilterDateRangeConditionApiFilterDateRangeCondition2( + ApiFilterDateRangeConditionApiFilterDateRangeCondition +): + date_type: Annotated[ + Literal["BETWEEN"], Field(alias="dateType", title="Filter Date Type") + ] + field: str + negated: bool + range_end: Annotated[ + date, + Field( + alias="rangeEnd", + description="The end of an ISO date range to compare entries to.", + ), + ] + range_start: Annotated[ + date, + Field( + alias="rangeStart", + description="The start of an ISO date range to compare entries to.", + ), + ] + type: Annotated[Literal["DATE"], Field(title="Filter Condition Type")] + + +class ApiFilterDateValueConditionApiFilterDateValueCondition2( + ApiFilterDateValueConditionApiFilterDateValueCondition +): + date_type: Annotated[ + ApiFilterDateValueConditionDateType, + Field(alias="dateType", title="Filter Date Type"), + ] + field: str + negated: bool + type: Annotated[Literal["DATE"], Field(title="Filter Condition Type")] + value: Annotated[ + date, Field(description="An ISO date value to compare entries to.") + ] + + +ApiFilterMaterialityOptionCondition = RootModel[ + "ApiFilterMaterialityOptionConditionApiFilterMaterialityOptionCondition1" +] + + +ApiFilterMaterialityValueCondition = RootModel[ + "ApiFilterMaterialityValueConditionApiFilterMaterialityValueCondition1" +] + + +class ApiFilterMaterialityOptionConditionApiFilterMaterialityOptionCondition1( + ApiFilterMaterialityOptionConditionApiFilterMaterialityOptionCondition +): + field: str + materiality_option: Annotated[ + ApiFilterMaterialityOptionConditionMaterialityOption, + Field(alias="materialityOption", title="Filter Materiality Value Options"), + ] + negated: bool + type: Annotated[Literal["MATERIALITY"], Field(title="Filter Condition Type")] + + +class ApiFilterMaterialityValueConditionApiFilterMaterialityValueCondition1( + ApiFilterMaterialityValueConditionApiFilterMaterialityValueCondition +): + field: str + materiality_option: Annotated[ + Literal["PERCENTAGE"], + Field(alias="materialityOption", title="Filter Materiality Value Options"), + ] + negated: bool + type: Annotated[Literal["MATERIALITY"], Field(title="Filter Condition Type")] + value: Annotated[ + float, + Field( + description="The percentage value, as a decimal number, with 100.00 being 100%." + ), + ] + + +ApiFilterMonetaryValueRangeCondition = RootModel[ + "ApiFilterMonetaryValueRangeConditionApiFilterMonetaryValueRangeCondition2" +] + + +ApiFilterMonetaryValueValueCondition = RootModel[ + "ApiFilterMonetaryValueValueConditionApiFilterMonetaryValueValueCondition2" +] + + +class ApiFilterMonetaryValueRangeConditionApiFilterMonetaryValueRangeCondition2( + ApiFilterMonetaryValueRangeConditionApiFilterMonetaryValueRangeCondition +): + field: str + monetary_value_type: Annotated[ + Literal["BETWEEN"], + Field(alias="monetaryValueType", title="Filter Monetary Type"), + ] + negated: bool + range_end: Annotated[ + int, + Field( + alias="rangeEnd", + description="The end of the range, as a MONEY_100 formatted number to compare with entries.", + ), + ] + range_start: Annotated[ + int, + Field( + alias="rangeStart", + description="The start of the range, as a MONEY_100 formatted number to compare with entries.", + ), + ] + type: Annotated[Literal["MONEY"], Field(title="Filter Condition Type")] + + +class ApiFilterMonetaryValueValueConditionApiFilterMonetaryValueValueCondition2( + ApiFilterMonetaryValueValueConditionApiFilterMonetaryValueValueCondition +): + field: str + monetary_value_type: Annotated[ + ApiFilterMonetaryValueValueConditionMonetaryValueType, + Field(alias="monetaryValueType", title="Filter Monetary Type"), + ] + negated: bool + type: Annotated[Literal["MONEY"], Field(title="Filter Condition Type")] + value: Annotated[ + int, + Field(description="The MONEY_100 formatted number to compare with entries."), + ] + + +ApiFilterNumericalValueRangeCondition = RootModel[ + "ApiFilterNumericalValueRangeConditionApiFilterNumericalValueRangeCondition2" +] + + +ApiFilterNumericalValueValueCondition = RootModel[ + "ApiFilterNumericalValueValueConditionApiFilterNumericalValueValueCondition2" +] + + +class ApiFilterNumericalValueRangeConditionApiFilterNumericalValueRangeCondition2( + ApiFilterNumericalValueRangeConditionApiFilterNumericalValueRangeCondition +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal["BETWEEN"], + Field(alias="numericalValueType", title="Filter Numerical Value Type"), + ] + range_end: Annotated[ + int, + Field( + alias="rangeEnd", + description="The end value of a range to compare entries to.", + ), + ] + range_start: Annotated[ + int, + Field( + alias="rangeStart", + description="The start value of a range to compare entries to.", + ), + ] + type: Annotated[Literal["NUMERICAL"], Field(title="Filter Condition Type")] + + +class ApiFilterNumericalValueValueConditionApiFilterNumericalValueValueCondition2( + ApiFilterNumericalValueValueConditionApiFilterNumericalValueValueCondition +): + field: str + negated: bool + numerical_value_type: Annotated[ + ApiFilterNumericalValueValueConditionNumericalValueType, + Field(alias="numericalValueType", title="Filter Numerical Value Type"), + ] + type: Annotated[Literal["NUMERICAL"], Field(title="Filter Condition Type")] + value: Annotated[int, Field(description="A value to compare entries to.")] + + +ApiFilterRiskScoreHMLCondition = RootModel[ + "ApiFilterRiskScoreHMLConditionApiFilterRiskScoreHMLCondition1" +] + + +ApiFilterRiskScorePercentCondition = RootModel[ + "ApiFilterRiskScorePercentConditionApiFilterRiskScorePercentCondition1" +] + + +class ApiFilterRiskScoreHMLConditionApiFilterRiskScoreHMLCondition1( + ApiFilterRiskScoreHMLConditionApiFilterRiskScoreHMLCondition +): + field: str + negated: bool + risk_score_id: Annotated[str, Field(alias="riskScoreId")] + risk_score_type: Annotated[ + Literal["HML"], Field(alias="riskScoreType", title="Filter Risk Score Type") + ] + type: Annotated[Literal["RISK_SCORE"], Field(title="Filter Condition Type")] + values: Annotated[ + list[ApiFilterRiskScoreHMLConditionValue], + Field(description="A list of HML options to include in the filter."), + ] + + +class ApiFilterRiskScorePercentConditionApiFilterRiskScorePercentCondition1( + ApiFilterRiskScorePercentConditionApiFilterRiskScorePercentCondition +): + field: str + negated: bool + risk_score_id: Annotated[str, Field(alias="riskScoreId")] + risk_score_percent_type: Annotated[ + Literal[ + "ApiFilterRiskScorePercentCondition#-datamodel-code-generator-#-union_model-0-#-special-#" + ], + Field( + alias="riskScorePercentType", + description="Determines the type of risk score percent condition to filter.", + title="Filter Risk Score Percent Type", + ), + ] + risk_score_type: Annotated[ + Literal["PERCENT"], Field(alias="riskScoreType", title="Filter Risk Score Type") + ] + type: Annotated[Literal["RISK_SCORE"], Field(title="Filter Condition Type")] + + +ApiFilterRiskScorePercentRangeCondition = RootModel[ + "ApiFilterRiskScorePercentRangeConditionApiFilterRiskScorePercentRangeCondition2" +] + + +ApiFilterRiskScorePercentUnscoredCondition = RootModel[ + "ApiFilterRiskScorePercentUnscoredConditionApiFilterRiskScorePercentUnscoredCondition2" +] + + +ApiFilterRiskScorePercentValueCondition = RootModel[ + "ApiFilterRiskScorePercentValueConditionApiFilterRiskScorePercentValueCondition2" +] + + +class ApiFilterRiskScorePercentRangeConditionApiFilterRiskScorePercentRangeCondition2( + ApiFilterRiskScorePercentRangeConditionApiFilterRiskScorePercentRangeCondition +): + field: str + negated: bool + range_end: Annotated[ + int, + Field( + alias="rangeEnd", + description="The end of the number range between 0 and 10,000.", + ), + ] + range_start: Annotated[ + int, + Field( + alias="rangeStart", + description="The start of the number range between 0 and 10,000.", + ), + ] + risk_score_id: Annotated[str, Field(alias="riskScoreId")] + risk_score_percent_type: Annotated[ + ApiFilterRiskScorePercentRangeConditionRiskScorePercentType, + Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), + ] + risk_score_type: Annotated[ + Literal["PERCENT"], Field(alias="riskScoreType", title="Filter Risk Score Type") + ] + type: Annotated[Literal["RISK_SCORE"], Field(title="Filter Condition Type")] + + +class ApiFilterRiskScorePercentUnscoredConditionApiFilterRiskScorePercentUnscoredCondition2( + ApiFilterRiskScorePercentUnscoredConditionApiFilterRiskScorePercentUnscoredCondition +): + field: str + negated: bool + risk_score_id: Annotated[str, Field(alias="riskScoreId")] + risk_score_percent_type: Annotated[ + Literal["UNSCORED"], + Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), + ] + risk_score_type: Annotated[ + Literal["PERCENT"], Field(alias="riskScoreType", title="Filter Risk Score Type") + ] + type: Annotated[Literal["RISK_SCORE"], Field(title="Filter Condition Type")] + + +class ApiFilterRiskScorePercentValueConditionApiFilterRiskScorePercentValueCondition2( + ApiFilterRiskScorePercentValueConditionApiFilterRiskScorePercentValueCondition +): + field: str + negated: bool + risk_score_id: Annotated[str, Field(alias="riskScoreId")] + risk_score_percent_type: Annotated[ + ApiFilterRiskScorePercentValueConditionRiskScorePercentType, + Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), + ] + risk_score_type: Annotated[ + Literal["PERCENT"], Field(alias="riskScoreType", title="Filter Risk Score Type") + ] + type: Annotated[Literal["RISK_SCORE"], Field(title="Filter Condition Type")] + value: Annotated[ + int, + Field( + description="A number between 0 and 10,000 used as part of a more than, or less than filter." + ), + ] + + +ApiFilterComplexMonetaryFlowCondition = RootModel[ + "ApiFilterComplexMonetaryFlowConditionApiFilterComplexMonetaryFlowCondition2" +] + + +ApiFilterSimpleMonetaryFlowCondition = RootModel[ + "ApiFilterSimpleMonetaryFlowConditionApiFilterSimpleMonetaryFlowCondition2" +] + + +ApiFilterSpecificMonetaryFlowCondition = RootModel[ + "ApiFilterSpecificMonetaryFlowConditionApiFilterSpecificMonetaryFlowCondition2" +] + + +class ApiFilterComplexMonetaryFlowConditionApiFilterComplexMonetaryFlowCondition2( + ApiFilterComplexMonetaryFlowConditionApiFilterComplexMonetaryFlowCondition +): + field: str + monetary_flow_type: Annotated[ + Literal["COMPLEX_FLOW"], + Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), + ] + negated: bool + type: Annotated[Literal["MONETARY_FLOW"], Field(title="Filter Condition Type")] + + +class ApiFilterSimpleMonetaryFlowConditionApiFilterSimpleMonetaryFlowCondition2( + ApiFilterSimpleMonetaryFlowConditionApiFilterSimpleMonetaryFlowCondition +): + field: str + monetary_flow_type: Annotated[ + Literal["SIMPLE_FLOW"], + Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), + ] + negated: bool + type: Annotated[Literal["MONETARY_FLOW"], Field(title="Filter Condition Type")] + + +class ApiFilterSpecificMonetaryFlowConditionApiFilterSpecificMonetaryFlowCondition2( + ApiFilterSpecificMonetaryFlowConditionApiFilterSpecificMonetaryFlowCondition +): + credit_account: Annotated[ + ApiFilterAccountSelection, + Field( + alias="creditAccount", + description="The selected credit account in the monetary flow.", + ), + ] + debit_account: Annotated[ + ApiFilterAccountSelection, + Field( + alias="debitAccount", + description="The selected debit account in the monetary flow.", + ), + ] + field: str + monetary_flow_type: Annotated[ + Literal["SPECIFIC_FLOW"], + Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), + ] + negated: bool + specific_monetary_flow_type: Annotated[ + Literal[ + "ApiFilterSpecificMonetaryFlowCondition#-datamodel-code-generator-#-union_model-1-#-special-#" + ], + Field( + alias="specificMonetaryFlowType", + description="The type of specific monetary flow.", + title="Filter Specific Monetary Flow Type", + ), + ] + type: Annotated[Literal["MONETARY_FLOW"], Field(title="Filter Condition Type")] + + +ApiFilterSpecificMonetaryFlowRangeCondition = RootModel[ + "ApiFilterSpecificMonetaryFlowRangeConditionApiFilterSpecificMonetaryFlowRangeCondition2" +] + + +ApiFilterSpecificMonetaryFlowValueCondition = RootModel[ + "ApiFilterSpecificMonetaryFlowValueConditionApiFilterSpecificMonetaryFlowValueCondition2" +] + + +class ApiFilterSpecificMonetaryFlowRangeConditionApiFilterSpecificMonetaryFlowRangeCondition2( + ApiFilterSpecificMonetaryFlowRangeConditionApiFilterSpecificMonetaryFlowRangeCondition +): + credit_account: Annotated[ApiFilterAccountSelection, Field(alias="creditAccount")] + debit_account: Annotated[ApiFilterAccountSelection, Field(alias="debitAccount")] + field: str + monetary_flow_type: Annotated[ + Literal["SPECIFIC_FLOW"], + Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), + ] + negated: bool + range_end: Annotated[ + int, + Field( + alias="rangeEnd", + description="The end of the range, as a MONEY_100 formatted number to compare with entries.", + ), + ] + range_start: Annotated[ + int, + Field( + alias="rangeStart", + description="The start of the range, as a MONEY_100 formatted number to compare with entries.", + ), + ] + specific_monetary_flow_type: Annotated[ + Literal["BETWEEN"], + Field( + alias="specificMonetaryFlowType", title="Filter Specific Monetary Flow Type" + ), + ] + type: Annotated[Literal["MONETARY_FLOW"], Field(title="Filter Condition Type")] + + +class ApiFilterSpecificMonetaryFlowValueConditionApiFilterSpecificMonetaryFlowValueCondition2( + ApiFilterSpecificMonetaryFlowValueConditionApiFilterSpecificMonetaryFlowValueCondition +): + credit_account: Annotated[ApiFilterAccountSelection, Field(alias="creditAccount")] + debit_account: Annotated[ApiFilterAccountSelection, Field(alias="debitAccount")] + field: str + monetary_flow_type: Annotated[ + Literal["SPECIFIC_FLOW"], + Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), + ] + negated: bool + specific_monetary_flow_type: Annotated[ + ApiFilterSpecificMonetaryFlowValueConditionSpecificMonetaryFlowType, + Field( + alias="specificMonetaryFlowType", title="Filter Specific Monetary Flow Type" + ), + ] + type: Annotated[Literal["MONETARY_FLOW"], Field(title="Filter Condition Type")] + value: Annotated[ + int, + Field(description="The MONEY_100 formatted number to compare with entries."), + ] + + +ApiFilterAccountCondition = RootModel[ + Union[ + "ApiFilterAccountConditionApiFilterAccountCondition14", + "ApiFilterAccountConditionApiFilterAccountCondition15", + "ApiFilterAccountConditionApiFilterAccountCondition16", + "ApiFilterAccountConditionApiFilterAccountCondition17", + "ApiFilterAccountConditionApiFilterAccountCondition18", + "ApiFilterAccountConditionApiFilterAccountCondition19", + "ApiFilterAccountConditionApiFilterAccountCondition20", + "ApiFilterAccountConditionApiFilterAccountCondition21", + "ApiFilterAccountConditionApiFilterAccountCondition22", + "ApiFilterAccountConditionApiFilterAccountCondition23", + "ApiFilterAccountConditionApiFilterAccountCondition24", + "ApiFilterAccountConditionApiFilterAccountCondition25", + "ApiFilterAccountConditionApiFilterAccountCondition26", + ] +] + + +ApiFilterControlPointCondition = RootModel[ + Union[ + "ApiFilterControlPointConditionApiFilterControlPointCondition14", + "ApiFilterControlPointConditionApiFilterControlPointCondition15", + "ApiFilterControlPointConditionApiFilterControlPointCondition16", + "ApiFilterControlPointConditionApiFilterControlPointCondition17", + "ApiFilterControlPointConditionApiFilterControlPointCondition18", + "ApiFilterControlPointConditionApiFilterControlPointCondition19", + "ApiFilterControlPointConditionApiFilterControlPointCondition20", + "ApiFilterControlPointConditionApiFilterControlPointCondition21", + "ApiFilterControlPointConditionApiFilterControlPointCondition22", + "ApiFilterControlPointConditionApiFilterControlPointCondition23", + "ApiFilterControlPointConditionApiFilterControlPointCondition24", + "ApiFilterControlPointConditionApiFilterControlPointCondition25", + "ApiFilterControlPointConditionApiFilterControlPointCondition26", + ] +] + + +ApiFilterDateCondition = RootModel[ + Union[ + "ApiFilterDateConditionApiFilterDateCondition14", + "ApiFilterDateConditionApiFilterDateCondition15", + "ApiFilterDateConditionApiFilterDateCondition16", + "ApiFilterDateConditionApiFilterDateCondition17", + "ApiFilterDateConditionApiFilterDateCondition18", + "ApiFilterDateConditionApiFilterDateCondition19", + "ApiFilterDateConditionApiFilterDateCondition20", + "ApiFilterDateConditionApiFilterDateCondition21", + "ApiFilterDateConditionApiFilterDateCondition22", + "ApiFilterDateConditionApiFilterDateCondition23", + "ApiFilterDateConditionApiFilterDateCondition24", + "ApiFilterDateConditionApiFilterDateCondition25", + "ApiFilterDateConditionApiFilterDateCondition26", + ] +] + + +ApiFilterGroupCondition = RootModel[ + Union[ + "ApiFilterGroupConditionApiFilterGroupCondition14", + "ApiFilterGroupConditionApiFilterGroupCondition15", + "ApiFilterGroupConditionApiFilterGroupCondition16", + "ApiFilterGroupConditionApiFilterGroupCondition17", + "ApiFilterGroupConditionApiFilterGroupCondition18", + "ApiFilterGroupConditionApiFilterGroupCondition19", + "ApiFilterGroupConditionApiFilterGroupCondition20", + "ApiFilterGroupConditionApiFilterGroupCondition21", + "ApiFilterGroupConditionApiFilterGroupCondition22", + "ApiFilterGroupConditionApiFilterGroupCondition23", + "ApiFilterGroupConditionApiFilterGroupCondition24", + "ApiFilterGroupConditionApiFilterGroupCondition25", + "ApiFilterGroupConditionApiFilterGroupCondition26", + ] +] + + +ApiFilterGroupConditionUpdate = RootModel[ + Union[ + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate14", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate15", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate16", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate17", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate18", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate19", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate20", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate21", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate22", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate23", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate24", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate25", + "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate26", + ] +] + + +ApiFilterMaterialityCondition = RootModel[ + Union[ + "ApiFilterMaterialityConditionApiFilterMaterialityCondition14", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition15", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition16", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition17", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition18", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition19", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition20", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition21", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition22", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition23", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition24", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition25", + "ApiFilterMaterialityConditionApiFilterMaterialityCondition26", + ] +] + + +ApiFilterMonetaryFlowCondition = RootModel[ + Union[ + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition14", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition15", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition16", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition17", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition18", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition19", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition20", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition21", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition22", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition23", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition24", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition25", + "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition26", + ] +] + + +ApiFilterMonetaryValueCondition = RootModel[ + Union[ + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition14", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition15", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition16", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition17", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition18", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition19", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition20", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition21", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition22", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition23", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition24", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition25", + "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition26", + ] +] + + +ApiFilterNumericalValueCondition = RootModel[ + Union[ + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition14", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition15", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition16", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition17", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition18", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition19", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition20", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition21", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition22", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition23", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition24", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition25", + "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition26", + ] +] + + +ApiFilterPopulationsCondition = RootModel[ + Union[ + "ApiFilterPopulationsConditionApiFilterPopulationsCondition14", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition15", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition16", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition17", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition18", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition19", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition20", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition21", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition22", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition23", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition24", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition25", + "ApiFilterPopulationsConditionApiFilterPopulationsCondition26", + ] +] + + +ApiFilterRiskScoreCondition = RootModel[ + Union[ + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition14", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition15", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition16", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition17", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition18", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition19", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition20", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition21", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition22", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition23", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition24", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition25", + "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition26", + ] +] + + +ApiFilterStringArrayCondition = RootModel[ + Union[ + "ApiFilterStringArrayConditionApiFilterStringArrayCondition14", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition15", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition16", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition17", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition18", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition19", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition20", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition21", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition22", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition23", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition24", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition25", + "ApiFilterStringArrayConditionApiFilterStringArrayCondition26", + ] +] + + +ApiFilterStringCondition = RootModel[ + Union[ + "ApiFilterStringConditionApiFilterStringCondition14", + "ApiFilterStringConditionApiFilterStringCondition15", + "ApiFilterStringConditionApiFilterStringCondition16", + "ApiFilterStringConditionApiFilterStringCondition17", + "ApiFilterStringConditionApiFilterStringCondition18", + "ApiFilterStringConditionApiFilterStringCondition19", + "ApiFilterStringConditionApiFilterStringCondition20", + "ApiFilterStringConditionApiFilterStringCondition21", + "ApiFilterStringConditionApiFilterStringCondition22", + "ApiFilterStringConditionApiFilterStringCondition23", + "ApiFilterStringConditionApiFilterStringCondition24", + "ApiFilterStringConditionApiFilterStringCondition25", + "ApiFilterStringConditionApiFilterStringCondition26", + ] +] + + +ApiFilterTypeaheadEntryCondition = RootModel[ + Union[ + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition14", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition15", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition16", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition17", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition18", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition19", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition20", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition21", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition22", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition23", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition24", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition25", + "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition26", + ] +] + + +ApiFilterGroupConditionRead = RootModel[ + Union[ + "ApiFilterGroupConditionReadApiFilterGroupConditionRead14", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead15", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead16", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead17", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead18", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead19", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead20", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead21", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead22", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead23", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead24", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead25", + "ApiFilterGroupConditionReadApiFilterGroupConditionRead26", + ] +] + + +ApiFilterGroupConditionCreate = RootModel[ + Union[ + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate14", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate15", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate16", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate17", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate18", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate19", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate20", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate21", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate22", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate23", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate24", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate25", + "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate26", + ] +] + + +class ApiFilterAccountConditionApiFilterAccountCondition4(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition4(BaseItem): + type: Annotated[ + Literal["4"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate4(BaseItem): + type: Annotated[ + Literal["4"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition4(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition4(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition4(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate4(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition4(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition4(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition4(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition4(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition4(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition4(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition4(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition4(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition4(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead4(BaseItem): + type: Annotated[ + Literal["4"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead4(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate4(BaseItem): + type: Annotated[ + Literal["4"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate4(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition3(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition3(BaseItem): + type: Annotated[ + Literal["3"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate3(BaseItem): + type: Annotated[ + Literal["3"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition3(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition3(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition3(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate3(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition3(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition3(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition3(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition3(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition3(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition3(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition3(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition3(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition3(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead3(BaseItem): + type: Annotated[ + Literal["3"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead3(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate3(BaseItem): + type: Annotated[ + Literal["3"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate3(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition12(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition12(BaseItem): + type: Annotated[ + Literal["12"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate12(BaseItem): + type: Annotated[ + Literal["12"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition12(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition12(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition12(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate12(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition12(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition12(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition12(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition12(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition12(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition12(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition12(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition12(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition12(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead12(BaseItem): + type: Annotated[ + Literal["12"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead12(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate12(BaseItem): + type: Annotated[ + Literal["12"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate12(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition(BaseItem): + type: Annotated[ + Literal["0"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate(BaseItem): + type: Annotated[ + Literal["0"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead(BaseItem): + type: Annotated[ + Literal["0"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate(BaseItem): + type: Annotated[ + Literal["0"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition10(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition10(BaseItem): + type: Annotated[ + Literal["10"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate10(BaseItem): + type: Annotated[ + Literal["10"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition10(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition10(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition10(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate10(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition10(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition10(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition10(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition10(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition10(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition10(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition10(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition10(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition10(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead10(BaseItem): + type: Annotated[ + Literal["10"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead10(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate10(BaseItem): + type: Annotated[ + Literal["10"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate10(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition8(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition8(BaseItem): + type: Annotated[ + Literal["8"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate8(BaseItem): + type: Annotated[ + Literal["8"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition8(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition8(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition8(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate8(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition8(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition8(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition8(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition8(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition8(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition8(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition8(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition8(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition8(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead8(BaseItem): + type: Annotated[ + Literal["8"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead8(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate8(BaseItem): + type: Annotated[ + Literal["8"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate8(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition9(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition9(BaseItem): + type: Annotated[ + Literal["9"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate9(BaseItem): + type: Annotated[ + Literal["9"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition9(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition9(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition9(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate9(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition9(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition9(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition9(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition9(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition9(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition9(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition9(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition9(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition9(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead9(BaseItem): + type: Annotated[ + Literal["9"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead9(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate9(BaseItem): + type: Annotated[ + Literal["9"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate9(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition11(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition11(BaseItem): + type: Annotated[ + Literal["11"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate11(BaseItem): + type: Annotated[ + Literal["11"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition11(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition11(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition11(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate11(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition11(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition11(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition11(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition11(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition11(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition11(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition11(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition11(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition11(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead11(BaseItem): + type: Annotated[ + Literal["11"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead11(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate11(BaseItem): + type: Annotated[ + Literal["11"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate11(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition6(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition6(BaseItem): + type: Annotated[ + Literal["6"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate6(BaseItem): + type: Annotated[ + Literal["6"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition6(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition6(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition6(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate6(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition6(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition6(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition6(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition6(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition6(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition6(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition6(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition6(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition6(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead6(BaseItem): + type: Annotated[ + Literal["6"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead6(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate6(BaseItem): + type: Annotated[ + Literal["6"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate6(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition7(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition7(BaseItem): + type: Annotated[ + Literal["7"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate7(BaseItem): + type: Annotated[ + Literal["7"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition7(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition7(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition7(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate7(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition7(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition7(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition7(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition7(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition7(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition7(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition7(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition7(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition7(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead7(BaseItem): + type: Annotated[ + Literal["7"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead7(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate7(BaseItem): + type: Annotated[ + Literal["7"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate7(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition2(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition2(BaseItem): + type: Annotated[ + Literal["2"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate2(BaseItem): + type: Annotated[ + Literal["2"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition2(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition2(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition2(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate2(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition2(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition2(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition2(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition2(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition2(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition2(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition2(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition2(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition2(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead2(BaseItem): + type: Annotated[ + Literal["2"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead2(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate2(BaseItem): + type: Annotated[ + Literal["2"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate2(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition1(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition1(BaseItem): + type: Annotated[ + Literal["1"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate1(BaseItem): + type: Annotated[ + Literal["1"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition1(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition1(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition1(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate1(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition1(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition1(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition1(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition1(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition1(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition1(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition1(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition1(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition1(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead1(BaseItem): + type: Annotated[ + Literal["1"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead1(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate1(BaseItem): + type: Annotated[ + Literal["1"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate1(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition5(BaseItem): + type: Annotated[ + ApiFilterAccountConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionApiFilterCondition5(BaseItem): + type: Annotated[ + Literal["5"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterConditionUpdateApiFilterConditionUpdate5(BaseItem): + type: Annotated[ + Literal["5"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition5(BaseItem): + type: Annotated[ + ApiFilterControlPointConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterDateConditionApiFilterDateCondition5(BaseItem): + type: Annotated[ + ApiFilterDateConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionApiFilterGroupCondition5(BaseItem): + type: Annotated[ + ApiFilterGroupConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate5(BaseItem): + type: Annotated[ + ApiFilterGroupConditionUpdateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition5(BaseItem): + type: Annotated[ + ApiFilterMaterialityConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition5(BaseItem): + type: Annotated[ + ApiFilterMonetaryFlowConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition5(BaseItem): + type: Annotated[ + ApiFilterMonetaryValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition5(BaseItem): + type: Annotated[ + ApiFilterNumericalValueConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition5(BaseItem): + type: Annotated[ + ApiFilterPopulationsConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition5(BaseItem): + type: Annotated[ + ApiFilterRiskScoreConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition5(BaseItem): + type: Annotated[ + ApiFilterStringArrayConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterStringConditionApiFilterStringCondition5(BaseItem): + type: Annotated[ + ApiFilterStringConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition5(BaseItem): + type: Annotated[ + ApiFilterTypeaheadEntryConditionType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionReadApiFilterConditionRead5(BaseItem): + type: Annotated[ + Literal["5"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead5(BaseItem): + type: Annotated[ + ApiFilterGroupConditionReadType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterConditionCreateApiFilterConditionCreate5(BaseItem): + type: Annotated[ + Literal["5"], + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate5(BaseItem): + type: Annotated[ + ApiFilterGroupConditionCreateType | None, + Field(description="The type of condition.", title="Filter Condition Type"), + ] = None + + +class ApiFilterAccountConditionApiFilterAccountCondition18( + ApiFilterAccountConditionApiFilterAccountCondition4, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition18( + ApiFilterControlPointConditionApiFilterControlPointCondition4, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition18( + ApiFilterDateConditionApiFilterDateCondition4, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-4-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition18( + ApiFilterGroupConditionApiFilterGroupCondition4, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate18( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate4, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition18( + ApiFilterMaterialityConditionApiFilterMaterialityCondition4, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-4-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition18( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition4, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-4-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition18( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition4, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-4-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition18( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition4, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-4-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition18( + ApiFilterPopulationsConditionApiFilterPopulationsCondition4, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition18( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition4, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-4-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition18( + ApiFilterStringArrayConditionApiFilterStringArrayCondition4, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition18( + ApiFilterStringConditionApiFilterStringCondition4, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition18( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition4, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead18( + ApiFilterGroupConditionReadApiFilterGroupConditionRead4, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate18( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate4, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition17( + ApiFilterAccountConditionApiFilterAccountCondition3, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition17( + ApiFilterControlPointConditionApiFilterControlPointCondition3, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition17( + ApiFilterDateConditionApiFilterDateCondition3, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-3-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition17( + ApiFilterGroupConditionApiFilterGroupCondition3, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate17( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate3, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition17( + ApiFilterMaterialityConditionApiFilterMaterialityCondition3, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-3-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition17( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition3, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-3-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition17( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition3, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-3-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition17( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition3, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-3-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition17( + ApiFilterPopulationsConditionApiFilterPopulationsCondition3, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition17( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition3, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-3-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition17( + ApiFilterStringArrayConditionApiFilterStringArrayCondition3, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition17( + ApiFilterStringConditionApiFilterStringCondition3, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition17( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition3, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead17( + ApiFilterGroupConditionReadApiFilterGroupConditionRead3, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate17( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate3, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition26( + ApiFilterAccountConditionApiFilterAccountCondition12, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition26( + ApiFilterControlPointConditionApiFilterControlPointCondition12, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition26( + ApiFilterDateConditionApiFilterDateCondition12, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-12-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition26( + ApiFilterGroupConditionApiFilterGroupCondition12, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate26( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate12, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition26( + ApiFilterMaterialityConditionApiFilterMaterialityCondition12, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-12-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition26( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition12, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-12-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition26( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition12, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-12-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition26( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition12, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-12-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition26( + ApiFilterPopulationsConditionApiFilterPopulationsCondition12, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition26( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition12, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-12-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition26( + ApiFilterStringArrayConditionApiFilterStringArrayCondition12, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition26( + ApiFilterStringConditionApiFilterStringCondition12, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition26( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition12, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead26( + ApiFilterGroupConditionReadApiFilterGroupConditionRead12, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate26( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate12, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition14( + ApiFilterAccountConditionApiFilterAccountCondition, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition14( + ApiFilterControlPointConditionApiFilterControlPointCondition, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition14( + ApiFilterDateConditionApiFilterDateCondition, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-0-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition14( + ApiFilterGroupConditionApiFilterGroupCondition, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate14( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition14( + ApiFilterMaterialityConditionApiFilterMaterialityCondition, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-0-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition14( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-0-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition14( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-0-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition14( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-0-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition14( + ApiFilterPopulationsConditionApiFilterPopulationsCondition, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition14( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-0-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition14( + ApiFilterStringArrayConditionApiFilterStringArrayCondition, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition14( + ApiFilterStringConditionApiFilterStringCondition, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition14( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead14( + ApiFilterGroupConditionReadApiFilterGroupConditionRead, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate14( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition24( + ApiFilterAccountConditionApiFilterAccountCondition10, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition24( + ApiFilterControlPointConditionApiFilterControlPointCondition10, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition24( + ApiFilterDateConditionApiFilterDateCondition10, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-10-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition24( + ApiFilterGroupConditionApiFilterGroupCondition10, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate24( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate10, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition24( + ApiFilterMaterialityConditionApiFilterMaterialityCondition10, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-10-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition24( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition10, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-10-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition24( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition10, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-10-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition24( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition10, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-10-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition24( + ApiFilterPopulationsConditionApiFilterPopulationsCondition10, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition24( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition10, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-10-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition24( + ApiFilterStringArrayConditionApiFilterStringArrayCondition10, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition24( + ApiFilterStringConditionApiFilterStringCondition10, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition24( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition10, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead24( + ApiFilterGroupConditionReadApiFilterGroupConditionRead10, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate24( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate10, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition22( + ApiFilterAccountConditionApiFilterAccountCondition8, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition22( + ApiFilterControlPointConditionApiFilterControlPointCondition8, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition22( + ApiFilterDateConditionApiFilterDateCondition8, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-8-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition22( + ApiFilterGroupConditionApiFilterGroupCondition8, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate22( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate8, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition22( + ApiFilterMaterialityConditionApiFilterMaterialityCondition8, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-8-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition22( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition8, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-8-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition22( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition8, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-8-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition22( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition8, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-8-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition22( + ApiFilterPopulationsConditionApiFilterPopulationsCondition8, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition22( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition8, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-8-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition22( + ApiFilterStringArrayConditionApiFilterStringArrayCondition8, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition22( + ApiFilterStringConditionApiFilterStringCondition8, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition22( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition8, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead22( + ApiFilterGroupConditionReadApiFilterGroupConditionRead8, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate22( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate8, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition23( + ApiFilterAccountConditionApiFilterAccountCondition9, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition23( + ApiFilterControlPointConditionApiFilterControlPointCondition9, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition23( + ApiFilterDateConditionApiFilterDateCondition9, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-9-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition23( + ApiFilterGroupConditionApiFilterGroupCondition9, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate23( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate9, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition23( + ApiFilterMaterialityConditionApiFilterMaterialityCondition9, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-9-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition23( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition9, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-9-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition23( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition9, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-9-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition23( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition9, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-9-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition23( + ApiFilterPopulationsConditionApiFilterPopulationsCondition9, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition23( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition9, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-9-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition23( + ApiFilterStringArrayConditionApiFilterStringArrayCondition9, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition23( + ApiFilterStringConditionApiFilterStringCondition9, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition23( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition9, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead23( + ApiFilterGroupConditionReadApiFilterGroupConditionRead9, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate23( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate9, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition25( + ApiFilterAccountConditionApiFilterAccountCondition11, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition25( + ApiFilterControlPointConditionApiFilterControlPointCondition11, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition25( + ApiFilterDateConditionApiFilterDateCondition11, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-11-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition25( + ApiFilterGroupConditionApiFilterGroupCondition11, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate25( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate11, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition25( + ApiFilterMaterialityConditionApiFilterMaterialityCondition11, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-11-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition25( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition11, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-11-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition25( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition11, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-11-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition25( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition11, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-11-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition25( + ApiFilterPopulationsConditionApiFilterPopulationsCondition11, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition25( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition11, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-11-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition25( + ApiFilterStringArrayConditionApiFilterStringArrayCondition11, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition25( + ApiFilterStringConditionApiFilterStringCondition11, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition25( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition11, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead25( + ApiFilterGroupConditionReadApiFilterGroupConditionRead11, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate25( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate11, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition20( + ApiFilterAccountConditionApiFilterAccountCondition6, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition20( + ApiFilterControlPointConditionApiFilterControlPointCondition6, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition20( + ApiFilterDateConditionApiFilterDateCondition6, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-6-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition20( + ApiFilterGroupConditionApiFilterGroupCondition6, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate20( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate6, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition20( + ApiFilterMaterialityConditionApiFilterMaterialityCondition6, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-6-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition20( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition6, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-6-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition20( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition6, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-6-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition20( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition6, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-6-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition20( + ApiFilterPopulationsConditionApiFilterPopulationsCondition6, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition20( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition6, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-6-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition20( + ApiFilterStringArrayConditionApiFilterStringArrayCondition6, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition20( + ApiFilterStringConditionApiFilterStringCondition6, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition20( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition6, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead20( + ApiFilterGroupConditionReadApiFilterGroupConditionRead6, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate20( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate6, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition21( + ApiFilterAccountConditionApiFilterAccountCondition7, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition21( + ApiFilterControlPointConditionApiFilterControlPointCondition7, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition21( + ApiFilterDateConditionApiFilterDateCondition7, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-7-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition21( + ApiFilterGroupConditionApiFilterGroupCondition7, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate21( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate7, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition21( + ApiFilterMaterialityConditionApiFilterMaterialityCondition7, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-7-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition21( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition7, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-7-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition21( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition7, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-7-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition21( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition7, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-7-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition21( + ApiFilterPopulationsConditionApiFilterPopulationsCondition7, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition21( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition7, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-7-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition21( + ApiFilterStringArrayConditionApiFilterStringArrayCondition7, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition21( + ApiFilterStringConditionApiFilterStringCondition7, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition21( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition7, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead21( + ApiFilterGroupConditionReadApiFilterGroupConditionRead7, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate21( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate7, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition16( + ApiFilterAccountConditionApiFilterAccountCondition2, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition16( + ApiFilterControlPointConditionApiFilterControlPointCondition2, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition16( + ApiFilterDateConditionApiFilterDateCondition2, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-2-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition16( + ApiFilterGroupConditionApiFilterGroupCondition2, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate16( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate2, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition16( + ApiFilterMaterialityConditionApiFilterMaterialityCondition2, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-2-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition16( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition2, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-2-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition16( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition2, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-2-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition16( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition2, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-2-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition16( + ApiFilterPopulationsConditionApiFilterPopulationsCondition2, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition16( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition2, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-2-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition16( + ApiFilterStringArrayConditionApiFilterStringArrayCondition2, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition16( + ApiFilterStringConditionApiFilterStringCondition2, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition16( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition2, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead16( + ApiFilterGroupConditionReadApiFilterGroupConditionRead2, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate16( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate2, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition15( + ApiFilterAccountConditionApiFilterAccountCondition1, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition15( + ApiFilterControlPointConditionApiFilterControlPointCondition1, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition15( + ApiFilterDateConditionApiFilterDateCondition1, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-1-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition15( + ApiFilterGroupConditionApiFilterGroupCondition1, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate15( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate1, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition15( + ApiFilterMaterialityConditionApiFilterMaterialityCondition1, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-1-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition15( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition1, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-1-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition15( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition1, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-1-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition15( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition1, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-1-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition15( + ApiFilterPopulationsConditionApiFilterPopulationsCondition1, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition15( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition1, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-1-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition15( + ApiFilterStringArrayConditionApiFilterStringArrayCondition1, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition15( + ApiFilterStringConditionApiFilterStringCondition1, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition15( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition1, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead15( + ApiFilterGroupConditionReadApiFilterGroupConditionRead1, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate15( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate1, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterAccountConditionApiFilterAccountCondition19( + ApiFilterAccountConditionApiFilterAccountCondition5, + ApiFilterAccountConditionApiFilterAccountCondition13, +): + account_selections: Annotated[ + list[ApiFilterAccountSelection], Field(alias="accountSelections") + ] + field: str + negated: bool + type: Annotated[ + ApiFilterAccountConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +ApiFilterCondition = RootModel[ + ApiFilterConditionApiFilterCondition + | ApiFilterConditionApiFilterCondition1 + | ApiFilterConditionApiFilterCondition2 + | ApiFilterConditionApiFilterCondition3 + | ApiFilterConditionApiFilterCondition4 + | ApiFilterConditionApiFilterCondition5 + | ApiFilterConditionApiFilterCondition6 + | ApiFilterConditionApiFilterCondition7 + | ApiFilterConditionApiFilterCondition8 + | ApiFilterConditionApiFilterCondition9 + | ApiFilterConditionApiFilterCondition10 + | ApiFilterConditionApiFilterCondition11 + | ApiFilterConditionApiFilterCondition12 + | None +] + + +ApiFilterConditionUpdate = RootModel[ + ApiFilterConditionUpdateApiFilterConditionUpdate + | ApiFilterConditionUpdateApiFilterConditionUpdate1 + | ApiFilterConditionUpdateApiFilterConditionUpdate2 + | ApiFilterConditionUpdateApiFilterConditionUpdate3 + | ApiFilterConditionUpdateApiFilterConditionUpdate4 + | ApiFilterConditionUpdateApiFilterConditionUpdate5 + | ApiFilterConditionUpdateApiFilterConditionUpdate6 + | ApiFilterConditionUpdateApiFilterConditionUpdate7 + | ApiFilterConditionUpdateApiFilterConditionUpdate8 + | ApiFilterConditionUpdateApiFilterConditionUpdate9 + | ApiFilterConditionUpdateApiFilterConditionUpdate10 + | ApiFilterConditionUpdateApiFilterConditionUpdate11 + | ApiFilterConditionUpdateApiFilterConditionUpdate12 + | None +] + + +class ApiFilterControlPointConditionApiFilterControlPointCondition19( + ApiFilterControlPointConditionApiFilterControlPointCondition5, + ApiFilterControlPointConditionApiFilterControlPointCondition13, +): + control_points: Annotated[ + list[ApiFilterControlPointSelection], + Field(alias="controlPoints", description="A list of control point selections."), + ] + field: str + negated: bool + risk_level: Annotated[ + ApiFilterControlPointConditionRiskLevel, + Field( + alias="riskLevel", + description="The risk level of the selected control points.", + title="Filter Control Point Risk Level", + ), + ] + type: Annotated[ + ApiFilterControlPointConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterDateConditionApiFilterDateCondition19( + ApiFilterDateConditionApiFilterDateCondition5, + ApiFilterDateConditionApiFilterDateCondition13, +): + date_type: Annotated[ + Literal[ + "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-5-#-special-#" + ], + Field( + alias="dateType", + description="The type of date condition.", + title="Filter Date Type", + ), + ] + field: str + negated: bool + type: Annotated[ + ApiFilterDateConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionApiFilterGroupCondition19( + ApiFilterGroupConditionApiFilterGroupCondition5, + ApiFilterGroupConditionApiFilterGroupCondition13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate19( + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate5, + ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionUpdateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionUpdateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMaterialityConditionApiFilterMaterialityCondition19( + ApiFilterMaterialityConditionApiFilterMaterialityCondition5, + ApiFilterMaterialityConditionApiFilterMaterialityCondition13, +): + field: str + materiality_option: Annotated[ + Literal[ + "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-5-#-special-#" + ], + Field( + alias="materialityOption", + description="The type of materiality comparison.", + title="Filter Materiality Value Options", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMaterialityConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition19( + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition5, + ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, +): + field: str + monetary_flow_type: Annotated[ + Literal[ + "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-5-#-special-#" + ], + Field( + alias="monetaryFlowType", + description="The type of monetary flow this filter will match.", + title="Filter Monetary Flow Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryFlowConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition19( + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition5, + ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, +): + field: str + monetary_value_type: Annotated[ + Literal[ + "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-5-#-special-#" + ], + Field( + alias="monetaryValueType", + description="The type of monetary value condition.", + title="Filter Monetary Type", + ), + ] + negated: bool + type: Annotated[ + ApiFilterMonetaryValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition19( + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition5, + ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, +): + field: str + negated: bool + numerical_value_type: Annotated[ + Literal[ + "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-5-#-special-#" + ], + Field( + alias="numericalValueType", + description="The type of numerical value condition.", + title="Filter Numerical Value Type", + ), + ] + type: Annotated[ + ApiFilterNumericalValueConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterPopulationsConditionApiFilterPopulationsCondition19( + ApiFilterPopulationsConditionApiFilterPopulationsCondition5, + ApiFilterPopulationsConditionApiFilterPopulationsCondition13, +): + field: str + negated: bool + population_ids: Annotated[ + list[str], + Field( + alias="populationIds", + description="A list of population IDs and category names to be used in the filter.", + ), + ] + type: Annotated[ + ApiFilterPopulationsConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition19( + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition5, + ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, +): + field: str + negated: bool + risk_score_id: Annotated[ + str, + Field(alias="riskScoreId", description="The risk score column being filtered."), + ] + risk_score_type: Annotated[ + Literal[ + "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-5-#-special-#" + ], + Field( + alias="riskScoreType", + description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", + title="Filter Risk Score Type", + ), + ] + type: Annotated[ + ApiFilterRiskScoreConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +class ApiFilterStringArrayConditionApiFilterStringArrayCondition19( + ApiFilterStringArrayConditionApiFilterStringArrayCondition5, + ApiFilterStringArrayConditionApiFilterStringArrayCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringArrayConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[str], Field(description="The set of text values used to filter entries.") + ] + + +class ApiFilterStringConditionApiFilterStringCondition19( + ApiFilterStringConditionApiFilterStringCondition5, + ApiFilterStringConditionApiFilterStringCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterStringConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + value: Annotated[str, Field(description="The text value used to filter entries.")] + + +class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition19( + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition5, + ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, +): + field: str + negated: bool + type: Annotated[ + ApiFilterTypeaheadEntryConditionType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + values: Annotated[ + list[ApiTypeaheadEntry], + Field( + description="A list of typeahead entry selections to be used in the filter." + ), + ] + + +ApiFilterConditionRead = RootModel[ + ApiFilterConditionReadApiFilterConditionRead + | ApiFilterConditionReadApiFilterConditionRead1 + | ApiFilterConditionReadApiFilterConditionRead2 + | ApiFilterConditionReadApiFilterConditionRead3 + | ApiFilterConditionReadApiFilterConditionRead4 + | ApiFilterConditionReadApiFilterConditionRead5 + | ApiFilterConditionReadApiFilterConditionRead6 + | ApiFilterConditionReadApiFilterConditionRead7 + | ApiFilterConditionReadApiFilterConditionRead8 + | ApiFilterConditionReadApiFilterConditionRead9 + | ApiFilterConditionReadApiFilterConditionRead10 + | ApiFilterConditionReadApiFilterConditionRead11 + | ApiFilterConditionReadApiFilterConditionRead12 + | None +] + + +class ApiFilterGroupConditionReadApiFilterGroupConditionRead19( + ApiFilterGroupConditionReadApiFilterGroupConditionRead5, + ApiFilterGroupConditionReadApiFilterGroupConditionRead13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionReadOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionReadType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +ApiFilterConditionCreate = RootModel[ + ApiFilterConditionCreateApiFilterConditionCreate + | ApiFilterConditionCreateApiFilterConditionCreate1 + | ApiFilterConditionCreateApiFilterConditionCreate2 + | ApiFilterConditionCreateApiFilterConditionCreate3 + | ApiFilterConditionCreateApiFilterConditionCreate4 + | ApiFilterConditionCreateApiFilterConditionCreate5 + | ApiFilterConditionCreateApiFilterConditionCreate6 + | ApiFilterConditionCreateApiFilterConditionCreate7 + | ApiFilterConditionCreateApiFilterConditionCreate8 + | ApiFilterConditionCreateApiFilterConditionCreate9 + | ApiFilterConditionCreateApiFilterConditionCreate10 + | ApiFilterConditionCreateApiFilterConditionCreate11 + | ApiFilterConditionCreateApiFilterConditionCreate12 + | None +] + + +class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate19( + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate5, + ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, +): + conditions: Annotated[ + list[ApiFilterCondition], + Field(description="The entries within this condition group.", min_length=1), + ] + operator: Annotated[ + ApiFilterGroupConditionCreateOperator, + Field( + description="The operator to be applied to conditions within this group.", + title="Filter Group Operator", + ), + ] + type: Annotated[ + ApiFilterGroupConditionCreateType, + Field(description="The type of condition.", title="Filter Condition Type"), + ] + + +ApiFilterGroupConditionApiFilterGroupCondition13.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13.model_rebuild() +ApiFilterUpdate.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead13.model_rebuild() +ApiFilterRead.model_rebuild() +ApiPopulationTagUpdate.model_rebuild() +ApiPopulationTagRead.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13.model_rebuild() +ApiFilterCreate.model_rebuild() +ApiPopulationTagCreate.model_rebuild() +ApiDataTableExportToFileManagerRequestCreate.model_rebuild() +ApiDataTableExportRequest.model_rebuild() +ApiDataTableQueryRead.model_rebuild() +MindBridgeQueryTermMindBridgeQueryTerm14.model_rebuild() +MindBridgeQueryTermMindBridgeQueryTerm15.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition18.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate18.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead18.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate18.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition17.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate17.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead17.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate17.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition26.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate26.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead26.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate26.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition14.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate14.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead14.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate14.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition24.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate24.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead24.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate24.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition22.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate22.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead22.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate22.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition23.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate23.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead23.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate23.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition25.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate25.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead25.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate25.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition20.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate20.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead20.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate20.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition21.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate21.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead21.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate21.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition16.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate16.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead16.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate16.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition15.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate15.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead15.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate15.model_rebuild() +ApiFilterGroupConditionApiFilterGroupCondition19.model_rebuild() +ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate19.model_rebuild() +ApiFilterGroupConditionReadApiFilterGroupConditionRead19.model_rebuild() +ApiFilterGroupConditionCreateApiFilterGroupConditionCreate19.model_rebuild() From 207dda35c71a3dc2518e5de150996b925f145da7 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Thu, 16 Apr 2026 10:00:54 -0400 Subject: [PATCH 09/23] Revert all changes --- src/datamodel_code_generator/parser/base.py | 12 +-- .../main/graphql/cyclic_mutual_types.py | 36 --------- .../main/jsonschema/cyclic_mutual_defs.py | 19 ----- .../main/openapi/cyclic_component_refs.py | 19 ----- .../data/graphql/cyclic-mutual-types.graphql | 19 ----- tests/data/jsonschema/cyclic_mutual_defs.json | 33 --------- tests/data/openapi/cyclic_component_refs.yaml | 25 ------- tests/main/graphql/test_main_graphql.py | 11 --- tests/main/jsonschema/test_main_jsonschema.py | 10 --- tests/main/openapi/test_main_openapi.py | 10 --- tests/parser/test_base.py | 74 ------------------- 11 files changed, 2 insertions(+), 266 deletions(-) delete mode 100644 tests/data/expected/main/graphql/cyclic_mutual_types.py delete mode 100644 tests/data/expected/main/jsonschema/cyclic_mutual_defs.py delete mode 100644 tests/data/expected/main/openapi/cyclic_component_refs.py delete mode 100644 tests/data/graphql/cyclic-mutual-types.graphql delete mode 100644 tests/data/jsonschema/cyclic_mutual_defs.json delete mode 100644 tests/data/openapi/cyclic_component_refs.yaml diff --git a/src/datamodel_code_generator/parser/base.py b/src/datamodel_code_generator/parser/base.py index 942ba4b73..ecbad8e72 100644 --- a/src/datamodel_code_generator/parser/base.py +++ b/src/datamodel_code_generator/parser/base.py @@ -493,7 +493,7 @@ def add_model_path_to_list( return paths -def sort_data_models( # noqa: PLR0912, PLR0914, PLR0915 +def sort_data_models( # noqa: PLR0912, PLR0915 unsorted_data_models: list[DataModel], sorted_data_models: SortedDataModels | None = None, require_update_action_models: list[str] | None = None, @@ -534,7 +534,6 @@ def sort_data_models( # noqa: PLR0912, PLR0914, PLR0915 pass # sort on base_class dependency - seen_orders: set[tuple[str, ...]] = set() while True: ordered_models: list[tuple[int, DataModel]] = [] # Build lookup dict for O(1) index access instead of O(n) list.index() @@ -566,11 +565,6 @@ def sort_data_models( # noqa: PLR0912, PLR0914, PLR0915 sorted_unresolved_models = [m[1] for m in sorted(ordered_models, key=operator.itemgetter(0))] if sorted_unresolved_models == unresolved_references: break - new_order = tuple(m.path for m in sorted_unresolved_models) - if new_order in seen_orders: - unresolved_references = sorted_unresolved_models - break - seen_orders.add(new_order) unresolved_references = sorted_unresolved_models # circular reference @@ -1630,9 +1624,7 @@ def get_discriminator_field_value( if len(discriminator_values) == 0: for base_class in discriminator_model.base_classes: - if not base_class.reference: - continue - check_paths(base_class.reference, mapping) + check_paths(base_class.reference, mapping) # ty: ignore if not discriminator_values: discriminator_values = [discriminator_model.path.split("/")[-1]] diff --git a/tests/data/expected/main/graphql/cyclic_mutual_types.py b/tests/data/expected/main/graphql/cyclic_mutual_types.py deleted file mode 100644 index c8fb7e0d1..000000000 --- a/tests/data/expected/main/graphql/cyclic_mutual_types.py +++ /dev/null @@ -1,36 +0,0 @@ -# generated by datamodel-codegen: -# filename: cyclic-mutual-types.graphql -# timestamp: 2019-07-26T00:00:00+00:00 - -from __future__ import annotations - -from typing import Literal - -from pydantic import BaseModel, Field -from typing_extensions import TypeAliasType - -Boolean = TypeAliasType("Boolean", bool) -""" -The `Boolean` scalar type represents `true` or `false`. -""" - - -String = TypeAliasType("String", str) -""" -The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. -""" - - -class Model(BaseModel): - name: String | None = None - typename__: Literal['Model'] | None = Field('Model', alias='__typename') - - -class Team(Person, Model): - name: String | None = None - typename__: Literal['Team'] | None = Field('Team', alias='__typename') - - -class Person(Team, Model): - name: String | None = None - typename__: Literal['Person'] | None = Field('Person', alias='__typename') diff --git a/tests/data/expected/main/jsonschema/cyclic_mutual_defs.py b/tests/data/expected/main/jsonschema/cyclic_mutual_defs.py deleted file mode 100644 index d77c41a2b..000000000 --- a/tests/data/expected/main/jsonschema/cyclic_mutual_defs.py +++ /dev/null @@ -1,19 +0,0 @@ -# generated by datamodel-codegen: -# filename: cyclic_mutual_defs.json -# timestamp: 2019-07-26T00:00:00+00:00 - -from __future__ import annotations - -from pydantic import BaseModel - - -class Model(BaseModel): - pass - - -class Person(Team, Model): - name: str | None = None - - -class Team(Person, Model): - name: str | None = None diff --git a/tests/data/expected/main/openapi/cyclic_component_refs.py b/tests/data/expected/main/openapi/cyclic_component_refs.py deleted file mode 100644 index 256f3456c..000000000 --- a/tests/data/expected/main/openapi/cyclic_component_refs.py +++ /dev/null @@ -1,19 +0,0 @@ -# generated by datamodel-codegen: -# filename: cyclic_component_refs.yaml -# timestamp: 2019-07-26T00:00:00+00:00 - -from __future__ import annotations - -from pydantic import BaseModel - - -class Model(BaseModel): - pass - - -class Person(Team, Model): - name: str | None = None - - -class Team(Person, Model): - name: str | None = None diff --git a/tests/data/graphql/cyclic-mutual-types.graphql b/tests/data/graphql/cyclic-mutual-types.graphql deleted file mode 100644 index d383116c3..000000000 --- a/tests/data/graphql/cyclic-mutual-types.graphql +++ /dev/null @@ -1,19 +0,0 @@ -type Query { - entry: Team -} - -# GraphQL interfaces must declare fields; OpenAPI `Model` is an empty object, so `name` -# is the shared optional field carried by Team/Person (mirrors OpenAPI `name` on each). -interface Model { - name: String -} - -# Mirrors allOf [Model, Person] + properties { name }. -interface Team implements Model & Person { - name: String -} - -# Mirrors allOf [Model, Team] + properties { name }. -interface Person implements Model & Team { - name: String -} diff --git a/tests/data/jsonschema/cyclic_mutual_defs.json b/tests/data/jsonschema/cyclic_mutual_defs.json deleted file mode 100644 index abd95dec3..000000000 --- a/tests/data/jsonschema/cyclic_mutual_defs.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "properties": {}, - "definitions": { - "Model": { - "title": "Model", - "type": "object" - }, - "Team": { - "title": "Team", - "allOf": [ - { "$ref": "#/definitions/Model" }, - { "$ref": "#/definitions/Person" } - ], - "type": "object", - "properties": { - "name": { "type": "string" } - } - }, - "Person": { - "title": "Person", - "allOf": [ - { "$ref": "#/definitions/Model" }, - { "$ref": "#/definitions/Team" } - ], - "type": "object", - "properties": { - "name": { "type": "string" } - } - } - } -} diff --git a/tests/data/openapi/cyclic_component_refs.yaml b/tests/data/openapi/cyclic_component_refs.yaml deleted file mode 100644 index b88867b4b..000000000 --- a/tests/data/openapi/cyclic_component_refs.yaml +++ /dev/null @@ -1,25 +0,0 @@ -openapi: 3.0.0 -info: - title: Cyclic component $ref - version: "1.0" -paths: {} -components: - schemas: - Model: - type: object - Team: - allOf: - - $ref: "#/components/schemas/Model" - - $ref: "#/components/schemas/Person" - type: object - properties: - name: - type: string - Person: - allOf: - - $ref: "#/components/schemas/Model" - - $ref: "#/components/schemas/Team" - type: object - properties: - name: - type: string diff --git a/tests/main/graphql/test_main_graphql.py b/tests/main/graphql/test_main_graphql.py index cec8f8984..c71e35e8a 100644 --- a/tests/main/graphql/test_main_graphql.py +++ b/tests/main/graphql/test_main_graphql.py @@ -917,14 +917,3 @@ def test_main_graphql_no_typename(output_file: Path) -> None: expected_file="no_typename.py", extra_args=["--graphql-no-typename"], ) - - -def test_main_cyclic_mutual_types(output_file: Path) -> None: - """Mutual object-type cycle (A <-> B) in GraphQL.""" - run_main_and_assert( - input_path=GRAPHQL_DATA_PATH / "cyclic-mutual-types.graphql", - output_path=output_file, - input_file_type="graphql", - assert_func=assert_file_content, - expected_file="cyclic_mutual_types.py", - ) diff --git a/tests/main/jsonschema/test_main_jsonschema.py b/tests/main/jsonschema/test_main_jsonschema.py index 6bf748de9..632c4d2c9 100644 --- a/tests/main/jsonschema/test_main_jsonschema.py +++ b/tests/main/jsonschema/test_main_jsonschema.py @@ -1224,16 +1224,6 @@ def test_main_circular_reference(output_file: Path) -> None: ) -def test_main_cyclic_mutual_defs(output_file: Path) -> None: - """Minimal mutual cycle between two JSON Schema definitions (A <-> B).""" - run_main_and_assert( - input_path=JSON_SCHEMA_DATA_PATH / "cyclic_mutual_defs.json", - output_path=output_file, - input_file_type="jsonschema", - assert_func=assert_file_content, - ) - - def test_main_invalid_enum_name(output_file: Path) -> None: """Test invalid enum name handling.""" run_main_and_assert( diff --git a/tests/main/openapi/test_main_openapi.py b/tests/main/openapi/test_main_openapi.py index c3da99a75..65121180d 100644 --- a/tests/main/openapi/test_main_openapi.py +++ b/tests/main/openapi/test_main_openapi.py @@ -4751,16 +4751,6 @@ def test_main_openapi_circular_imports_acyclic(output_dir: Path) -> None: ) -def test_main_cyclic_component_refs(output_file: Path) -> None: - """Mutual $ref cycle in components/schemas (single-file OpenAPI).""" - run_main_and_assert( - input_path=OPEN_API_DATA_PATH / "cyclic_component_refs.yaml", - output_path=output_file, - input_file_type="openapi", - assert_func=assert_file_content, - ) - - def test_main_openapi_circular_imports_class_conflict(output_dir: Path) -> None: """Test that class name conflicts in merged _internal.py are resolved with sequential renaming.""" with freeze_time(TIMESTAMP): diff --git a/tests/parser/test_base.py b/tests/parser/test_base.py index 7342cb073..9163b5a1e 100644 --- a/tests/parser/test_base.py +++ b/tests/parser/test_base.py @@ -13,8 +13,6 @@ if TYPE_CHECKING: from datamodel_code_generator.parser.schema_version import JsonSchemaFeatures -from datamodel_code_generator.imports import Imports -from datamodel_code_generator.model.base import BaseClassDataType from datamodel_code_generator.model.pydantic_v2 import BaseModel, DataModelField from datamodel_code_generator.model.type_alias import TypeAlias, TypeAliasTypeBackport, TypeStatement from datamodel_code_generator.parser.base import ( @@ -244,78 +242,6 @@ def test_sort_data_models_unresolved_raise_recursion_error() -> None: sort_data_models(reference, recursion_count=100000) -def test_sort_data_models_circular_base_classes_no_infinite_loop() -> None: - """Mutual base-class references must not oscillate forever in the dependency sort.""" - reference_a = Reference(path="A", original_name="A", name="A") - reference_b = Reference(path="B", original_name="B", name="B") - reference = [ - BaseModel( - fields=[], - reference=reference_a, - base_classes=[reference_b], - ), - BaseModel( - fields=[], - reference=reference_b, - base_classes=[reference_a], - ), - ] - - _, resolved, require_update_action_models = sort_data_models(reference) - - assert set(resolved) == {"A", "B"} - assert sorted(require_update_action_models) == ["A", "B"] - - -def test_apply_discriminator_type_skips_base_class_without_reference() -> None: - """Base class slots without a Reference must not be passed to check_paths.""" - ref_pet = Reference(path="#/components/schemas/Pet", original_name="Pet", name="Pet") - pet_model = BaseModel(fields=[], reference=ref_pet) - ref_pet.source = pet_model - pet_model.base_classes.append(BaseClassDataType()) - - ref_other = Reference(path="#/components/schemas/Other", original_name="Other", name="Other") - other_model = BaseModel(fields=[], reference=ref_other) - ref_other.source = other_model - - union_inner = DataType(data_types=[DataType(reference=ref_pet), DataType(reference=ref_other)]) - ref_root = Reference(path="#/components/schemas/Root", original_name="Root", name="Root") - field = DataModelField( - name="u", - data_type=union_inner, - extras={ - "discriminator": { - "propertyName": "petType", - "mapping": {"dog": "#/components/schemas/Other"}, - } - }, - ) - root = BaseModel(fields=[field], reference=ref_root) - ref_root.source = root - - parser = C( - data_model_type=BaseModel, - data_model_root_type=BaseModel, - data_model_field_type=DataModelField, - base_class="BaseModel", - source="", - ) - union_variant_types = tuple(union_inner.data_types) - assert len(union_variant_types) == 2 - assert {dt.reference.path for dt in union_variant_types} == {ref_pet.path, ref_other.path} - assert {id(dt.reference) for dt in union_variant_types} == {id(ref_pet), id(ref_other)} - pet_base_classes = pet_model.base_classes - bare_base_slot = pet_model.base_classes[-1] - - parser._Parser__apply_discriminator_type([root], Imports()) - - assert tuple(union_inner.data_types) == union_variant_types - assert {dt.reference.path for dt in union_inner.data_types} == {ref_pet.path, ref_other.path} - assert {id(dt.reference) for dt in union_inner.data_types} == {id(ref_pet), id(ref_other)} - assert pet_model.base_classes is pet_base_classes - assert pet_model.base_classes[-1] is bare_base_slot - - @pytest.mark.parametrize( ("current_module", "reference", "val"), [ From 6cc78345d96f747f0f73015c3ff36a2a5fdcabf4 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Thu, 16 Apr 2026 10:09:47 -0400 Subject: [PATCH 10/23] Add test that takes much more than 30 seconds (probably will never finish) --- tests/data/openapi/to_be_renamed_later.json | 1 + tests/main/openapi/test_main_openapi.py | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 tests/data/openapi/to_be_renamed_later.json diff --git a/tests/data/openapi/to_be_renamed_later.json b/tests/data/openapi/to_be_renamed_later.json new file mode 100644 index 000000000..e5e26f81b --- /dev/null +++ b/tests/data/openapi/to_be_renamed_later.json @@ -0,0 +1 @@ +{"openapi":"3.1.0","info":{"title":"MindBridge API","description":"The MindBridge API is an HTTP REST API that provides access to MindBridge entities and processes. Request and response bodies are\ngenerally JSON formatted, with some exceptions.\n\n## Endpoint model\n\nEndpoints are structured in a standard way:\n\n### Create\n\n`POST /{entityName}` - Creates an entity with the properties specified in the request body.\n\n### Read\n\n`GET /{entityName}/{entityId}` – Reads the entity identified by the ID.\n\n### Update\n\n`PUT /{entityName}/{entityId}` – Updates the entity identified by the ID with the content of the request body.\n\nEvery time an entity is saved, the `version` property is incremented. To prevent multiple calls from overwriting each other's changes,\nthe `version` property in the updated request body must match the latest version on MindBridge's servers.\n\n### Delete\n\n`DELETE /{entityName}/{entityId}` – Deletes the entity identified by the ID.\n\n### Query\n\n`POST /{entityName}/query` – Performs a paged query of the entity collection.\n\n## Entity model\n\nAll endpoint requests and responses for a given entity use the same model structure, with some fields being either read-only or editable\ndepending on the method. If a property is not editable for the endpoint in question, it will be ignored.\n\nFor example, if the following organization entity body is used with the `Create Organization` endpoint, then the `id` property will be\nignored and a new organization will be created with a new id and \"New organization\" as the name.\n\n```json\n{\n \"id\": \"4b8360d00000000000000001\",\n \"name\": \"New organization\"\n}\n```\n\nUsing this approach, an entity can be created or updated using the same model read from a read entity call, as read-only fields will not be\noverwritten by changes made to the _create_ or _update_ body.\n\nIf a property that is not present on the model is included in a create or update request, then the request body will be considered invalid\nand an error will be returned.\n\n## MindBridge Query Language\n\n### Overview\n\nMindBridge Query Language (QL) is the standard unified query language used to interact with all the underlying data tables and\ncollections within MindBridge. This query language has been extended to the MindBridge API, which uses this syntax for all `/query`\nendpoints within the API, as well as several other endpoints.\n\n### Syntax\n\nThe query is expressed as a JSON object. The example below looks for values equal to 10000 in the `credit` column.\n\n```json\n{\n \"credit\": {\n \"$eq\": 10000\n }\n}\n```\n\nAbove, `$eq` is the equality operator. Other operators are listed below. As a shortcut for equality, you can specify the value directly.\n\n```json\n{\n \"credit\": 10000\n}\n```\n\nIn order to conform to the syntax of a valid JSON object, all operators and fields must be enclosed in quotes. For more details on the\nJSON language, refer to [json.org](https://json.org).\n\nLogical `AND` and `OR` conditions are available. If you want to specify two columns, the conditions can be combined with `$and`.\n\n```json\n{\n \"$and\": [\n {\n \"account\": {\n \"$eq\": \"1023345\"\n }\n },\n {\n \"risk\": {\n \"$gte\": 5000\n }\n }\n ]\n}\n```\n\n#### Simplified Syntax\n\nThe example `$and` query above can be simplified using the syntax seen below.\n\n```json\n{\n \"account\": {\n \"$eq\": \"1023345\"\n },\n \"risk\": {\n \"$gte\": 5000\n }\n}\n```\n\nYou can combine `$or` and `$and` to build up a more complex structure, such as the one seen below, which combines all the techniques\nseen so far.\n\n```json\n{\n \"risk\": {\n \"$gte\": 5000,\n \"$lt\": 7000\n },\n \"$or\": [\n {\n \"transaction\": {\n \"$iprefix\": \"ABC1\"\n }\n },\n {\n \"transaction\": {\n \"$iprefix\": \"ABC2\"\n }\n }\n ],\n \"$and\": [\n {\n \"source\": {\n \"$ne\": \"MA\"\n }\n },\n {\n \"source\": {\n \"$iprefix\": \"M\"\n }\n }\n ]\n}\n```\n\nYou can use two operators on the same column at the same time:\n\n```json\n{\n \"credit\": {\n \"$gte\": 1000,\n \"$lt\": 10000\n }\n}\n```\n\n#### Unique Names\n\nEvery field in a JSON object or sub-object must be **unique**. The following is not valid because `source` appears twice at the top level.\n\n```json\n{\n \"source\": {\n \"$ne\": \"MA\"\n },\n \"source\": {\n \"$ne\": \"MB\"\n }\n}\n```\n\nInstead, wrap it in `$and`:\n\n```json\n{\n \"$and\": [\n {\n \"source\": {\n \"$ne\": \"MA\"\n }\n },\n {\n \"source\": {\n \"$ne\": \"MB\"\n }\n }\n ]\n}\n```\n\nOr use another operator like `$nin`:\n\n```json\n{\n \"source\": {\n \"$nin\": [\n \"MA\",\n \"MB\"\n ]\n }\n}\n```\n\nYou can use two operators on the same column at the same time:\n\n```json\n{\n \"credit\": {\n \"$gte\": 1000,\n \"$lt\": 10000\n }\n}\n```\n\n### Column Operators\n\n**Column operators** apply a filter to a specific column.\n\n| Description | Description | Column Types | Field Conditions |\n|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|\n| `$eq` | Tests if the value in the column **is identical** to the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`equalitySearch` must be true |\n| `$ne` | Tests if the value in the column **is not identical** to the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`equalitySearch` must be true |\n| `$gt` | Tests if the value in the column is **greater than** the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`rangeSearch` must be true |\n| `$gte` | Tests if the value in the column is **greater than or equal** to the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`rangeSearch` must be true |\n| `$lt` | Tests if the value in the column is **less than** the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`rangeSearch` must be true |\n| `$lte` | Tests if the value in the column is **less than or equal** to the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`rangeSearch` must be true |\n| `$contains` | Tests if an array **contains** a literal value.
For example, given a transaction with entries from accounts 12345 and 23456, the following query on the `gl_journal_tx` data table would match the transaction:
```{ \"accounts\": { \"$contains\": \"12345\" } }``` | ARRAY_STRINGS | case-insensitive on STRING values
`containsSearch` must be true |\n| `$ncontains` | Tests if an array **does not contain** a literal value. | ARRAY_STRINGS | case-insensitive on STRING values
`containsSearch` must be true |\n| `$in` | Tests if a column is equal to one of the values in an array of literals. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`equalitySearch` must be true |\n| `$nin` | Tests if a column is **not equal** to any values in an array of literals. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`equalitySearch` must be true |\n| `$flags` | Accepts an object with one or more keys with boolean values. Tests if the flags (keys) match the values.
For example, to search for entries that triggered the [2 Digit Benford](https://support.mindbridge.ai/hc/en-us/articles/360056059834) control point, use this query on the `gl_journal_lines` data table.
```{ \"cp_failed\": {\"$flags\": { \"journal_entry_two_digit_benford\": true }}}``` | BOOLEAN_FLAGS | |\n| `$isubstr` | Tests if a literal value **matches** the value in the column. For example, the following query on the `engagements/query`
endpoint will match engagements named \"abc\", \"aBc\", and \"zabcd\".
```{ \"name\": { \"$isubstr\": \"abc\" } }``` | STRING | case-insensitive on STRING values
`allowCaseInsensitiveSubstringSearch` must be true |\n| `$iprefix` | Tests if a literal value **matches** the start of the value in the column. For example, the following query on the `gl_journal_tx` data table will match transactions \"T1234\", \"t1234\", and \"T12345\".
```{ \"transaction\": { \"$iprefix\": \"T1234\" } }``` | STRING | case-insensitive on STRING values
`caseInsensitivePrefixSearch` must be true |\n| `$niprefix` | Tests if a literal value **does not match** the start of the value in the column. | STRING | case-insensitive on STRING values
`caseInsensitivePrefixSearch` must be true |\n\n### Root Operators\n\n#### Logical Operators\n\n**Logical operators** allow MindBridge to combine Column Operation queries to allow for more sophisticated calls.\n\n| Operator | Description |\n|----------|----------------------------------------------------------------|\n| `$and` | Tests that **all** contained terms are evaluated to be `true`. |\n| `$or` | Tests that **any** contained terms are evaluated to be `true`. |\n\n#### Keyword Operators\n\n**Keyword operators** are applied simultaneously to all columns that support keyword searches. This is controlled by the keywordSearch\nattribute associated with the column’s metadata.\n\n| Operator | Description |\n|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `$keyword_prefix` | Performs a case-insensitive prefix search of all words in the row (operand must be a STRING).
For example, the following query on the `gl_journal_tx` data table will return transactions with rows that contain the words **abc** , **abcdef**, or **aBcd** in any column.
```{ \"$keyword_prefix\": \"abc\" }``` |\n| `$keyword_prefix_not` | Inverted case-insensitive prefix search (operand must be a STRING). |\n\n#### Population Operators\n\n**Population operators** test whether the specified entry is or is not included within the specified population, identified by its ID. The\npopulation in question must be accessible from the analysis, meaning the population must be part of the analysis, engagement, or library\nthat this data table resides in.\n\n| Operator | Description |\n|-------------------|---------------------------------------------------------------------------------|\n| `$population` | Tests that entries are part of the population specified by the provided ID. |\n| `$not_population` | Tests that entries are not part of the population specified by the provided ID. |\n\nThe correct usage of `$population` and `$not_population` is as follows, with `643eff00ec992f7ec42ed9f7` being a valid population ID:\n\n```json\n{\n \"$population\": \"643eff00ec992f7ec42ed9f7\"\n}\n```\n\n```json\n{\n \"$not_population\": \"643eff00ec992f7ec42ed9f7\"\n}\n```\n\n### Data Formats\n\nBecause the MindBridge QL is based on JSON, `strings`, `numbers`, and `booleans` are natively included in the language definition, but\nother values require some conversion. The following table describes the values MindBridge QL accepts in relation to our internal data\nstructure. The contents of the \"Column Type\" column (below) represent the data types supported internally and how they are mapped to the\nJSON object structure.\n\n| Column Type | Format |\n|--------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `STRING` | Value must be a JSON string. |\n| `DATE_TIME` | A JSON string in ISO8601 date-time format, such as **2019-08-10T00:50:00Z**. |\n| `BOOLEAN` | Value must be a JSON boolean (true or false). |\n| `INT32` | Value must be a JSON number in the range **[-2^31, 2^31-1]**. |\n| `INT64` | Value must be a JSON number in the range **[-2^63, 2^63-1]**. |\n| `FLOAT32, FLOAT64` | Value must be a JSON number.
FLOAT32 **[1.2E-38, 3.4E+38]**
FLOAT64 **[2.2E-308, 1.7E+308]** |\n| `MONEY_100` | Currently we express currency values as integers, essentially multiplying by 100 to store, and dividing by 100 when displaying the value.
This allows MindBridge to operate with floating point numbers without loss of precision. Value must be a JSON number in the range **[-2^63,2^63-1]**. No division by 100 is performed on the actual data.
For example, in a `MONEY_100` column, such as credit, the following query on the `gl_journal_lines` data table will find values greater than 1234.
```{ \"credit\": { \"$gt\": 1234 } }``` |\n| `PERCENTAGE_FIXED_POINT` | Value must be a JSON number in the range **[0, 10000]** where 10000 means 100%. |\n| `ARRAY_STRINGS` | Value must be an array of JSON strings. |\n| `OBJECT_ID` | A 12-byte database identifier, represented by a 24-character hexadecimal string. Organizations, engagements, analyses, and analysis sources all use **OBJECT_ID** for their `id` fields.
For example, `6686add55cd5c94147ecebdb` |\n\n## Rate limiting\n\n**Rate limiting** restricts the number of API calls that can be made to certain endpoints over a given period of time, and has been applied\nto the endpoints indicated below. Once the limit is reached, further calls to any of these endpoints will fail until the rate limit resets.\n\nThese failures will show the HTTP status: `429 Too Many Requests`, along with a response header: `X-User-Hour-Limit-Remaining`. The\nvalue in the response header represents the number of seconds until the rate limit resets.\n\nFor example, suppose the `POST /users` endpoint has a rate limit of `100` calls per `1 hour`. If more than 100 requests are made within the\ngiven hour, any subsequent requests would fail and return the error indicated above.\n\nSince rate limiting is applied tenant-wide, all tokens share the same rate limit.\n\n### Rate limits\n\n| Name | Reset time remaining header | Limit | Duration | Endpoints |\n|-------------------------|-------------------------------|-------|----------|---------------------------------------------------------------|\n| Modify users rate limit | `X-User-Hour-Limit-Remaining` | 100 | 1 hour | - Create user
- Update user
- Resend activation email |\n\n### Platform-level rate limits\n\nAdditional rate limits are applied at the platform level on a per-IP address basis to protect against potential abuse or client-side\nsoftware incidents, and are set high enough that customers should not encounter them in regular use. Platform-level rate limits will return\nthe HTTP status `429` with no `X-User-Hour-Limit-Remaining` header, and requests can be retried after approximately 30 seconds.\n","contact":{"name":"MindBridge","url":"https://mindbridge.ai","email":"support@mindbridge.ai"},"version":"1.8.3"},"servers":[{"url":"https://test.mindbridge.ai/api","description":"Generated server url"}],"security":[{"mindbridge-api":[]}],"tags":[{"name":"Tasks","description":"**Tasks** are data table transactions or entries that have been added to the audit plan for further investigation.\n","x-tag-expanded":"false"},{"name":"Account Mappings","description":"_Account mapping_ aligns your organization's accounts with MindBridge Account Classification (MAC) codes based on their\nnature, ensuring that MindBridge can consistently and effectively analyze datasets across the engagement.\n\nBefore an analysis can be run, all account mappings within the given engagement must be marked as _Verified_ or _MAC code_.\n\n## Mapping statuses\n\n- **Verified**: Indicates that the account has been mapped to a MAC code or grouping code _automatically_, and/or was\n previously manually verified.\n- **Unverified**: Indicates that MindBridge _automatically_ mapped the account to a lowest level account grouping code\n based on the grouping code and/or account description, and should be verified for accuracy before you proceed.\n- **MAC code**: When using a MindBridge default library, this indicates that the imported general ledger file included\n a \"MAC code\" column that accurately reflects the lowest-level MAC code for each account group in the ledger — in this\n case, MindBridge uses _direct matching_ to map the accounts.\n- **Modified**: Indicates that an account's MAC code was updated when copied between account groupings — this may happen\n if a _different library_ is selected while rolling an analysis forward or duplicating an analysis into a _new\n engagement_.\n- **Manual**: Indicates that the account mapping was changed manually by a member of your team.\n- **Inferred**: When a less granular grouping code or MAC code is provided, this indicates that MindBridge has\n automatically mapped the account to a Level 3 MAC code based on the provided code and account description, and should\n be verified for accuracy before you proceed.\n- **Unmapped**: Indicates that the account has not yet been mapped to a valid MAC code or grouping code.\n","x-tag-expanded":"false"},{"name":"File Manager","description":"The **file manager** is a secure, centralized holding area designed to store files related to an engagement. It supports a folder-based\nhierarchy, allowing data to be utilized for various purposes. Files stored in the file manager can be imported into appropriate analysis\nsources*.\n\n***Note:** The file manager can hold any number of files, but the analysis source types available within an engagement are controlled by the\nselected library and the analysis types it supports.\n","x-tag-expanded":"false"},{"name":"Engagement Account Groupings","description":"An **engagement account grouping** is an engagement-level copy of an account grouping that is generated upon creation of a new\nengagement. Subsequent changes made to the original account grouping and/or its account groups will not be copied into the\nengagement account grouping, and vice versa.\n","x-tag-expanded":"false"},{"name":"API Tokens","description":"**API tokens** are used to authenticate requests made to the MindBridge API. During creation, each token is assigned permissions that\ncontrol the actions it can perform.\n\nAPI tokens are valid until their expiry date, after which they can no longer be used. A token may be active for a maximum of 2 years from\nthe date of creation.\n\nAdditionally, API tokens can be configured to limit access to specific IP addresses or CIDR blocks by setting the `allowedAddresses`\nproperty to a valid IPv4 or IPv6 address, or CIDR range.\n\n## API Token Users\n\nOnce an API token is created, an **API Token User** is automatically created and assigned to the API token. This non-human user account\nrepresents the API token, and any action that the API takes will be attributed to that user. Because each API Token User is linked to a\nunique API token, these accounts cannot be deleted or disabled, except by deleting the associated API token itself.\n","x-tag-expanded":"false"},{"name":"Async Results","description":"**Async results** can be used to track the status of asynchronous background jobs (such as data ingestion) for which results may not be\nimmediately available. Users can poll these records to view the status of their requests. Once the requests have been completed, users can\ncall the relevant entity’s `Read` endpoint to view the results of the job.\n\n### Permissions\n\nThe **permissions** needed to access this collection are controlled by the target data you are attempting to access.\n","x-tag-expanded":"false"},{"name":"Connection Test Results","description":"**Connection Test Results** represent the outcome of running a Connection's \"Test Connection\" operation. The Connection Test Result\nis stored as a record containing a message indicating whether the connection was successful or describing the failure.\n\n#### Cleanup task\n\nA cleanup task is regularly run that will delete Connection Test Results that are older than 7 days.\n","x-tag-expanded":"false"},{"name":"Task History","description":"**Task Histories** are the history entries related to an individual task within the system.\n","x-tag-expanded":"false"},{"name":"Data Transformation","description":"The **data transformation** endpoint is a collection of data manipulation techniques that can be performed on file manager files. These\ntransformations can be applied to one or more files, and typically generate new files based on specified input configurations.\n","x-tag-expanded":"false"},{"name":"Analysis Source Types","description":"An **Analysis Source Type** describes the features applied when importing an analysis source, such as the effective date\nrange, transaction ID selection, etc., as well as relevant MindBridge column definitions. These features determine which\nsteps occur during the analysis source import process.\n\n### Alternative MindBridge field names for non-MAC account groupings\n\nWhen using a non-MAC based account grouping, some MindBridge fields use a different name (for example, `mac_code`\nbecomes `custom_code`). This is identified by the `mindbridgeFieldNameForNonMacGroupings` field, which describes which\nMindBridge field name to use instead.\n\nAdditionally, when using a non-MAC based account grouping, some fields may become required. This is indicated by\nthe `requiredForNonMacGroupings` field, which is set for all fields that specify\na `mindbridgeFieldNameForNonMacGroupings` value.\n","x-tag-expanded":"false"},{"name":"Data Tables","description":"After running the analysis, the **data table** provides results details about the imported financial data for the\ncurrent period.\n\n### Logical names and types\n\nData tables types can be identified by either their `logicalName` or `type` field, depending on the data table, and can\nbe queried accordingly using the following fields:\n\n| Table | Field | Value |\n|------------------------------------------------------------|---------------|------------------------------------|\n| General Ledger Entries | `logicalName` | `gl_journal_lines` |\n| General Ledger Transactions | `logicalName` | `gl_journal_tx` |\n| Monetary Flows | `type` | `flows_compact` |\n| Accounts Payable Entries | `logicalName` | `ap_detail_entries` |\n| Accounts Receivable Entries | `logicalName` | `ar_detail_entries` |\n| Accounts Payable: End of Period Outstanding Payable | `logicalName` | `ap_detail_union_open_payables` |\n| Accounts Receivable: End of Period Outstanding Receivables | `logicalName` | `ar_detail_union_open_receivables` |\n| Configured Analysis Entries | `logicalName` | `output_entries_virtual` |\n","x-tag-expanded":"false"},{"name":"Connections","description":"**Connections** represent external data source (such as Databricks) configured in MindBridge. Connections allow you to connect to\nexternal databases, test connectivity, discover available tables, and retrieve data for use in MindBridge.\n","x-tag-expanded":"false"},{"name":"Populations","description":"**Populations** allow users to group entries within an analysis to support more efficient sampling. Unique populations can be defined within\nlibraries, engagements, and analyses, and can be used to surface or exclude groups of entries from the analysis results.\n\nSome fields (below) within population entities may only be defined for populations depending on their parent entity.\n\nLibrary populations:\n\n- `libraryId`\n\nEngagement populations:\n\n- `engagementId`\n- `derivedFromLibrary`\n- `disabledForAnalysisIds`\n- `promotedFromAnalysisId`\n\nAnalysis populations:\n\n- `analysisId`\n- `derivedFromEngagement`\n\nEach population inherits permissions from its parent entity type. In order to access library, engagement, and analysis populations, you will\nneed to be able to access libraries, engagements, and analyses respectively. If the API token does not provide sufficient access, those\npopulations will be excluded from `GET` and /`query` results.\n\n### Population conditions\n\nPopulations use the same condition format as saved filters. Please refer to the saved filters documentation for a description on how the\ncondition formats work.\n\nPopulation conditions have additional restrictions in addition to those applied to saved filters:\n\n- The following fields cannot be used as part of a population condition: `populations`, `account_tags_decreasing`,\n `account_tags_increasing`, `status` and `risk_range`.\n- Populations can only be applied to general ledger analysis types.\n\nUnlike filters, populations are validated on creation and when updated. A create or update to a population condition that doesn't align with\nthe analysis' data table definition will fail.\n\nAdditionally, unlike filters, populations can only be applied to general ledger entries, not transactions.\n\nSimilar to filters, populations include the fields `legacyFilterFormat`, `displayCurrencyCode` and `displayLocale`, which function in the\nsame way as they do for saved filters.\n","x-tag-expanded":"false"},{"name":"Webhook event logs","description":"The webhook event logs provide a way to track events as they are sent by the system, and allow the user\nto help track messages, or diagnose issues with webhooks.\n\nSee the webhooks documentation for more information on receiving webhooks, or the webhook section for information\nabout the webhooks themselves.\n","x-tag-expanded":"false"},{"name":"Users","description":"**Users** generally represent you and your team and can be assigned to various roles and tasks within the platform. Users may also represent\nMindBridge Customer Support staff who are active in customer assistance requests, as well as portal users when connecting integrations and\nAPI Token Users.\n\n### User roles\n\nUser roles determine which actions a user can perform within MindBridge.\n\n| Role ID | User Role | Description |\n|-------------------------------------------------|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ROLE_ADMIN | App Admin | App Admins have full access to the MindBridge tenant. They can invite and manage users, and view/edit all organizations and engagements. |\n| ROLE_USER_ADMIN | User Admin | User Admins can invite and manage tenant users, and create new organizations. |\n| ROLE_ORGANIZATION_ADMIN | Organization Creator | Organization Creators have the same privileges as users, but can also create new organizations. |\n| ROLE_USER | User | Users can be invited to existing organizations and engagements, but they cannot create new organizations. |\n| ROLE_CLIENT | Client | Clients must be [invited to connect](https://support.mindbridge.ai/hc/en-us/articles/1500001350402) to MindBridge. Once the client account has been activated via email, access is limited to the page that allows them to set up a data source. |\n| ROLE_MINDBRIDGE_SUPPORT | MindBridge Support | MindBridge Support accounts have limited access to engagements, enabling them to assist with specific support requests. |\n| * ROLE_ADMIN and `serviceAccount` equals `true` | API Token User | API Token Users are non-human user accounts linked to unique API tokens. Any action that an API takes will be attributed to this user account. |\n\n### Enabling and disabling users\n\nThe `enabled` property can be used to enable and disable user accounts within a single tenant. If a user’s account is _disabled_, they will\nno longer have access to the tenant until they are _enabled_.\n\n**Note:** A user who is disabled in one tenant will still be able to access other tenants where they are enabled.\n\n### Account activation emails\n\nWhen a new user is created, they will be sent an **account activation email**. This email contains a link they must use to activate their\naccount. Until the account is activated, the user will not be able to sign in.\n\nActivation links expire after 7 days, but additional account activation emails can be sent using the `Resend Activation Link` endpoint.\n\nWhen a user who is `disabled` becomes `enabled` again, they will be sent an activation email. These users must use the account activation\nlink before they can sign in.\n\n### API token permissions\n\nThe following table details the actions that users of the API may be permitted to take:\n\n| Role | Read | Query | Create | Update user enabled status | Update user role | Can update role to | Delete | Can be sent account activation emails |\n|----------------------|:----:|:-----:|:------:|:--------------------------:|:----------------:|:------------------:|:------:|:-------------------------------------:|\n| App Admin | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ |\n| User Admin | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Organization Manager | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| User | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Client | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ |\n| MindBridge Support | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |\n| API Token | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |\n\nApp Admins cannot be deleted, nor have their roles updated. This restriction prevents an API token from accidentally locking out a\nlegitimate administrator, resulting in the loss of administration to the entire tenant.\n\nMindBridge Support and API Token Users cannot be created, updated, deleted or sent account activation emails to. These accounts are\nautomatically managed by support access requests and API tokens accordingly.\n\nClient users serve a special purpose and cannot be created, nor have their roles updated. These users can only provide access to an\nintegration service.\n","x-tag-expanded":"false"},{"name":"Account Groups","description":"An **account group** is an individual entry within an account grouping. The lowest-level category for each account group\nmust be mapped\nto [MindBridge Account Classification (MAC) codes](https://support.mindbridge.ai/hc/en-us/articles/22819163288343-MindBridge-Account-Classification-code-system-MAC-v-2),\nand optionally, assigned account tags for further classification.\n\nAccount groups can be updated as needed until the account grouping is published. Once published, existing account groups\ncannot be updated, but new account groups can be added to the account grouping using the `append` endpoint.\n","x-tag-expanded":"false"},{"name":"JSON Tables","description":"A JSON Table is a collection of tabular data structured into one or more pages of JSON arrays, imported into the MindBridge platform. Each\narray consists of objects, where for each object, the keys represent column headers and their associated values represent the data for\nthat column. Data must be uploaded sequentially, one page at a time, as concurrent page uploads are not supported.\n\nOnce all data has been appended to the JSON Table, a file manager file can be created using the file manager's\n`Import From JSON Table` endpoint, which merges all the parts into a concatenated CSV file.\n\nThe headers in the resulting file are based on those specified in the JSON Table, and the order of the headers will correspond to the\nsequence in which each unique header appears in the source data.\n\nFor example, given the following two pages of JSON Table data:\n\n```json\n[\n {\n \"Account\": \"First Account\",\n \"Amount\": \"10.11$\",\n \"Date\": \"2020-01-01\"\n },\n {\n \"Account\": \"Second Account\",\n \"Amount\": \"89.99$\",\n \"Date\": \"2020-01-02\"\n }\n]\n```\n\n```json\n[\n {\n \"Account\": \"Third Account\",\n \"Amount\": \"33.31$\",\n \"Date\": \"2020-01-03\"\n },\n {\n \"Account\": \"Fourth Account\",\n \"Amount\": \"10.11$\",\n \"Memo\": \"My Memo\"\n }\n]\n```\n\nThe resulting CSV file would be the following:\n```\n\"Account\",\"Amount\",\"Date\",\"Memo\"\n\"First Account\",\"10.11$\",\"2020-01-01\",\"\"\n\"Second Account\",\"89.99$\",\"2020-01-02\",\"\"\n\"Third Account\",\"33.31$\",\"2020-01-03\",\"\"\n\"Fourth Account\",\"10.11$\",\"\",\"My Memo\"\n```\n\n### JSON Table entities cleanup\nJSON Table entities that are more than **7 days** old will be deleted. To avoid data loss, ensure that all JSON Table entries are imported\nas file manager files once all the data has been imported.\n","x-tag-expanded":"false"},{"name":"Transaction ID Previews","description":"**Transaction ID previews** contain the data behind our transaction ID generation and analysis system. In this object, analytic data about a proposed transaction ID is provided to guide the selection of the most appropriate, granular transaction ID, with as few single-entry transactions as possible. An appropriate transaction ID enables MindBridge’s analytics engine to detect anomalies that are more relevant and insightful.\n","x-tag-expanded":"false"},{"name":"Connection Data Sources","description":"**Connection Data Sources** represent a table from an external connection that has been registered for use in MindBridge. A connection data\nsource stores a chosen table ID and a schema defining which columns to include — the schema does not need to include all columns from the\ntable, allowing you to exclude columns that are not needed. Once created, data can be retrieved from the source for use in MindBridge.\n","x-tag-expanded":"false"},{"name":"Saved Filters","description":"**Saved Filters** are used to filter data tables in order to easily and repeatedly extract insights on large sets of data. The saved filters\nendpoint allows for easy creation and management of saved filters, and validation of the applicability of filters across different data\ntables and even across engagements and organizations.\n\nSaved filters contain **conditions**, which are definitions on how the filter applies constraints on the underlying data table. These\nconditions contain a field, type and various parameters depending on the condition type.\n\nThe field can either specify a column in the data table (with some constraints), or a special case field name, which provides the ability to\nfilter the data table on features of the dataset that are not represented by a specific column.\n\nThe condition type determines how the data will be filtered. Which types can be applied depends on the data table's column type and other\nproperties. For special case filters the type parameters depend on the underlying data table and analysis features. See the *Condition\nTypes* section for more details.\n\nSaved filters can be used to filter general ledger, accounts payable, and accounts receivable analyses. They cannot be used as part of\ncustom analysis types.\n\n### Validation\n\nSaved filters are different from other entities in the MindBridge API in that the filter conditions are not immediately validated upon\ncreation. This is because they may or may not be applicable to different target data tables based on the analysis features and the column\npresent in the data table, and their types. To validate whether a given filter is compatible on a target data table a `/validate` endpoint\nis provided, which will return a list of errors and warnings explaining incompatibilities between the provided filter and the target data\ntable.\n\n### Display fields\n\nSaved Filter conditions include various fields that are used in generating a description of the filter for each condition. This description\nis visible in the web application and presents the filter in plain English.\n\nIn the web application, filters can only be created in either a library or analysis context, and have immediate context with which to base\nthe display fields on. The API doesn't require this context, and can therefore create filters in contexts the web application can't, such as\non an organization or engagement without any analyses. In order to generate a sensible filter description for use in the web application,\nusers of the API can optionally provide these values, and verify if they align with a target data table using the `/validate` endpoint.\n\n### Filter types\n\nFilters can be of one of four types:\n\n`LIBRARY`, `ORGANIZATION`, `ENGAGEMENT` and `PRIVATE`\n\nLibrary, organization, and engagement types determine which parent entity type the filter is stored under, and in some cases restrict which\nfields can be used on those filters.\n\nPrivate filters function like organization filters, but they are only accessible by the user that created them. This also applies to the API\nusers, who can only see private filters created by that same token user. The API cannot be used to access private filter created by other\nusers, including other token users.\n\n### Filter data type\n\nFilter data type is used to determine what kind of data the filter intends to target, and can be set to the values: `TRANSACTION_FILE`,\n`ENTRIES_FILE` or `LIBRARY_ADMIN_TABLE`.\n\nThe `TRANSACTION_FILE` value corresponds to the transactions data table in a general ledger analysis.\n\nThe `ENTRIES_FILE` corresponds to a general ledger, accounts payable and accounts receivable entries tables.\n\n### Disallowed fields\n\nThe following fields cannot be used as conditions:\n\n- `account`, if the analysis is a general ledger analysis\n- `accounts` or `mac_hierarchy`, if the data table column type is `ARRAY_STRINGS`\n- `txid`, `rowid` or `matched_entry_id`, if the data table column type is `INT64`\n- `total_amt`, if the data table column type is `MONEY_100`\n- `invoice_paid_zero_date`, if the data table column type is `DATE_TIME`\n- Any data table column whose field name starts with \"`cp_score_`\"\n- Any data table column whose field name starts with \"`risk`\", and has data table column type `PERCENTAGE_FIXED_POINT`\n- Any column that does not have a data table column type of `KEYWORD_SEARCH` or `LEGACY_ACCOUNT_TAG_EFFECTS`, and without one of\n `equalitySearch`, `rangeSearch` and `containsSearch` being `true`\n\n### Condition types\n\nCondition's types are determined by their `type` field. Some condition types also contain subtypes, which further determine what fields are\nrequired to configure them.\n\nBroadly there are 2 types of conditions: Group type conditions, and value conditions.\n\nGroup conditions don't require a field or other properties, and instead contain a sub-list of conditions that are applied against the data\ntable entries.\n\nValue conditions filter a specific field and cover all other condition types other than `GROUP`. In addition to `field` they have the\nfollowing properties:\n\n- `fieldLabel` - An optional display name for the field which is used in the full condition description.\n- `negated` - When `true` the condition will instead exclude any entry that matches the condition from the result.\n- `fullConditionDescription` - A description of the filter in plain English, using the provided display values such as `fieldLabel` and\n others.\n\n#### `GROUP` type conditions\n\nGroup conditions, also known as rules, don't require a field, and contain both an operator and a list of conditions. The operation can be\neither `AND` or `OR`, and the condition will match records that meet all or any of the conditions, depending on the operator. Group\nconditions can be nested, and the value of the `condition` field on a saved filter must be a group condition, though it can be either type.\n\n```json\n{\n \"type\": \"GROUP\",\n \"operator\": \"AND\",\n \"conditions\": [\n ...\n ]\n}\n```\n\n#### `STRING` type conditions\n\nString type conditions compare a field against a specific string value. This condition can only be applied to the following special case\nfields:\n\n| **Field** | **Name** | **Allowed Values** | **Notes** |\n|------------------|-----------------|---------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|\n| `accountScoping` | Account Scoping | SIGNIFICANT, INSIGNIFICANT, UNSCOPED | Only allowed on general ledger analyses. |\n| `riskGroup` | Risk Group | Not `GENERAL` or `MindBridge Score`

ASSETS, LIABILITIES_EQUITY, PROFIT_LOSS, or any custom account group by `category` name. | Only allowed on general ledger analyses. |\n\n#### `STRING_ARRAY` type conditions\n\nString array conditions compare the field against a set of string values. It can be applied to any data table column with the following\nproperties:\n\n- Data table column type is `STRING` and `caseInsensitivePrefixSearch` is `true`.\n- Data table column type is `KEYWORD_SEARCH`.\n\n#### `CONTROL_POINT` type conditions\n\nControl point conditions match a set of selected control points within their respective high, medium and low risk scores.\n\nThe control point type can only be used with the field `cp_failed` and when the data table column type is `BOOLEAN_FLAGS`.\n\nThe `riskLevel` property can be set to `HIGH_RISK`, `MEDIUM_RISK` or `LOW_RISK`.\n\nThe `controlPoints` contains a list of control point selection models, with the following properties:\n\n- `id` - The unique ID of the control point prefixed with `custom_`, in the case of custom control points, or the symbolic name, in the case\n of MindBridge control points.\n- `name` - The display name of the control point. Optional.\n- `symbolicName` - The symbolic name of the control point. In the case of custom control points it must be the symbolic name of the\n underlying MindBridge control point.\n- `isRulesBased` - Must be `true` if the target control point is rules based. Rules based control points can only have high and low risk\n values, and therefore cannot be selected with a `riskLevel` of `MEDIUM_RISK`.\n\nHere is an example of both a MindBridge and a custom control point:\n\n```json\n{\n \"type\": \"CONTROL_POINT\",\n \"field\": \"cp_failed\",\n \"fieldLabel\": \"Control point\",\n \"negated\": false,\n \"riskLevel\": \"HIGH_RISK\",\n \"controlPoints\": [\n {\n \"id\": \"custom_682fab332f732c4d0b8d1ced\",\n \"name\": \"Expert Rules - Example Custom Control Point\",\n \"symbolicName\": \"journal_entry_flat_expert_flow_v2\",\n \"rulesBased\": false\n },\n {\n \"id\": \"journal_entry_two_digit_benford_v2\",\n \"name\": \"2 Digit Benford\",\n \"symbolicName\": \"journal_entry_two_digit_benford_v2\",\n \"rulesBased\": false\n }\n ]\n}\n```\n\n#### `ACCOUNT_NODE_ARRAY` type conditions\n\nAccount node array type conditions match an entry if it's within an account group or specific account code within varying contexts.\n\nThis condition type can only be used for general ledger analyses.\n\nThe following fields use the account node array type:\n\n| **Field** | **Name** | **Notes** |\n|---------------------------|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------|\n| `account_hierarchy_codes` | Account | Matches if the entry is associated with an account within the selection of accounts. |\n| `increasingCredits` | Increasing Credits | Matches if the entry is associated with an account within the selection of accounts and the credit value within those accounts are increasing. |\n| `increasingDebits` | Increasing Debits | Matches if the entry is associated with an account within the selection of accounts and the debit value within those accounts are increasing. |\n\nBoth `increasingCredits` and `increasingDebits` are special case fields and can be used even if they are not present as data table columns.\n\nWhen using an `ACCOUNT_NODE_ARRAY` condition a list of account selections must be provided with the following properties:\n\n- `name` - The display name of the account. Optional.\n- `code` - The account group or account ID of the account.\n- `useAccountId` - If `true` the condition should match the account id from the account mapping instead of the account group ID for this\n selection.\n\nHere is an example of a condition that matches both an account group and a mapped account:\n\n```json\n{\n \"type\": \"ACCOUNT_NODE_ARRAY\",\n \"field\": \"increasingCredits\",\n \"fieldLabel\": \"Increasing credits\",\n \"negated\": false,\n \"accountSelections\": [\n {\n \"name\": \"Assets\",\n \"code\": \"1000\",\n \"useAccountId\": false\n },\n {\n \"name\": \"Accounts Payable\",\n \"code\": \"21011\",\n \"useAccountId\": true\n }\n ]\n}\n```\n\n#### `TYPEAHEAD_ENTRY` type condition\n\nThe typeahead entry type condition can be used to match one or more string values within a known set of allowed values. They are used both\nto filter columns that have been mapped to certain MindBridge field and additional columns marked as filterable. There are also additional\nspecial case field that can be used for various purposes.\n\n| **Field** | **Name** | **Notes** |\n|-------------------------------|-------------------------|-----------------------------------------------------------------------------------------|\n| `status` | Status | Matches entries which contain corresponding tasks with the selected statuses. |\n| `memo` | Suspicious keyword | Allowed values are from the Suspicious keyword control point. |\n| `entriesFundRestriction` | Fund restriction | Allowed values are `restricted`, `unrestricted` and `none` |\n| `transactionsFundRestriction` | Fund restriction | Allowed values are `restricted`, `unrestricted`, `both` and `none` |\n| `account_tags_increasing` | Increasing account tags | Matches entries whose accounts using the provided account tags have increased in value. |\n| `account_tags_decreasing` | Decreasing account tags | Matches entries whose accounts using the provided account tags have decreased in value. |\n\nIn addition to the above field, any data table column with the type `STRING` or `ARRAY_STRINGS` and an ID set for `typeaheadDataTableId` can\nbe used in a typeahead entry condition. The allowed values for typeahead based fields are any of the values present in the column. Typeahead\ncolumn values are not currently validated, so no warnings will be produced if a value that is not present in the column is used as an entry.\n\nA value selection for a typeahead entry has three properties: `lookupId`, which is the value being selected, `displayName`, which is the\ndisplay name of the underlying value, and `hideLookupId`, which hides the lookup ID when displaying the full display name.\n\nHere is an example of a typeahead entry condition:\n\n```json\n{\n \"type\": \"TYPEAHEAD_ENTRY\",\n \"field\": \"entriesFundRestriction\",\n \"fieldLabel\": \"Fund restriction\",\n \"negated\": false,\n \"values\": [\n {\n \"lookupId\": \"none\",\n \"displayName\": \"No fund information\",\n \"hideLookupId\": true\n },\n {\n \"lookupId\": \"restricted\",\n \"displayName\": \"Restricted funds\",\n \"hideLookupId\": true\n }\n ]\n}\n```\n\n#### `POPULATIONS` type condition\n\nThe populations type condition matches any entries that are within the provided populations.\n\nPopulation type conditions can only be used in general ledger analyses, and can only be used in saved filters at the analysis level.\n\nPopulations type conditions must use the special case field `population`. Population type conditions can only be applied to general ledger\nanalyses.\n\nTo include a population in the condition it simply needs to be added to the `populationIds` field. In addition to IDs, population category\nnames can be present in the population IDs list for display purposes.\n\nHere is an example of a populations filter:\n\n```json\n{\n \"type\": \"POPULATIONS\",\n \"field\": \"population\",\n \"fieldLabel\": \"Population\",\n \"negated\": false,\n \"populationIds\": [\n \"Custom Category\",\n \"67d06587edfa507f5e80c7c2\"\n ]\n}\n```\n\n#### `RISK_SCORE` type condition\n\nA risk score condition matches entries whose risk score falls within the constraints configured in the condition.\n\nThe specific risk score being tested is selected by setting the `riskScoreId` field to the field of the target risk score, as found in the\ndata table column metadata.\n\nRisk scores are used on the special case fields `riskScoresHml` or `riskScoresPercentage`, depending on the library configuration for the\nanalysis. Additionally, the `riskScoreType` must be set to `HML` or `PERCENT` accordingly.\n\nFor HML type risk score conditions a set of the values `HIGH`, `MEDIUM`, `LOW` or `UNSCORED`, which match entries that fall within the\nconfigured risk range for the selected risk score.\n\nHere is an example of a HML risk score filter on a custom risk score:\n\n```json\n{\n \"type\": \"RISK_SCORE\",\n \"field\": \"riskScoresHml\",\n \"fieldLabel\": \"Risk score\",\n \"negated\": false,\n \"riskScoreType\": \"HML\",\n \"riskScoreId\": \"risk_67d2f16d9ffead02b4f54aad\",\n \"riskScoreLabel\": \"My custom risk score\",\n \"values\": [\n \"MEDIUM\",\n \"UNSCORED\"\n ]\n}\n```\n\nFor percentage risk score conditions a `riskScorePercentType` of `MORE_THAN`, `LESS_THAN`, `BETWEEN`, `CUSTOM_RANGE` or `UNSCORED` is set.\nThese determine how the rule will be applied, and which parameters can be set.\n\nFor `UNSCORED` only entries that haven't been scored are matched.\n\nFor `MORE_THAN` and `LESS_THAN`, a `value` parameter must be set with a number from 0 to 10,000, representing a percentage between 0% to\n100%, and matching entries with scores above or below the specified value.\n\nFor `CUSTOM_RANGE` a pair of percentage values `rangeStart` and `rangeEnd` are set. Any entries whose score falls between the values will be\nmatched.\n\n`BETWEEN` is functionally equivalent to custom range, with the restriction that the `rangeStart` and `rangeEnd` must equal the start and end\nvalues of one of the risk score's risk range entries (high, medium or low risk). In the web application this is represented as the user\nselecting an existing risk range, rather than manually entering a pair of percentages as custom range requires.\n\nHere is an example of a percentage risk score filter:\n\n```json\n{\n \"type\": \"RISK_SCORE\",\n \"field\": \"riskScoresPercentage\",\n \"fieldLabel\": \"Risk score\",\n \"negated\": false,\n \"riskScoreType\": \"PERCENT\",\n \"riskScoreId\": \"risk\",\n \"riskScoreLabel\": \"MindBridge score\",\n \"riskScorePercentType\": \"MORE_THAN\",\n \"value\": 0\n}\n```\n\n#### `MONETARY_FLOW` type condition\n\nThe `MONETARY_FLOW` type condition matches entries that are part of a monetary flow corresponding to the filter's configuration.\n\nThis condition type can only be used in general ledger analyses.\n\nOnly the special case field `monetarySpecificFlow` can be used with this condition type.\n\nThe property `monetaryFlowType` must be set to one of the following values, which determine what kind of flow to include entries from:\n`SIMPLE_FLOW`, `COMPLEX_FLOW` or `SPECIFIC_FLOW`.\n\nFor simple and complex flow values, entries that are part of simple account to account flows, or flows that are too complex to assign to an\naccount are included.\n\nFor specific flows a pair of credit and debit account selections, `creditAccount` and `debitAccount` accordingly are set. These use the same\nparameters as the account node array condition. In addition, the code may be set to `complex` to match flows whose credit or debit account\nis\ndetermined to be too complex to match.\n\nAdditionally for specific flows a value for `specificMonetaryFlowType` must be set, which further filters the entries based on the specific\nvalue of the flow. The following values can be used:\n\n- `SPECIFIC_VALUE` - by setting the `value` field to a currency amount only entries whose flow amount matches the value exactly will be\n matched.\n\n- `MORE_THAN` - by setting the `value` field to a currency amount only entries where the flow value exceeds that amount will be matched.\n\n- `BETWEEN` - a pair of `rangeStart` and `rangeEnd` values only entries whose value is between the specified currency amounts.\n\nCurrency amounts are expressed as integers, and do not include decimal places. They follow the same formatting rules as `MONEY_100` fields.\nSee the *Data Formats* section for more information.\n\nHere is an example of a monetary flow condition:\n\n```json\n{\n \"type\": \"MONETARY_FLOW\",\n \"field\": \"monetarySpecificFlow\",\n \"fieldLabel\": \"Monetary flow\",\n \"negated\": false,\n \"monetaryFlowType\": \"SPECIFIC_FLOW\",\n \"creditAccount\": {\n \"name\": \"Flows too complex to determine a match\",\n \"code\": \"complex\",\n \"useAccountId\": false\n },\n \"debitAccount\": {\n \"name\": \"Operational assets\",\n \"code\": \"1100\",\n \"useAccountId\": false\n },\n \"specificMonetaryFlowType\": \"BETWEEN\",\n \"rangeStart\": 0,\n \"rangeEnd\": 1037979412\n}\n```\n\n#### `MONEY` type condition\n\nThe money type condition matches entries whose value for the provided field is within the configured bounds of the condition.\n\nThe money type condition can be applied to any field with a data table column type of `MONEY_100`.\n\nThe following `monetaryValueType` values can be used to configure how the entries are matched:\n\n- `MORE_THAN` - Matches entries whose value is more than the configured `value` field.\n- `LESS_THAN` - Matches entries whose value is less than the configured `value` field.\n- `SPECIFIC_VALUE` - Matches entries whose value is equal to the configured `value` field.\n- `BETWEEN` - Matches entries whose value is between the provided `rangeStart` and `rangeEnd` values.\n\nThe values for `value`, `rangeStart` and `rangeEnd` follow the same formatting rules as the `MONEY_100` data type.\n\nHere is an example of a money type condition:\n\n```json\n{\n \"type\": \"MONEY\",\n \"field\": \"bs_delta\",\n \"fieldLabel\": \"Balance sheet impact\",\n \"negated\": false,\n \"monetaryValueType\": \"MORE_THAN\",\n \"value\": 0\n}\n```\n\n#### `MATERIALITY` type condition\n\nThe materiality type condition matches entries that are above, below or above a percentage of the threshold.\n\nThe materiality type condition can be applied to general ledger analyses with a materiality judgment value set, and can only be applied to\nthe special case `materiality` field.\n\nThe following `materialityOption` values can be used to configure how the entries are matched:\n\n- `ABOVE` - Matches entries whose value is above the materiality threshold.\n- `BELOW` - Matches entries whose value is below the materiality threshold.\n- `PERCENTAGE` - Matches entries whose value is above a percent of the materiality threshold. The percent is a decimal number set in the\n `value` field, and can be greater than 100%.\n\nHere is an example of a materiality type condition, and represents a percentage value of 110.25%:\n\n```json\n{\n \"type\": \"MATERIALITY\",\n \"field\": \"materiality\",\n \"fieldLabel\": \"Materiality\",\n \"negated\": false,\n \"materialityOption\": \"PERCENTAGE\",\n \"value\": 110.25\n}\n```\n\n#### `NUMERICAL` type condition\n\nThe numerical type condition matches entries whose value for the provided field is within the configured bounds of the condition.\n\nThis condition can be applied to any field with a data table column types of `INT32`, `INT64`, `FLOAT32` and `FLOAT64`.\n\nThe following `numericalValueType` values can be used to configure how the entries are matched:\n\n- `MORE_THAN` - Matches entries whose value is more than the configured `value` field.\n- `LESS_THAN` - Matches entries whose value is less than the configured `value` field.\n- `SPECIFIC_VALUE` - Matches entries whose value is equal to the configured `value` field.\n- `BETWEEN` - Matches entries whose value is between the provided `rangeStart` and `rangeEnd` values.\n\nHere is an example of a numerical type condition:\n\n```json\n{\n \"type\": \"NUMERICAL\",\n \"field\": \"entries_count\",\n \"fieldLabel\": \"Entries count\",\n \"negated\": false,\n \"numericalValueType\": \"MORE_THAN\",\n \"value\": 0\n}\n```\n\n#### `DATE` type condition\n\nThe date type condition matches entries whose value for the provided field is within the configured bounds of the condition.\n\nThe numerical type condition can be applied to any field with a data table column types of `DATE` and `DATE_TIME`.\n\nThe following `numericalValueType` values can be used to configure how the entries are matched:\n\n- `AFTER` - Matches entries whose value is more than the configured `value` field.\n- `BEFORE` - Matches entries whose value is less than the configured `value` field.\n- `SPECIFIC_VALUE` - Matches entries whose value is equal to the configured `value` field.\n- `BETWEEN` - Matches entries whose value is between the provided `rangeStart` and `rangeEnd` values.\n\nThe values for `value`, `rangeStart` and `rangeEnd` should be expressed as ISO date strings, without a timestamp or timezone.\n\nHere is an example of a date type condition:\n\n```json\n{\n \"type\": \"DATE\",\n \"field\": \"effective_date\",\n \"fieldLabel\": \"Effective date\",\n \"negated\": false,\n \"dateType\": \"SPECIFIC_VALUE\",\n \"value\": \"2010-01-01\"\n}\n```\n\n### Legacy filters\n\nSaved filters with the `legacyFilterFormat` field set to `true` are using a legacy format which is not supported by the API, and will have\ntheir `condition` property set to `null`.\n","x-tag-expanded":"false"},{"name":"Account Groupings","description":"An **account grouping** is a custom financial hierarchy that MindBridge uses to interpret accounts and the relationships\nbetween them, and defines how accounts are aggregated and presented in analysis results across the MindBridge platform\nand reports. When you create an account grouping, you must map account groups\nto [MindBridge Account Classification (MAC) codes](https://support.mindbridge.ai/hc/en-us/articles/22819163288343-MindBridge-Account-Classification-code-system-MAC-v-2).\nThis mapping enables MindBridge to effectively analyze datasets across any engagements and analyses that use a given\naccount grouping.\n\n## Creating a new account grouping\n\nTo create a new account grouping, import a\ncompleted [MACv2_AccountGroupingTemplate](https://support.mindbridge.ai/hc/en-us/articles/22819163288343)* Excel file or\na _CCH group trial balance_ file as a chunked file. Import the new file using the `/import-from-chunked-file` endpoint.\nThis action will create a new account grouping entry and a complete set of account groups and MAC mappings, as defined\nin the imported file.\n\n***Note:** The exportable template is located at the bottom of the linked article. Once you have the template, follow\nthe steps linked here to [create a new account grouping](https://support.mindbridge.ai/hc/en-us/articles/360056330754).\n\n## Appending to an existing account grouping\n\nTo append to an existing account grouping, export the most current version of your MindBridge account grouping, then add\nnew account groups to the bottom of the account grouping, starting from the first empty row. Next, save the file and\nimport it as a chunked file, then import the new file using the `/append-from-chunked-file` endpoint. This action will\nadd the new account groups and mappings to the end of the existing account grouping.\n\n**Note:** _CCH group trial balance_ files may not be used when appending to an existing account grouping.\n\n## Publishing an account grouping\n\nAccount groupings must be published before they can be added to a library. In order to be published, errors must be\nresolved for all account groups within the account grouping, and the lowest-level account categories for each account\ngroup must be mapped to a MAC code. To publish an account grouping, set the `publishStatus` field to `PUBLISHED`.\n\nUpon publishing, all the account groups within the account grouping are finalized and can no longer be updated, however\nthe account grouping can still be appended to. Appending will change the account grouping’s `publishStatus`\nto `UNPUBLISHED_CHANGES`.\n\nFrom the `UNPUBLISHED_CHANGES`, the account grouping can be re-published after fixing all account group errors, then\nupdating the `publishStatus` field to `PUBLISHED`.\n","x-tag-expanded":"false"},{"name":"File Results","description":"**File results** are the results of asynchronous processes that produce files. They can be exported once the async result reports that the task\nis complete.\n\nFile results are restricted to the API token that started the export process. File results created by another user or API token cannot be accessed.\n","x-tag-expanded":"false"},{"name":"Analysis Types","description":"**Analysis types** describe the features of each analysis, such as specific account mappings or whether the analysis\nsupports fund accounts, as well as the source configurations used for a given analysis type.\n\n[Learn more about the types of analyses available within MindBridge](https://support.mindbridge.ai/hc/en-us/articles/360058198913-Analysis-types-available-in-MindBridge)\n","x-tag-expanded":"false"},{"name":"Admin reports","description":"**Admin reports** are reports that can be run to summarize user and system activity.\n\nCurrently, the following reports can be run:\n- **Activity report** – This report lists activity between the specified dates and filters\n- **Analysis overview report** – This report lists analyses and the associated risk score results.\n- **Row usage report** – This report lists analyses completed within your specified date range along with the number of rows in each primary current period data file.\n","x-tag-expanded":"false"},{"name":"Analysis Results","description":"An **analysis result** is a logical grouping of financial data that has been run through a series of rules-based,\nstatistical, and machine-learning tests.\n\nEach time an analysis is run (or re-run), it will generate a distinct analysis result. Running an analysis multiple\ntimes will result in multiple sets of analysis results.\n\n### Task and data table migration for the periodic time frame\n\nWhen an analysis using the _periodic_ time frame is re-run, any existing tasks or data tables created on the latest\nanalysis result will be migrated to the new analysis result. Upon completion, the `id` field will be updated to a new\nvalue, and the `analysisResultId` field will be updated with the ID of the new analysis result.\n\n**Note**: This does not apply to _full_ or _interim_ time frames, wherein rolling forward, duplicating, or converting interim\nanalyses causes a new analysis being created, with the original analysis results' tasks and data tables remaining in\nplace.\n","x-tag-expanded":"false"},{"name":"File Info","description":"_File Info_ is an entity used to describe metadata for a file within the MindBridge application. Every file has an associated File Info\nrecord. If the system detects tabular data in the file, the File Info is automatically upgraded to a Tabular File Info, which includes\nadditional metadata describing the table and columns.\n\nThe type of file info is determined by the `type` field. If the value is `FILE_INFO`, the record is a file info. If the value is\n`TABULAR_FILE_INFO`, the record is a tabular file info.\n","x-tag-expanded":"false"},{"name":"Engagement Account Groups","description":"An **engagement account group** is an individual entry within an engagement account grouping. \n","x-tag-expanded":"false"},{"name":"Chunked Files","description":"Importing **chunked files** allows you to bypass the 8 GiB import limit by splitting a large file into smaller files (“chunks”). Each chunk\ncan be individually retried in case of a network failure, but the entire import process must be completed within 7 days.\n\n### How it works:\n\n- Create a chunked file.\n- Add chunked file parts.\n- Create a file manager file from a chunked file.\n","x-tag-expanded":"false"},{"name":"Analysis Sources","description":"An **analysis source** represents a table of data (often from a file) that is required to run an analysis. These objects\ncontain ingestion metadata, including data formats, density and frequency analysis, and much more. The analysis sources\nare the core object types used during the data import process and provide the data necessary to complete the analysis.\n\n### Analysis source type\n\nAn **analysis source type** determines which features are available during the analysis source import process, and must\nbe selected when creating an analysis source.\n\nRefer to the `Analysis Type` endpoint to determine which analysis source types can be applied to a given analysis.\n\nRefer to the `Analysis Source Type` endpoint to determine the features and column mappings for a given analysis source\ntype.\n\n#### Additional Analysis Data\n\n**Additional data** is available as an analysis source type for all analysis types. When creating an additional data\nanalysis source, the `additionalDataColumnField` property must be set to the additional data field added during the\nimport of other source types. A list of the analysis' additional data columns is available from its `importantColumns`\nfield.\n\n### Async create and update responses\n\nUnlike other entities, the analysis source entity may perform long-running background jobs as a result of a `Create`\nor `Update` call. As a result, calls to `Create` or `Update` an analysis source will return an **async result** entity.\nUsers should poll this entity and await its completion before re-loading the analysis source and making further changes.\n\n### Analysis Source workflow\n\nUnlike other entities, importing an analysis source relies on a multi-step workflow process. Which steps are included is\ndetermined by which **features** the analysis source type supports. These features include multiple **workflow states**,\nwhich determine the current location of the analysis source within the workflow.\n\nThere are two workflow state types: **step states** and **transition states**.\n\n- Step states allow users to configure properties on an analysis source, or the analysis more broadly. Some step states\n are provided for the MindBridge web app interface and may have little to no meaningful interaction with the API.\n\n- Transition states indicate that the analysis source is performing work asynchronously, and will eventually transition\n to another state.\n\nHere is a list of features and their possible workflow states:\n\n| Feature | State name | State type |\n|--------------------------|----------------------------------|------------|\n| Feature independent | STARTED | Transition |\n| Format detection | DETECTING_FORMAT | Transition |\n| | FORMAT_DETECTED | Step |\n| | FORMAT_DETECTION_COMPLETED | Transition |\n| Data validation | ANALYZING_COLUMNS | Transition |\n| | COLUMNS_ANALYZED | Step |\n| Column mapping | DATA_VALIDATION_CONFIRMED | Step |\n| | COLUMN_MAPPINGS_CONFIRMED | Transition |\n| Effective date metrics | ANALYZING_EFFECTIVE_DATE_METRICS | Transition |\n| | EFFECTIVE_DATE_METRICS_ANALYZED | Step |\n| | ANALYSIS_PERIOD_SELECTED | Transition |\n| Transaction ID selection | CHECKING_INTEGRITY | Transition |\n| | INTEGRITY_CHECKED | Step |\n| Parse | PARSING | Transition |\n| | PARSED | Step |\n| Review Funds | FUNDS_REVIEWED | Step |\n| Confirm Settings | SETTINGS_CONFIRMED | Transition |\n| Feature independent | COMPLETED | Step |\n| | FAILED | Step |\n\n### Transitioning between states\n\nTo transition between workflow states, set the `targetWorkflowState` property to the name of the desired workflow state.\nOnce set, the workflow will attempt to advance to that state, passing through all states between the current and target\nstate without stopping.\n\nIf the target state is a transition state, the workflow will continue past it until it reaches the next step state.\n\nWhen creating a new analysis source, if `targetWorkflowState` is not set, the workflow will advance to the first valid\nstep state, then stop.\n\nThese rules apply to all transitions, with a few exceptions:\n\n- If an [ungrouped format](https://support.mindbridge.ai/hc/en-us/articles/10437018464407) is detected within the\n selected source file, the FORMAT_DETECTED state will be ignored. Setting `targetWorkflowState` to FORMAT_DETECTED on a\n source file containing ungrouped data will result in the workflow continuing to the next step state.\n- If the final workflow state type is a step state, the workflow will advance to COMPLETED instead of stopping. This is\n often the case with the PARSED state, as it is the final feature state for many source types.\n- If an error occurs during a workflow process, the workflow will transition to FAILED. The cause of the failure can\n often be found in the async result or in the analysis source’s `errors` property.\n\n### Feature properties\n\nCertain feature properties may only be read or set on or after specific workflow states. Here is a breakdown of the\nrelationship between workflow states and analysis source properties:\n\n#### Format detection\n\nIf a [grouped data](https://support.mindbridge.ai/hc/en-us/articles/10437018464407) format is detected, the workflow\nwill stop at the FORMAT_DETECTED state. Then, the `detectedFormat` property will return the name of the detected format.\nFrom there, the `applyDegrouper` can be set. If `applyDegrouper` is true then when advancing to the next step, the\nrelevant formatter will be used to convert the file into a readable format. If not, the file will be used as is.\n\n`applyDegrouper` can be set immediately upon creation of the analysis source. If this is done and grouped data is\ndetected within the workflow, instead of stopping on FORMAT_DETECTED it will implicitly apply the formatter and continue\nto the next workflow state.\n\nIf the formatter is used in either scenario, the `degrouperApplied` property will be set to `true`.\n\n#### Data validation\n\nUpon reaching the COLUMNS_ANALYZED state, the `fileInfo` property is populated with information, including metadata for\nthe individual columns (which is available as part of the `columnData` property) and for the file as a whole (available\nunder the `metadata` property).\n\nMetrics contain a `state` property, which may appear as `PASS`, `WARN`, or `FAIL`. These serve as status indicators and\nmay warn of problems with the file’s data.\n\n#### Column mapping\n\nUpon reaching the DATA_VALIDATION_CONFIRMED state, the `proposedVirtualColumns`, `proposedColumnMappings`,\nand `proposedAmbiguousColumnResolutions` properties are applied, and the `virtualColumns`, `columnMappings`,\nand `ambiguousColumnResolutions` properties are updated accordingly. More information on the proposed fields is\navailable in the **Full source import automation** section.\n\nIf no value is present for `proposedColumnMappings`, then a set of recommended column mappings will be applied to the\nfile.\n\nThe API handles column mapping by assigning a column from the file to a MindBridge field with a compatible data type. To\ndo this, an entry in the `columnMappings` array must contain both the `position` of the column from the source file and\nthe target `mindbridgeField` to assign it to.\n\n#### Virtual columns\n\n[Virtual columns](https://support.mindbridge.ai/hc/en-us/articles/10442701235223) can be added, modified, and removed by\nchanging the `virtualColumns` property. Once created, virtual columns have a `position` property that can be used in\ncolumn mapping; the metrics in `fileInfo` will be updated accordingly.\n\n#### Ambiguous column resolution\n\nWhile MindBridge can detect usable date formats, including different formats that appear within a single column, in some\ncases the format of date and currency fields cannot be determined from the dataset provided. For example, the date\nformat `1/2/2022` could either be January 2nd, 2022, or February 1st, 2022, depending on which date format is being\nused. When ambiguous columns are detected, an entry in the `ambiguousColumnResolutions` property will be created with a\nlist of all the possible formats in its `ambiguousFormats` property. To resolve this issue, the correct format from the\nlist of `ambiguousFormats` should be set in the `selectedFormat` property.\n\n#### Additional data\n\nUnmapped columns may be added as additional data columns. To do so, a special mapping must be created with\nthe `mindbridgeField` left blank, and a value set for `additionalColumnName`. Once this source has completed the import\nprocess, a new source with the same name set for `additionalDataColumnField` and the source type ID corresponding to the\nAdditional Data Source Type can be created.\n\n#### Effective date metrics\n\nThis step confirms that the file’s entries fall within the current analysis period. Once this state has been reached,\nthe `analysis-sources/{analysisSourceId}/effective-date-metrics` endpoint can be used to get a set of metrics regarding\nthe number of entries within the source’s analysis period. A `period` value can be used to set the resolution of the\nhistogram to days, weeks, or months.\n\n#### Transaction ID selection\n\nTransitioning into the [transaction ID](https://support.mindbridge.ai/hc/en-us/articles/8740577590295) selection feature\nwill generate a preview of the selected transaction by `proposedTransactionIdSelection` and set\nthe `transactionIdSelection` property to this value. If no value is set, a set of potential transaction ID selections\nwill be generated and what is determined to be the best selection, according to MindBridge's internal tooling, will be\nset to the `transactionIdSelection` property.\n\nDetails about these **transaction ID previews** can be viewed via the transaction ID preview endpoints.\n\nWhen on the INTEGRITY_CHECKED state, changing the `transactionIdSelection` will either select an existing preview with\nthe same properties as the currently selected transaction ID, or, if it doesn’t exist, will generate a new preview for\nthe selection, and select it.\n\n#### Review funds and confirm settings\n\nThese features have no direct interaction with the API and are only relevant with respect to the web application.\n\n### Full source import automation\n\nWhen creating a new analysis source it is possible to perform the entire import process by setting\nthe `targetWorkflowState` property to `COMPLETED`. As a result of performing all workflow steps at once, some features\nrequire input to be provided immediately, specifically the column mapping and transaction ID selection features. To\nprovide these values, separate `proposed` fields can be set in order to provide these values instead of relying on the\ndefault column mapping and transaction ID selection behavior.\n\n#### Column mapping\n\nThe `proposedVirtualColumns`, `proposedColumnMappings`, and `proposedAmbiguousColumnResolutions` properties provide the\nability to pre-define their respective properties ahead of running validation. These proposed versions of the properties\nhave some key differences from their applied counterparts:\n\n- As validation has not been run and the column positions have not been determined, the `position` property for virtual\n columns isn’t available. As an alternative to the `proposedColumnMappings` property, a `virtualColumnIndex` property\n is available and should be used to reference a specific virtual column definition in the `proposedVirtualColumns`\n array.\n- `proposedAmbiguousColumnResolutions` are not able to determine the ambiguous formats ahead of validating the file, so\n the `ambiguousFormats` property is not available. Additionally, the `position` property can only refer to a physical\n column, and not a virtual one.\n\n#### Transaction ID selection\n\nThe `proposedTransactionIdSelection` property can be defined immediately upon creating the analysis source. If it is set\nwhile entering the transaction ID selection feature then a transaction ID preview will only be generated for that\nselection, and `transactionIdSelection` property will be updated accordingly.\n","x-tag-expanded":"false"},{"name":"Data Connection Tables","description":"**Connection Tables** represent individual tables discovered from an external connection. When a Connection's \"Get Tables\" operation\nis performed, the results are stored as Connection Table records. Each record contains the table's identifier, display name, and\nschema (column definitions), and is linked back to both the Connection and the Connection Tables Result that produced it.\n\nIf the \"Get Tables\" operation is run multiple times on the same Connection, tables are added, removed, or updated based on their\n`tableId`, rather than creating duplicate entries.\n","x-tag-expanded":"false"},{"name":"Analysis Type Configuration","description":"An analysis type configuration is the configuration of analysis properties for a given analysis type. Libraries, engagements and analyses\nall have analysis type configurations as child entities for each of their supported analysis types.\n\nWhen an engagement is created, it will copy the analysis type configuration from the related library, and again when an analysis is created\nit will copy the analysis type configuration from its related engagement in turn.\n\nAnalysis type configuration allows configuration of settings related to control points, including grouping and weighting of control points,\nas well as the selection of related risk ranges.\n","x-tag-expanded":"false"},{"name":"Connection Tables Results","description":"**Connection Tables Results** represent the outcome of running a Connection's \"Get Tables\" operation. The Connection Tables Result\nis stored as a record containing the total number of tables found. The individual tables discovered are stored as separate\nConnection Table records linked back to this Connection Tables Result.\n","x-tag-expanded":"false"},{"name":"Reporting Period Configuration","description":"The reporting period configuration allows users to define specific reporting periods for analysis.\n\nThe request requires both monthly and weekly reporting periods to ensure comprehensive coverage of reporting needs. Both lists must refer to the same date ranges.\n\nThe monthly reporting period entries should include the period number, quarter number, the year, start date, and end date for each period.\nSimilarly, the weekly reporting period entries should contain the week number, year, start date, and end date.\n","x-tag-expanded":"false"},{"name":"Organizations","description":"**Organizations** represent each business/client/company/entity that you analyze with MindBridge. Organizations house all of your client’s\nengagements (audit/analysis), account mappings, and any other data imported into MindBridge for that client.\n","x-tag-expanded":"false"},{"name":"Webhooks","description":"The webhooks entity provides a way to configure webhook integrations with other systems. Once created and active webhooks will send event payloads to the configured URL.\n\nSee the webhooks documentation for more information on receiving webhooks.\n","x-tag-expanded":"false"},{"name":"Libraries","description":"**Libraries** allow teams to standardize their engagements firm-wide by setting the parameters for each type of analysis\navailable in MindBridge, including account groupings, ratios, filters, and risk scores.\n\nNew libraries must be created based on an existing library (i.e., a “base library”). When a base library is selected,\nits point-in-time settings and permissions are copied to the new library.\n\nThe following system libraries can be selected as base libraries:\n\n* MindBridge for-profit\n* MindBridge not-for-profit\n* MindBridge not-for-profit with funds\n* MindBridge review\n","x-tag-expanded":"false"},{"name":"Analyses","description":"An **analysis** is a logical grouping of financial data that can be run through a series of rules-based, statistical, and machine-learning\ntests in order to generate analysis results. Once a set of financial data has been configured and imported, an analysis can be run to\nproduce an _Analysis Result_ entity, which contains insights into the provided data.\n\nAnalyses require a number of supporting documents in order to run successfully. After running an analysis, you can view\nthe results and leverage them to support your audit work.\n\n### Analysis Type\n\nWhen creating an analysis, you must identify the **type of analysis** you want to create. To do so, set\nthe `analysisTypeId` field to the corresponding ID for the specific analysis type.\n\nThe analysis type must be supported by the library used by the engagement. The supported analysis types are listed in\nthe library’s `analysisTypeIds` field.\n\nRefer to the Analysis Type endpoint to select an analysis type and review its settings.\n\n### Analysis Periods\n\nAn **analysis period** is the date range for a given period under analysis. MindBridge supports the analysis of one\ncurrent period and up to four prior periods.\n\nTo add analysis periods, add analysis period objects to the appropriate locations in the `analysisPeriods` array.\n\nTo modify analysis periods, update the `analysisPeriods` array.\n\n**Note**: Analysis periods will appear in order, with the most recent appearing in the current period. Periods must not\noverlap or have date gaps between them. The `interimAsAtDate` must not be set for prior periods.\n\nTo resize an analysis period, update the `startDate`, `interimAsAtDate` and/or `endDate` to the desired date. See\n“Interim Time Frames” below for details.\n\nTo remove an analysis period, remove the target object in the `analysisPeriods` array. The current period (index `0`)\nmay not be removed, nor analysis periods that have associated analysis sources.\n\nIf you remove the ID from an analysis period, the analysis period will be removed and a new period with the same values\nwill be added, resulting in a new ID being returned.\n\n[Learn more about analysis periods](https://support.mindbridge.ai/hc/en-us/articles/360056524494-What-is-an-analysis-period)\n\n#### Full Time Frames\n\nThe **full time frame** allows your team to import a complete\ndataset. [Learn more](https://support.mindbridge.ai/hc/en-us/articles/19029762802967)\n\nTo create an analysis with a full time frame, the `interim` and `periodic` fields must be `false` in the body of the\nCreate\nAnalysis request.\n\n#### Interim Time Frames\n\nThe **interim time frame** allows your team to import a portion of a dataset before\nyear-end. [Learn more](https://support.mindbridge.ai/hc/en-us/articles/19030451443223)\n\nTo create an analysis with an `interim` time frame, the interim field must be `true` in the body of the Create Analysis\nrequest. You must also provide an `interimAsAtDate` for the current period, which defines the last day of the interim\nperiod.\n\n**Note**: The `interim` field cannot be combined with the `periodic` field, which must be `false` if `interim` is `true`.\n\n**Note**: The interim time frame must be supported by the analysis type in order to use it.\n\n#### Periodic Time Frames\n\nThe **periodic time frame** allows your team to import data on an ongoing basis, such as monthly or quarterly, over the\ncourse of the analysis period. [Learn more](https://support.mindbridge.ai/hc/en-us/articles/19034004957591)\n\nTo create an analysis with a periodic time frame, the `periodic` field must be `true` in the body of the Create Analysis\nrequest.\n\n**Note**: The `periodic` field cannot be combined with the `interim` field, which must be `false` if `periodic`\nis `true`.\n\n**Note**: The periodic time frame must be supported by the analysis type in order to use it. Additionally, the periodic\ntime frame and the risk monitoring dashboard are disabled by default in the library's analysis configuration, and must\nbe enabled by an App Admin before they can be accessed.\n\n### Currency\n\nThe **currency code** indicates the type of currency used in the analysis.\n\nA valid currency code must be provided in the `currencyCode` field.\n\n**Note**: MindBridge supports the majority of currencies indicated\nin [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). Currency code labels used within MindBridge may not\nmatch ISO labels exactly, but support for those currencies still exists.\n\n**Note**: MindBridge does not support currencies that use more than two decimal places.\n\n### Reporting Periods\n\nMindBridge supports custom reporting periods. If your organization has a custom reporting period configuration, you can specify it when\ncreating an analysis by providing the `reportingPeriodConfigurationId` field with the ID of the desired reporting period configuration.\n\nIf no reporting period configuration ID is provided, it inherits the reporting period set in the engagement. On an update, the existing\nvalue will be used if no value is provided.\n","x-tag-expanded":"false"},{"name":"Engagements","description":"An **engagement** represents a service or activity performed for one of your clients. When you create an engagement within an organization,\nit will always be associated with that organization. Engagements house the analyses you run within MindBridge, like the general ledger\nanalysis.\n\nTypically engagements represent an annual audit, so using MindBridge over the course of several years will result in multiple engagements\nwithin an organization, each corresponding to a fiscal year.\n\nThe reportingPeriodConfigurationId is an optional field. If provided, it will use the custom reporting period configuration specified by\nthe ID. If not provided, it will default to the default reporting period configuration.\n","x-tag-expanded":"false"},{"name":"Risk Ranges","description":"Risk ranges are customized scoring parameters for grouping risk scores into low, medium, and high risk range bounds.\n\nEach risk range bound has a low threshold and a high threshold. These values represent percentage values with two-decimal precision. The thresholds are\n`PERCENTAGE_FIXED_POINT` values, which are percentages with two decimal places, represented as numbers from 0 to 10,000. For more details on this data format,\nrefer to the Data Formats section of the API reference.\n\nYou are not required to utilize all risk range bounds, however you must define at least two ranges. The values must be continuous with no gaps, and no\noverlapping values. If a low risk range has a high threshold of 15% (represented as `1500`), the low threshold of the next risk range must start at 15.01% (\nrepresented as `1501`).\n\nRisk ranges are designed to be used in conjunction with analysis type configurations.\n\nRisk ranges can only be added to libraries, and are copied onto new engagements that select the library when created. Once copied to the engagement, the risk\nrange can no longer be updated.\n","x-tag-expanded":"false"}],"paths":{"/v1/webhooks/{webhookId}":{"get":{"tags":["Webhooks"],"summary":"Read Webhook","description":"Read an existing Webhook, identified by its ID.\n\n### Permissions\n- `api.webhooks.read`","operationId":"readWebhook","parameters":[{"name":"webhookId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhook_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Webhooks"],"summary":"Update Webhook","description":"Update an existing webhook, identified by its ID.\n\n### Permissions\n- `api.webhooks.write`","operationId":"updateWebhook","parameters":[{"name":"webhookId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhook_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhook_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Webhooks"],"summary":"Delete Webhook","description":"Delete an existing **Webhook**.\n\n### Permissions\n- `api.webhooks.delete`","operationId":"deleteWebhook","parameters":[{"name":"webhookId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/users/{userId}":{"get":{"tags":["Users"],"summary":"Read User","description":"Read an existing user, identified by its ID.\n\n### Permissions\n- `api.users.read`","operationId":"readUser","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Users"],"summary":"Update User","description":"Update an existing user, identified by their user ID.\n\nOnly the `enabled` and `role` properties can be updated, with some exceptions.\n\nThe `enabled` property cannot be changed for users with the following roles:\n- `ROLE_ADMIN`\n- `ROLE_MINDBRIDGE_SUPPORT`\n- API Token Users with the `serviceAccount` property set to `true`\n\nThe `role` property cannot be changed for users with the following roles:\n- `ROLE_ADMIN`\n- `ROLE_CLIENT`\n- `ROLE_MINDBRIDGE_SUPPORT`\n- API Token Users with the `serviceAccount` property set to `true`\n\n### Rate limit\n\nThis endpoint is subject to a maximum limit of 100 requests per hour. Once the limit is exceeded, the `X-User-Hour-Limit-Remaining` response\nheader will be set, and it’s value will indicate the number of seconds until the rate limit resets.\n\n**Note:** This rate limit is shared with the `Create User` and `Resend activation email` endpoints. Once the limit is reached, subsequent calls to\nany of these endpoints will fail until the rate limit resets.\n\n### Permissions\n- `api.users.write`","operationId":"updateUser","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Users"],"summary":"Delete User","description":"Delete an existing user, identified by its ID.\n\nUsers with the following roles cannot be deleted:\n\n- `ROLE_ADMIN`\n- `ROLE_MINDBRIDGE_SUPPORT`\n- API Token Users with the `serviceAccount` property set to `true`\n\n### Permissions\n- `api.users.delete`","operationId":"deleteUser","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/tasks/{taskId}":{"get":{"tags":["Tasks"],"summary":"Read Task","description":"Read an existing task, identified by its ID.\n\n### Permissions\n- `api.tasks.read`","operationId":"readTask","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Tasks"],"summary":"Update Task","description":"Update an existing task, identified by its ID.\n\n### Permissions\n- `api.tasks.write`","operationId":"updateTask","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Tasks"],"summary":"Delete Task","description":"Delete an existing task, identified by its ID.\n\n### Permissions\n- `api.tasks.delete`","operationId":"deleteTask","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/saved-filters/{filterId}":{"get":{"tags":["Saved Filters"],"summary":"Read Saved Filter","description":"Read a saved filter, identified by its ID.\n","operationId":"readSavedFilter","parameters":[{"name":"filterId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilter_Read"}}}}}},"put":{"tags":["Saved Filters"],"summary":"Update Saved Filter","description":"Update a saved filter, identified by its ID.\n\n### Permissions\n- `api.filters.write`","operationId":"updateSavedFilter","parameters":[{"name":"filterId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilter_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilter_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Saved Filters"],"summary":"Delete Saved Filter","description":"Delete a saved filter, identified by its ID.\n\n### Permissions\n- `api.filters.delete`","operationId":"deleteSavedFilter","parameters":[{"name":"filterId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/risk-ranges/{riskRangesId}":{"get":{"tags":["Risk Ranges"],"summary":"Read Risk Range","description":"Retrieve an existing set of risk ranges by its ID.\n\n### Permissions\n- `api.risk-ranges.read`","operationId":"readRiskRange","parameters":[{"name":"riskRangesId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRiskRanges_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Risk Ranges"],"summary":"Update Risk Range","description":"Update an existing set of risk ranges by its ID.\n\n### Permissions\n- `api.risk-ranges.write`","operationId":"updateRiskRange","parameters":[{"name":"riskRangesId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRiskRanges_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRiskRanges_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Risk Ranges"],"summary":"Delete Risk Range","description":"Delete an existing set of risk ranges.\n\n### Permissions\n- `api.risk-ranges.delete`","operationId":"deleteRiskRange","parameters":[{"name":"riskRangesId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/populations/{populationTagId}":{"get":{"tags":["Populations"],"summary":"Read Population","description":"Read an existing population, identified by its ID.\n\n### Permissions\n\n- `api.libraries.read`\n- `api.engagements.read`\n- `api.analyses.read`\n","operationId":"readPopulation","parameters":[{"name":"populationTagId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPopulationTag_Read"}}}}}},"put":{"tags":["Populations"],"summary":"Update Population","description":"Update an existing population, identified by its ID.\n\nEngagement populations cannot be updated.\n\n### Permissions\n\n- `api.libraries.write`\n- `api.analyses.write`\n","operationId":"updatePopulation","parameters":[{"name":"populationTagId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPopulationTag_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPopulationTag_Read"}}}}}},"delete":{"tags":["Populations"],"summary":"Delete Population","description":"Delete a population, identified by its ID.\n\nEngagement populations cannot be deleted.\n\n### Permissions\n\n- `api.libraries.delete`\n- `api.analyses.delete`\n","operationId":"deletePopulation","parameters":[{"name":"populationTagId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}}}},"/v1/organizations/{organizationId}":{"get":{"tags":["Organizations"],"summary":"Read Organization","description":"Read an existing organization, identified by its ID.\n\n### Permissions\n- `api.organizations.read`","operationId":"readOrganization","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganization_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Organizations"],"summary":"Update Organization","description":"Update an existing organization, identified by its ID.\n\n### Permissions\n- `api.organizations.write`","operationId":"updateOrganization","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganization_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganization_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Organizations"],"summary":"Delete Organization","description":"Delete an existing organization, identified by its ID.\n\n### Permissions\n- `api.organizations.delete`","operationId":"deleteOrganization","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/libraries/{libraryId}":{"get":{"tags":["Libraries"],"summary":"Read Library","description":"Read an existing library, identified by its ID.\n\n### Permissions\n- `api.libraries.read`","operationId":"readLibrary","parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Libraries"],"summary":"Update Library","description":"Update an existing library, identified by its ID.\n\nRestrictions\n\n- System libraries cannot be updated.\n\n### Permissions\n- `api.libraries.write`","operationId":"updateLibrary","parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Libraries"],"summary":"Delete Library","description":"Delete an existing library, identified by its ID.\n\nRestrictions\n\n* System libraries cannot be deleted.\n* Libraries in use by engagements cannot be deleted.\n* Libraries that are used as the basis of other libraries cannot be deleted.\n\n### Permissions\n- `api.libraries.delete`","operationId":"deleteLibrary","parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/{fileManagerEntityId}":{"get":{"tags":["File Manager"],"summary":"Read File Manager Entity","description":"Read an existing **file manager entity**, identified by its ID.\n\n### Permissions\n- `api.file-manager.read`","operationId":"readFileManagerEntity","parameters":[{"name":"fileManagerEntityId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ApiFileManagerDirectory_Read"},{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}]}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["File Manager"],"summary":"Update File Manager Entity","description":"Update an existing **file manager entity**, identified by its ID.\n\n### Permissions\n- `api.file-manager.write`","operationId":"updateFileManagerEntity","parameters":[{"name":"fileManagerEntityId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ApiFileManagerDirectory_Update"},{"$ref":"#/components/schemas/ApiFileManagerFile_Update"}]}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ApiFileManagerDirectory_Read"},{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}]}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["File Manager"],"summary":"Delete File Manager Entity","description":"Delete an existing **file manager entity**, identified by its ID.\n\n### Permissions\n- `api.file-manager.delete`","operationId":"deleteFileManagerEntity","parameters":[{"name":"fileManagerEntityId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/engagements/{engagementId}":{"get":{"tags":["Engagements"],"summary":"Read Engagement","description":"Read an existing engagement, identified by its ID.\n\n### Permissions\n- `api.engagements.read`","operationId":"readEngagement","parameters":[{"name":"engagementId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagement_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Engagements"],"summary":"Update Engagement","description":"Update an existing engagement, identified by its ID.\n\n### Permissions\n- `api.engagements.write`","operationId":"updateEngagement","parameters":[{"name":"engagementId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagement_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagement_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Engagements"],"summary":"Delete Engagement","description":"Delete an existing engagement, identified by its ID.\n\n### Permissions\n- `api.engagements.delete`","operationId":"deleteEngagement","parameters":[{"name":"engagementId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groups/{engagementAccountGroupId}":{"get":{"tags":["Engagement Account Groups"],"summary":"Read Engagement Account Group","description":"Read an existing engagement account group, identified by its ID.\n\n### Permissions\n- `api.engagement-account-groupings.read`","operationId":"readEngagementAccountGroup","parameters":[{"name":"engagementAccountGroupId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Engagement Account Groups"],"summary":"Update Engagement Account Group","description":"Update an existing engagement account group by its ID.\n\nUpdates to existing engagement account groups must adhere to the following conditions:\n\n- Engagement account groups cannot be hidden or have their code changed if they are in use.\n- Updated codes must be unique within the engagement account grouping.\n- In order to ensure the integrity of the balance sheet and income statement MAC codes in the 1000, 2000, or 3000 range cannot be changed to\n codes in the 4000 or 5000 range, and vice versa.\n- Engagement account groups that are part of a MAC account grouping cannot be updated.\n\n### Permissions\n- `api.engagement-account-groupings.write`","operationId":"updateEngagementAccountGroup","parameters":[{"name":"engagementAccountGroupId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Engagement Account Groups"],"summary":"Delete Engagement Account Group","description":"Delete an existing engagement account group by its ID.\n\nThe following restrictions apply when deleting engagement account groups:\n\n- Engagement account groups that are in use by an account mapping, or have child groups that are in use, cannot be deleted.\n- Engagement account groups derived from a library-level account grouping cannot be deleted.\n- Engagement account groups that are part of a MAC account grouping cannot be deleted.\n\n### Permissions\n- `api.engagement-account-groupings.write`","operationId":"deleteEngagementAccountGroup","parameters":[{"name":"engagementAccountGroupId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}},"security":[{"mindbridge-api":[]}]}},"/v1/databricks-auth":{"put":{"tags":["Databricks Authorization"],"summary":"Update Databricks Authorization","description":"Update an existing Databricks authorization.\n\n### Permissions\n\n- `api.connections.write`\n","operationId":"updateDatabricksAuthorization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Read"}}}}}},"post":{"tags":["Databricks Authorization"],"summary":"Create Databricks Authorization","description":"Create a new Databricks authorization.\n\n### Permissions\n\n- `api.connections.write`\n","operationId":"createDatabricksAuthorization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Read"}}}}}}},"/v1/api-tokens/{apiTokenId}":{"get":{"tags":["API Tokens"],"summary":"Read API Token","description":"Read an existing API token, identified by its ID.\n\n### Permissions\n- `api.api-tokens.read`","operationId":"readApiToken","parameters":[{"name":"apiTokenId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApiToken_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["API Tokens"],"summary":"Update API Token","description":"Update an existing API token, identified by its ID.\n\n### Permissions\n- `api.api-tokens.write`","operationId":"updateApiToken","parameters":[{"name":"apiTokenId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApiToken_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApiToken_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["API Tokens"],"summary":"Delete API Token","description":"Delete an existing API token, identified by its token ID.\n\nThis will de-authorize the token and automatically delete the associated API Token User.\n\n### Permissions\n- `api.api-tokens.delete`","operationId":"deleteApiToken","parameters":[{"name":"apiTokenId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-type-configuration/{analysisTypeConfigurationId}":{"get":{"tags":["Analysis Type Configuration"],"summary":"Read","description":"Retrieve an existing analysis type configuration by its ID.\n\n### Permissions\n- `api.analysis-type-configuration.read`","operationId":"read","parameters":[{"name":"analysisTypeConfigurationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisTypeConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Analysis Type Configuration"],"summary":"Update","description":"Update an existing analysis type configuration by its ID.\n\nThe configurable properties of an analysis type configuration are grouped into Risk Groups. They can be configured as follows:\n\n- Risk groups can be enabled and disabled by setting the `disabled` property. Only engagement-level analysis type configuration can be\n disabled.\n- The risk range for use by the risk group can be set by the `selectedRiskRange`, and must also be included in the list of\n `applicableRiskRanges`.\n- A `filter` field can optionally be set to limit the risk group to only apply to a set of accounts, rather than all accounts.\n- The control point weights can be adjusted by setting the value of the `controlPointWeights` key-value map, where the key is the control\n point's symbolic name. Setting a control point weight to `0` disables the control point within the risk group.\n\nAdditionally, analysis type configurations cannot be updated if:\n\n- The `system` or `template` properties are `true`.\n- The analysis type configuration is at the analysis level, with a defined `analysisId`.\n\n### Permissions\n- `api.analysis-type-configuration.write`","operationId":"update","parameters":[{"name":"analysisTypeConfigurationId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisTypeConfiguration_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisTypeConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-sources/{analysisSourceId}":{"get":{"tags":["Analysis Sources"],"summary":"Read Analysis Source","description":"Read an existing analysis source, identified by its ID.\n\n### Permissions\n- `api.analysis-sources.read`","operationId":"readAnalysisSource","parameters":[{"name":"analysisSourceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisSource_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Analysis Sources"],"summary":"Update Analysis Source","description":"Update an existing analysis source, identified by its ID.\n\n### Permissions\n- `api.analysis-sources.write`","operationId":"updateAnalysisSource","parameters":[{"name":"analysisSourceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisSource_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Analysis Sources"],"summary":"Delete Analysis Source","description":"Delete an existing analysis source, identified by its ID.\n\n### Permissions\n- `api.analysis-sources.delete`","operationId":"deleteAnalysisSource","parameters":[{"name":"analysisSourceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses/{analysisId}":{"get":{"tags":["Analyses"],"summary":"Read Analysis","description":"Read an existing analysis, identified by its ID.\n\n### Permissions\n- `api.analyses.read`","operationId":"readAnalysis","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysis_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Analyses"],"summary":"Update Analysis","description":"Update an existing analysis, identified by its ID.\n\nIf no `reportingPeriodConfigurationId` is provided, the existing value will be kept.\n\n### Permissions\n- `api.analyses.write`","operationId":"updateAnalysis","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysis_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysis_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Analyses"],"summary":"Delete Analysis","description":"Delete an existing analysis, identified by its ID.\n\n### Permissions\n- `api.analyses.delete`","operationId":"deleteAnalysis","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/account-mappings/{accountMappingId}":{"get":{"tags":["Account Mappings"],"summary":"Get Account Mapping","description":"Read an existing account mappings, identified by its ID.\n\n### Permissions\n- `api.analyses.read`","operationId":"getAccountMapping","parameters":[{"name":"accountMappingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountMapping_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Account Mappings"],"summary":"Update Account Mapping","description":"Update an existing account mapping, identified by its ID.\n\n### Permissions\n- `api.analyses.write`","operationId":"updateAccountMapping","parameters":[{"name":"accountMappingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountMapping_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountMapping_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groups/{accountGroupId}":{"get":{"tags":["Account Groups"],"summary":"Read Account Group","description":"Read an existing account group, identified by its ID.\n\n### Permissions\n- `api.account-groupings.read`","operationId":"readAccountGroup","parameters":[{"name":"accountGroupId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Account Groups"],"summary":"Update Account Group","description":"Update an existing account group, identified by its ID.\n\n## Lowest level only properties\n\nThe following properties can only be set on the lowest-level category of each account group:\n\n- `macCode`\n- `accountTags`\n\n### Permissions\n- `api.account-groupings.write`","operationId":"updateAccountGroup","parameters":[{"name":"accountGroupId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGroup_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groupings/{accountGroupingId}":{"get":{"tags":["Account Groupings"],"summary":"Read Account Grouping","description":"Read an existing account grouping, identified by its ID.\n\n### Permissions\n- `api.account-groupings.read`","operationId":"readAccountGrouping","parameters":[{"name":"accountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGrouping_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Account Groupings"],"summary":"Update Account Grouping","description":"Update an existing account grouping, identified by its ID.\n\n**Note:** If LLM AG Mapping is enabled for the tenant, publishing the account grouping will automatically mark all suggested Mac Code mappings as Verified.\n\n### Permissions\n- `api.account-groupings.write`","operationId":"updateAccountGrouping","parameters":[{"name":"accountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGrouping_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGrouping_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Account Groupings"],"summary":"Delete Account Grouping","description":"Delete an existing account grouping, identified by its ID.\n\n### Permissions\n- `api.account-groupings.delete`","operationId":"deleteAccountGrouping","parameters":[{"name":"accountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/webhooks":{"post":{"tags":["Webhooks"],"summary":"Create Webhook","description":"Create a new webhook.\n\n### Permissions\n- `api.webhooks.write`","operationId":"createWebhook","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhook_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhook_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/webhooks/query":{"post":{"tags":["Webhooks"],"summary":"Query Webhooks","description":"Query webhooks, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `name` - `STRING`\n- `url` - `STRING`\n- `events` - `LIST`\n\n### Permissions\n- `api.webhooks.read`","operationId":"queryWebhooks","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiWebhook_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/webhook-event-logs/query":{"post":{"tags":["Webhook event logs"],"summary":"Query Webhook Event Logs","description":"Query webhook event logs, optionally applying a filter.\n\n### Queryable Fields\n\n- `status` - `STRING`\n- `webhookId` - `OBJECT_ID`\n- `attemptStartDate` - `DATE_TIME`\n- `eventType` - `STRING`\n- `responseStatusCode` - `INT32`\n\n### Permissions\n- `api.webhooks.read`","operationId":"queryWebhookEventLogs","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiWebhookEventLog_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/users":{"post":{"tags":["Users"],"summary":"Create User","description":"Create a new user.\n\nWhen creating a user, you must provide the user’s email address and a user role. The email address must not be associated with an existing\nuser.\n\nThe following roles may not be created with the `Create User` endpoint:\n\n- `ROLE_MINDBRIDGE_SUPPORT`\n- `ROLE_CLIENT`\n\nUpon creation, an account activation email will be sent to the provided email address.\n\n### Rate limit\n\nThis endpoint is subject to a maximum limit of 100 requests per hour. Once the limit is exceeded, the `X-User-Hour-Limit-Remaining` response\nheader will be set, and it’s value will indicate the number of seconds until the rate limit is reset.\n\n**Note:** This rate limit is shared with the `Update User` and `Resend activation email` endpoints. Once the limit is reached, subsequent\ncalls to any of these endpoints will fail until the rate limit resets.\n\n### Permissions\n- `api.users.write`","operationId":"createUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/users/{userId}/resend-activation-link":{"post":{"tags":["Users"],"summary":"Resend Activation Link","description":"Send a previously invited user a new activation email.\n\nUsers who have `validated` equal to `true` or `enabled` equal to `false` cannot be sent activation emails.\n\n### Rate limit\n\nThis endpoint is subject to a maximum limit of 100 requests per hour. Once the limit is exceeded, the `X-User-Hour-Limit-Remaining` response\nheader will be set, and it’s value will indicate the number of seconds until the rate limit is reset.\n\n**Note:** This rate limit is shared with the `Create User` and `Update User` endpoints. Once the limit is reached, subsequent calls to\nany of these endpoints will fail until the rate limit resets.\n\n### Permissions\n- `api.users.write`","operationId":"resendActivationLink","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/users/query":{"post":{"tags":["Users"],"summary":"Query User","description":"Query users, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `email` - `STRING`\n- `role` - `STRING`\n- `enabled` - `BOOLEAN`\n\n### Permissions\n- `api.users.read`","operationId":"queryUser","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiUser_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/transaction-id-previews/query":{"post":{"tags":["Transaction ID Previews"],"summary":"Query Transaction Id Preview","description":"Query transaction ID previews, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `analysisSourceId` - `OBJECT_ID`\n\n### Permissions\n- `api.analysis-sources.read`","operationId":"queryTransactionIdPreview","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiTransactionIdPreview_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/tasks":{"post":{"tags":["Tasks"],"summary":"Create Task","description":"Create a new task.\n\nTasks are created on entries or transactions based on their transaction type, and row ID or transaction ID fields.\n\nThe analysis type determines which transaction types are permitted to create new tasks:\n\nFor general ledger (for-profit), general ledger (not-for-profit), and general ledger (not-for-profit with funds) analyses:\n\n- `ENTRY`\n- `TRANSACTION`\n\nFor accounts payable analyses:\n\n- `AP_ENTRY`\n- `AP_OUTSTANDING_ENTRY`\n\nFor accounts receivable analyses:\n\n- `AR_ENTRY`\n- `AR_OUTSTANDING_ENTRY`\n\nThe task type determines which of `rowId` and `transactionId` are required when creating a new task. The following table outlines which\nfields must be set for a given task type:\n\n| Type | `rowId` | `transactionId` |\n|------------------------|:-------:|:---------------:|\n| `ENTRY` | ✅ | ✅ |\n| `TRANSACTION` | ❌ | ✅ |\n| `AP_ENTRY` | ✅ | ❌ |\n| `AR_ENTRY` | ✅ | ❌ |\n| `AP_OUTSTANDING_ENTRY` | ✅ | ❌ |\n| `AR_OUTSTANDING_ENTRY` | ✅ | ❌ |\n\nAll tasks created by this endpoint will have `sampleType` set to `MANUAL`.\n\n### Permissions\n- `api.tasks.write`","operationId":"createTask","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/tasks/{taskId}/add-comment":{"post":{"tags":["Tasks"],"summary":"Add Task Comment","description":"Add a comment to a task.\n\n### Permissions\n- `api.tasks.write`","operationId":"addTaskComment","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTaskComment_Create"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/tasks/query":{"post":{"tags":["Tasks"],"summary":"Query Task","description":"Query tasks, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisResultId` - `OBJECT_ID`\n- `analysisId` - `OBJECT_ID`\n- `analysisTypeId` - `OBJECT_ID`\n- `transaction` - `STRING`\n- `name` - `STRING`\n- `rowId` - `INT64`\n- `transactionId` - `INT64`\n- `status` - `STRING`\n- `assignedId` - `OBJECT_ID`\n- `auditAreas` - `ARRAY_STRINGS`\n- `assertions` - `ARRAY_STRINGS`\n- `type` - `STRING`\n- `sampleType` - `STRING`\n\n### Permissions\n- `api.tasks.read`","operationId":"queryTask","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiTask_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/task-histories/query":{"post":{"tags":["Task History"],"summary":"Query Task History","description":"Query task histories, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `taskId` - `OBJECT_ID`\n\n### Required Query Restrictions\n\nWhen querying for task history, a `taskId` field and either an `$eq` or `$in` term must be\nincluded. Queries without these restrictions will fail.\n\n### Permissions\n- `api.tasks.read`","operationId":"queryTaskHistory","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiTaskHistory_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/saved-filters":{"post":{"tags":["Saved Filters"],"summary":"Create Saved Filter","description":"Create a saved filter.\n\n### Permissions\n- `api.filters.write`","operationId":"createSavedFilter","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilter_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilter_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/saved-filters/validate":{"post":{"tags":["Saved Filters"],"summary":"Validate Saved Filter","description":"Validate a saved filter for correctness against the provided data table ID, returning a list of actionable errors describing\nincompatibilities between the provided filter and table, if any.\n\nAdditionally mismatches between display values in the provided filter and the target data table are returned as actionable errors with\n`severity` set to `WARNING`, which represent display values that are different that those in the target data table.\n\n### Permissions\n- `api.filters.read`","operationId":"validateSavedFilter","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilterValidateRequest_Create"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Problem_Read"}}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/saved-filters/query":{"post":{"tags":["Saved Filters"],"summary":"Query Saved Filters","description":"Query saved filters, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `analysisTypeId` - `OBJECT_ID`\n- `organizationId` - `OBJECT_ID`\n- `libraryId` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n\n### Permissions\n- `api.filters.read`","operationId":"querySavedFilters","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiFilter_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/risk-ranges":{"post":{"tags":["Risk Ranges"],"summary":"Create Risk Range","description":"Create a new set of risk ranges.\n\nRisk ranges can be created at the library level, by setting an associated library ID. Risk ranges can be created at the engagement level by\nsetting an engagement ID. You must set at least one of these IDs to successfully create a risk range.\n\n### Permissions\n- `api.risk-ranges.write`","operationId":"createRiskRange","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRiskRanges_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRiskRanges_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/risk-ranges/query":{"post":{"tags":["Risk Ranges"],"summary":"Query Risk Range","description":"Query risk ranges with an optional filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `system` - `BOOLEAN`\n- `engagementId` - `OBJECT_ID`\n- `analysisTypeId` - `OBJECT_ID`\n- `libraryId` - `OBJECT_ID`\n\n### Permissions\n- `api.risk-ranges.read`","operationId":"queryRiskRange","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiRiskRanges_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/reporting-period-config":{"post":{"tags":["Reporting Period Configuration"],"summary":"Create Reporting Period Configuration","description":"Create a new reporting period configuration.\n\n### Permissions\n- `api.reporting-period-config.write`","operationId":"createReportingPeriodConfiguration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReportingPeriodConfigurationRequest_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReportingPeriodConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/reporting-period-config/query":{"post":{"tags":["Reporting Period Configuration"],"summary":"Query Reporting Period Configuration","description":"Query reporting period configurations, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n\n### Permissions\n- `api.reporting-period-config.read`","operationId":"queryReportingPeriodConfiguration","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiReportingPeriodConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/populations":{"post":{"tags":["Populations"],"summary":"Create Population","description":"Create a new population.\n\nEngagement populations cannot be created directly, they can only be promoted from an analysis population, or inherited from a library\npopulation.\n\n### Permissions\n\n- `api.libraries.write`\n- `api.analyses.write`\n","operationId":"createPopulation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPopulationTag_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPopulationTag_Read"}}}}}}},"/v1/populations/query":{"post":{"tags":["Populations"],"summary":"Query Populations","description":"Query populations, optionally applying a filter.\n\n### Queryable Fields\n\n- `id - OBJECT_ID`\n- `libraryId - OBJECT_ID`\n- `disabledForAnalysisIds - List`\n- `promotedFromAnalysisId - OBJECT_ID`\n- `engagementId - OBJECT_ID`\n- `analysisId - OBJECT_ID`\n- `derivedFromEngagement - BOOLEAN`\n- `basePopulationId - OBJECT_ID`\n- `name - STRING`\n- `category - STRING`\n- `disabled - BOOLEAN`\n\n### Permissions\n\n- `api.libraries.read`\n- `api.engagements.read`\n- `api.analyses.read`\n","operationId":"queryPopulations","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiPopulationTag_Read"}}}}}}},"/v1/organizations":{"post":{"tags":["Organizations"],"summary":"Create Organization","description":"Create a new organization.\n\n### Permissions\n- `api.organizations.write`","operationId":"createOrganization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganization_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganization_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/organizations/query":{"post":{"tags":["Organizations"],"summary":"Query Organization","description":"Query organizations, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `name` - `STRING`\n- `externalClientCode` - `STRING`\n\n### Permissions\n- `api.organizations.read`","operationId":"queryOrganization","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiOrganization_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/libraries":{"post":{"tags":["Libraries"],"summary":"Create Library","description":"Create a new library.\n\nIf the selected account grouping and the account grouping associated with the selected base library are different,\nMindBridge can attempt to convert the settings (e.g., ratios, filters, populations, etc.) from the base library for use\nwith the accounts in the selected account grouping. To do so, set the `convertSettings` property to `true` — any\naccounts that cannot be converted will be listed in the `conversionWarnings` field.\n\n**Note**: If `warningsDismissed` is also set to `true`, these warnings will not be displayed in the UI.\n\nRestrictions\n\n- The industry tags for the new library must be included in the selected account grouping.\n\n### Permissions\n- `api.libraries.write`","operationId":"createLibrary","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/libraries/query":{"post":{"tags":["Libraries"],"summary":"Query Library","description":"Query libraries, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `basedOnLibraryId` - `OBJECT_ID`\n- `originalSystemLibraryId` - `OBJECT_ID`\n- `accountGroupingId` - `OBJECT_ID`\n- `system` - `BOOLEAN`\n- `archived` - `BOOLEAN`\n\n### Permissions\n- `api.libraries.read`","operationId":"queryLibrary","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiLibrary_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/json-tables":{"post":{"tags":["JSON Tables"],"summary":"Create","description":"Create a new JSON table.\n\n### Permissions\n- `api.file-manager.write`","operationId":"create","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiJsonTable_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/json-tables/{jsonTableId}/append":{"post":{"tags":["JSON Tables"],"summary":"Append","description":"Append data to an existing JSON table. This should not be run in parallel with another append call, or when creating a\nfile manager file, as undefined behaviour may occur.\n\n### Permissions\n- `api.file-manager.write`","operationId":"append","parameters":[{"name":"jsonTableId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonTableBody"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiJsonTable_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-results/query":{"post":{"tags":["File Results"],"summary":"Query File Result","description":"Query file results, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `fileName` - `STRING`\n","operationId":"queryFileResult","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiFileExport_Read"}}}}}}},"/v1/file-manager":{"post":{"tags":["File Manager"],"summary":"Create File Manager Directory","description":"Create a new file manager directory.\n\n### Permissions\n- `api.file-manager.write`","operationId":"createFileManagerDirectory","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerDirectory_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerDirectory_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/transform/merge":{"post":{"tags":["Data Transformation"],"summary":"Create Merge File Job","description":"Merge data from the first sheet of multiple file manager files, then generate a new file with all source data on a single sheet.\n\nPreferred field (new): `mappings` — a list of objects, each with a `fileManagerFileId` and a `columns` array that defines how its columns map into the merged output positions.\n\nExample (`mappings`):\n\n```\n{\n \"mappings\": [\n {\"fileManagerFileId\": \"1234567890abcdef12345678\", \"columns\": [0, 1, 2, 3, 4]},\n {\"fileManagerFileId\": \"2345678901bcdefa23456789\", \"columns\": [1, 0, 2, 4, 3]}\n ]\n}\n```\n\nDeprecated (legacy) field: `fileColumnMappings` — a map from `fileManagerFileId` to its columns array. It is still accepted for backward compatibility but will be removed in a future version.\n\nExample (`fileColumnMappings`):\n\n```\n{\n \"fileColumnMappings\": {\n \"1234567890abcdef12345678\": [0, 1, 2, 3, 4],\n \"2345678901bcdefa23456789\": [1, 0, 2, 4, 3]\n }\n}\n```\n\nThe first mapping entry (in either format) is the master/template file and its columns array defines the output column positions. Columns are numbered from left to right, with the leftmost in a file being position 0. Each subsequent entry defines, for each output column, which column index to use from that file, allowing flexible mapping and positioning in the merged result.\n\n### Permissions\n- `api.file-manager.write`","operationId":"createMergeFileJob","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileMergeRequest_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/query":{"post":{"tags":["File Manager"],"summary":"Query File Manager Entity","description":"Query **file manager entities**, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `type` - `STRING`\n- `engagementId` - `OBJECT_ID`\n- `parentFileManagerEntityId` - `OBJECT_ID`\n- `name` - `STRING`\n- `originalName` - `STRING`\n\n### Permissions\n- `api.file-manager.read`","operationId":"queryFileManagerEntity","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiFileManagerEntity_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/import":{"post":{"tags":["File Manager"],"summary":"Create File Manager File From Multipart File","description":"This endpoint allows you to import a file and set the properties of the resulting File Manager File entity at the same time. The body of the\nrequest is an HTTP form with the `Content-Type` header set to `multipart/form-data`, containing 2 parts: `fileManagerFile` for the **entity\nproperties**, and `file` for the **file**.\n\nThe `fileManagerFile` part must have the `Content-Type` header set to `application/json` and is similar to other entity types.\n\nThe `file` part contains the file to be uploaded and its `Content-Type` header must correspond to the file’s data type. For example, for a\n`.csv` file, the `Content-Type` header for the file part should be `text/csv`.\n\nFor reference, these are the content types associated with common file types:\n\n| File extension | Content type value |\n|----------------|---------------------------------------------------------------------|\n| `.csv` | `text/csv` |\n| `.xls` | `application/vnd.ms-excel` |\n| `.xlsx` | `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` |\n| `.zip` | `application/zip` |\n| `.gz` | `application/gzip` |\n\n### Permissions\n- `api.file-manager.write`","operationId":"createFileManagerFileFromMultipartFile","parameters":[{"name":"content-type","in":"header","schema":{"type":"string","enum":["multipart/form-data"]}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"fileManagerFile":{"$ref":"#/components/schemas/ApiFileManagerFile_Read"},"file":{"type":"string","format":"binary"}},"required":["file","fileManagerFile"]},"encoding":{"fileManagerFile":{"contentType":"application/json"}}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/import-from-json-table":{"post":{"tags":["File Manager"],"summary":"Import From Json Table","description":"Create a new file manager file from the imported parts of a JSON table. The resulting file will be a CSV file, and headers will appear in\nthe same order as the original source.\n\n### Permissions\n- `api.file-manager.write`","operationId":"importFromJsonTable","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiFileManagerFileFromJsonTableRequest_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/import-from-data-table":{"post":{"tags":["File Manager"],"summary":"Import From Data Table","description":"Create a new file manager file by exporting data from a data table. The resulting file will be a CSV file placed in the specified\nfile manager directory. Returns an async result that can be polled for the export outcome.\n\nRequires both `API_DATA_TABLES_READ` and `API_FILE_MANAGER_WRITE` permissions.\n\n### Permissions\n- `api.file-manager.write`","operationId":"importFromDataTable","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataTableExportToFileManagerRequest_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/import-from-chunked/{chunkedFileId}":{"post":{"tags":["File Manager"],"summary":"Create File Manager File From Chunked File","description":"This endpoint validates that all chunks of the import have been received, then completes a chunked file import, given by its ID in the URL,\nand creates a **file manager file** entity.\n\n### Permissions\n- `api.file-manager.write`","operationId":"createFileManagerFileFromChunkedFile","parameters":[{"name":"chunkedFileId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerFile_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}}}}},"deprecated":true,"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/create-from-chunked-file":{"post":{"tags":["File Manager"],"summary":"Create File Manager File From Chunked File","description":"This endpoint validates that all chunks of the import have been received, then completes a chunked file import, given by its ID in the\nmessage body, and creates a **file manager file** entity.\n\n### Permissions\n- `api.file-manager.write`","operationId":"createFileManagerFileFromChunkedFile_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiFileManagerFileFromChunkedFileRequest_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-infos/query":{"post":{"tags":["File Info"],"summary":"Query File Info","description":"Query file infos, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `type` - `TEXT`\n\n### Permissions\n- `api.file-infos.read`","operationId":"queryFileInfo","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiFileInfo_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagements":{"post":{"tags":["Engagements"],"summary":"Create Engagement","description":"Create a new engagement.\n\n### Permissions\n- `api.engagements.write`","operationId":"createEngagement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagement_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagement_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagements/query":{"post":{"tags":["Engagements"],"summary":"Query Engagement","description":"Query engagements, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `organizationId` - `OBJECT_ID`\n- `name` - `String`\n- `billingCode` - `String`\n- `libraryId` - `OBJECT_ID`\n- `engagementLeadId` - `OBJECT_ID`\n\n### Permissions\n- `api.engagements.read`","operationId":"queryEngagement","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiEngagement_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groups":{"post":{"tags":["Engagement Account Groups"],"summary":"Create Engagement Account Group","description":"Create a new engagement account group.\n\nNew engagement account groups must adhere to the following conditions:\n\n- The provided code must be unique within the engagement account grouping.\n- An engagement account group can have no more than three parents in its hierarchy. Setting an engagement account group's parent code such\n that it would have more than three parents is not allowed.\n- Lowest level engagement account groups must include a valid MAC code.\n- Engagement account groups cannot be added to a MAC account grouping.\n\n### Permissions\n- `api.engagement-account-groupings.write`","operationId":"createEngagementAccountGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groups/query":{"post":{"tags":["Engagement Account Groups"],"summary":"Query Engagement Account Groups","description":"Query engagement account groups, optionally applying a filter.\n\n### Required Query Restrictions\n\nWhen querying engagement account groups, an `engagementAccountGroupingId` field and either an `$eq` or `$in` term must be\nincluded. Queries without these restrictions will fail.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `engagementAccountGroupingId` - `OBJECT_ID`\n- `hidden` - `BOOLEAN`\n- `code` - `STRING`\n\n### Permissions\n- `api.engagement-account-groupings.read`","operationId":"queryEngagementAccountGroups","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiEngagementAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groupings/{engagementAccountGroupingId}/export":{"post":{"tags":["Engagement Account Groupings"],"summary":"Export Engagement Account Grouping","description":"Export an engagement account grouping and all of its account groups as an Excel file. Exporting returns an async result,\nwhich can then be used to return a file result.\n\n### Permissions\n- `api.engagement-account-groupings.read`","operationId":"exportEngagementAccountGrouping","parameters":[{"name":"engagementAccountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groupings/query":{"post":{"tags":["Engagement Account Groupings"],"summary":"Query Engagement Account Grouping","description":"Query engagement account groupings, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `accountGroupingId` - `OBJECT_ID`\n\n### Permissions\n- `api.engagement-account-groupings.read`","operationId":"queryEngagementAccountGrouping","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiEngagementAccountGrouping_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/databricks-auth/query":{"post":{"tags":["Databricks Authorization"],"summary":"Query Databricks Authorizations","description":"Query Databricks authorizations, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `connectionId` - `OBJECT_ID`\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"queryDatabricksAuthorizations","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiDatabricksAuthorization_Read"}}}}}}},"/v1/data-tables/{dataTableId}/export":{"post":{"tags":["Data Tables"],"summary":"Export Data Table","description":"Export a data table as a CSV. Exporting returns an async result, which can then be used to return a file result.\n\n### CSV Formatting\n\nBy default, the following CSV formatting is used:\n\n- Comma (`,`) is used as the separator\n- Double quotes (`\"`) are used as the quote character\n- Double quotes (`\"`) are used as the quote escape character: (`\"\"`)\n- No quote escape escape value is set, as it is not needed\n- All headers and values are quoted\n\nThe CSV formatting rules can be customized by setting the `csvConfiguration` field. Any values that are not changed will use their\ndefault value.\n\nIt is strongly recommended to not use newline or whitespace characters, or to use the same characters for both the separator and quote\ncharacters, as they may produce files that can't be read correctly.\n\n### Inner lists\n\n`ARRAY_STRINGS` type fields are formatted as a CSV value.\n\nBy default, they have the following formatting:\n\n- Semicolon (`;`) is used as the separator\n- Single quotes (`'`) are used as the quote character\n- Single quotes (`'`) are used as the quote escape character: (`''`)\n- No quote escape escape value is set, as it is not needed\n- All values are quoted\n\nIn addition to the same recommendations as with CSV formatting it is also strongly recommended to not use the same characters for\nformatting inner lists as are used for CSV formatting, as it may produce a file that can't be read correctly.\n\n### Flag type formatting\n\n`BOOLEAN_FLAGS`, `MAP_SCALARS`, and `LEGACY_ACCOUNT_TAG_EFFECTS` type fields are split into multiple columns based on the column's flags.\nThe field names will be formatted in the following way: `{field}_{flag}`.\n\n### Query Restrictions\n\nColumns with type `KEYWORD_SEARCH` or the `filterOnly` property set to `true` can't be included in data table exports. Attempting to select them as part of\n`fields` will cause the export request to fail.\n\n### Sorting Restrictions\n\nWhen a `sort` is provided in the request body, it will only apply to data table exports under 2 million rows. For exports over 2 million\nrows, no sorting will be applied to improve performance.\n\n### Permissions\n- `api.data-tables.read`","operationId":"exportDataTable","parameters":[{"name":"dataTableId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataTableExportRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}},"423":{"description":"Locked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionableErrorResponse"}}}},"410":{"description":"Gone","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionableErrorResponse"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/data-tables/{dataTableId}/data":{"post":{"tags":["Data Tables"],"summary":"Query Data Table Data","description":"This endpoint allows you to load data from the data table. This data is retrieved as pages and can be sorted and filtered by a\nMindBridge QL query.\n\n## 423 Locked – Response Code\n\nMindBridge automatically loads data table results into fast storage for querying. If you receive an **HTTP 423** response code while\nquerying a table, it means MindBridge is retrieving your data. Wait a few seconds before trying again.\n\n## Filter-only fields\n\nFilter-only fields cannot be included in the `fields` or `sort` properties in a data table query, but they can be included in the `query`\nproperty.\n\n## Populations\n\nIf supported by your analysis, data table entries can be filtered by population, and can include an additional column to indicate all\npopulations that the entry appears within.\n\nTo include or exclude entries by population, use the `$population` and `$not_population` operators as part of the `query`.\n\nFor example, if you had a population with ID `\"643eff00ec992f7ec42ed9f7\"`, you could filter for all entries that appear within the\npopulation.\n\n```json\n{\n \"query\": {\n \"$population\": \"643eff00ec992f7ec42ed9f7\"\n },\n \"fields\": [\n \"rowid\",\n \"txid\",\n \"debit\",\n \"credit\"\n ]\n}\n```\n\nTo include a list of populations that each entry is part of, add the `\"populations\"` column to the `fields` parameter.\n\n**Note**: You cannot use the `population` field as part of a query — instead, use the `$population` and `$not_population` operators.\n\nFor example, the following body will include the `populations` column:\n\n```json\n{\n \"query\": {},\n \"fields\": [\n \"rowid\",\n \"txid\",\n \"populations\",\n \"debit\",\n \"credit\"\n ]\n}\n```\n\n### Permissions\n- `api.data-tables.read`","operationId":"queryDataTableData","parameters":[{"name":"dataTableId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataTableQuery_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataTablePage"}}}},"423":{"description":"Locked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionableErrorResponse"}}}},"410":{"description":"Gone","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionableErrorResponse"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/data-tables/query":{"post":{"tags":["Data Tables"],"summary":"Query Data Table","description":"Query data tables, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisId` - `OBJECT_ID`\n- `analysisResultId` - `OBJECT_ID`\n- `logicalName` - `STRING`\n- `type` - `STRING`\n\n### Permissions\n- `api.data-tables.read`","operationId":"queryDataTable","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MindBridgeQueryTerm"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiDataTable_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/connections":{"post":{"tags":["Connections"],"summary":"Create Connection","description":"Create a new connection.\n\n### Permissions\n\n- `api.connections.write`\n","operationId":"createConnection","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnection_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnection_Read"}}}}}}},"/v1/connections/{connectionId}/test":{"post":{"tags":["Connections"],"summary":"Test Connection","description":"Test an existing connection, identified by its ID. Returns an asynchronous result that can be polled for the test outcome.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"testConnection","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}}}},"/v1/connections/{connectionId}/tables":{"post":{"tags":["Connections"],"summary":"Get Tables For Connection","description":"Retrieve the list of available tables from an existing connection, identified by its ID. Returns an async result that can be polled for the table discovery outcome.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"getTablesForConnection","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}}}},"/v1/connections/{connectionId}/get-data":{"post":{"tags":["Connections"],"summary":"Get Data For Connection","description":"Retrieve data from a specific table in an existing connection. Requires a request body specifying the table, engagement, and optional schema hint, filter, and pagination parameters. Returns an async result that can be polled for the data retrieval outcome. On success, the retrieved data is stored as a Data Table entity.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"getDataForConnection","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionDataRequest_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}}}},"/v1/connections/query":{"post":{"tags":["Connections"],"summary":"Query Connection","description":"Query connections, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `type` - `STRING`\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"queryConnection","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiConnection_Read"}}}}}}},"/v1/connection-test-results/query":{"post":{"tags":["Connection Test Results"],"summary":"Query Connection Test Results","description":"Query connection test results, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `connectionId` - `OBJECT_ID`\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"queryConnectionTestResults","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiConnectionTestResult_Read"}}}}}}},"/v1/connection-tables/query":{"post":{"tags":["Data Connection Tables"],"summary":"Query Connection Tables","description":"Query connection tables, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `tablesResultId` - `OBJECT_ID`\n- `connectionId` - `OBJECT_ID`\n- `tableId` - `STRING`\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"queryConnectionTables","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiConnectionTable_Read"}}}}}}},"/v1/connection-tables-results/query":{"post":{"tags":["Connection Tables Results"],"summary":"Query Connection Tables Results","description":"Query connection tables results, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `connectionId` - `OBJECT_ID`\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"queryConnectionTablesResults","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiConnectionTablesResult_Read"}}}}}}},"/v1/connection-data-source":{"post":{"tags":["Connection Data Sources"],"summary":"Create Connection Data Source","description":"Create a new connection data source.\n\n### Permissions\n\n- `api.connection-data-sources.write`\n","operationId":"createConnectionDataSource","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionDataSource_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionDataSource_Read"}}}}}}},"/v1/connection-data-source/{connectionDataSourceId}/get-data":{"post":{"tags":["Connection Data Sources"],"summary":"Get Data For Connection Data Source","description":"Retrieve data from an existing connection data source, identified by its ID. Requires a request body specifying the engagement and optional filter/pagination. Unlike the Connection /get-data endpoint, you do not specify a schema. The schema defined on the connection data source is used automatically.\n\n### Permissions\n\n- `api.connection-data-sources.read`\n","operationId":"getDataForConnectionDataSource","parameters":[{"name":"connectionDataSourceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataSourceDataRequest_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}}}},"/v1/connection-data-source/query":{"post":{"tags":["Connection Data Sources"],"summary":"Query Connection Data Source","description":"Query connection data sources, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `connectionId` - `OBJECT_ID`\n\n### Permissions\n\n- `api.connection-data-sources.read`\n","operationId":"queryConnectionDataSource","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiConnectionDataSource_Read"}}}}}}},"/v1/chunked-files":{"post":{"tags":["Chunked Files"],"summary":"Create Chunked File","description":"This endpoint allows you to begin the process of importing a file in multiple chunks. Calling this endpoint returns a `{chunkedFileId}` to use\nin subsequent steps.\n\n### Permissions\n- `api.file-manager.write`","operationId":"createChunkedFile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiChunkedFile_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiChunkedFile_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/chunked-files/{chunkedFileId}/part":{"post":{"tags":["Chunked Files"],"summary":"Add Chunked File Part","description":"This endpoint is used to append a `chunkedFilePart` to a chunked file.\n\nChunked file parts must provide an `offset` and a `size` along with content. The first chunked file part must have offset `0`. You may add\nthe same chunked file part multiple times to retry a failed import. When retrying, you must use the same `offset` and `size`. You may add\nchunked file parts out of order.\n\n- Maximum chunked file part size: 50 MiB.\n- Maximum number of chunked file parts in one file: 1000.\n- Maximum overall file size: 20 GiB.\n\nThe body of the request is an HTTP form with the `Content-Type` header set to `multipart/form-data`, and contains 2 parts: `chunkedFilePart`\nfor the **chunk properties**, and `fileChunk` for the **data**.\n\nThe `chunkedFilePart` must have the `Content-Type` header set to `application/json` and is similar to other entity types. It specifies the\n`offset` and `size` of the chunk.\n\nThe fileChunk contains the file to be imported. Its `Content-Type` header must correspond to the file’s data type.\n\nFor example, for a `.csv` file, the `Content-Type` header for the `fileChunk` should be `text/csv`.\n\n### Permissions\n- `api.file-manager.write`","operationId":"addChunkedFilePart","parameters":[{"name":"chunkedFileId","in":"path","required":true,"schema":{"type":"string"}},{"name":"content-type","in":"header","schema":{"type":"string","enum":["multipart/form-data"]}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"chunkedFilePart":{"$ref":"#/components/schemas/ApiChunkedFilePart"},"fileChunk":{"type":"string","format":"binary"}},"required":["chunkedFilePart","fileChunk"]},"encoding":{"fileChunk":{"contentType":"application/json"}}}},"required":true},"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/chunked-files/query":{"post":{"tags":["Chunked Files"],"summary":"Query Chunked File","description":"Queries a pending chunked file import, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `name` - `STRING`\n\n### Permissions\n- `api.file-manager.read`","operationId":"queryChunkedFile","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiChunkedFile_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/async-results/query":{"post":{"tags":["Async Results"],"summary":"Query Async Result","description":"Query async results, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `type` - `STRING`\n- `status` - `STRING`\n- `entityId` - `OBJECT_ID`\n- `entityType` - `STRING`\n\n### Permissions\n\nThis endpoint inherits the permissions from the target entity in scope. For example, if the async result represents an **analysis source**,\nthen the requesting token must contain the permission: `api.analysis-sources.read`.\n","operationId":"queryAsyncResult","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAsyncResult_Read"}}}}}}},"/v1/api-tokens":{"post":{"tags":["API Tokens"],"summary":"Create API Token","description":"Create a new API token.\n\nThe creation response will include a `token` field with the newly created token. This token is only returned on creation, and cannot be\nre-generated afterwards.\n\nWhen an API token is created, an API Token User is automatically created and assigned to the API token. This non-human user account\nrepresents the API token, and any action that the API takes will be attributed to that account. The API Token User can be identified through\nthe `userId` property in the API Token entity.\n\n### Permissions\n- `api.api-tokens.write`","operationId":"createApiToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApiToken_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiTokenResponse_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/api-tokens/query":{"post":{"tags":["API Tokens"],"summary":"Query API Token","description":"Query API tokens, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `userId` - `OBJECT_ID`\n- `name` - `STRING`\n\n### Permissions\n- `api.api-tokens.read`","operationId":"queryApiToken","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiApiToken_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-types/query":{"post":{"tags":["Analysis Types"],"summary":"Query Analysis Type","description":"Query analysis types, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n\n### Permissions\n- `api.analysis-types.read`","operationId":"queryAnalysisType","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAnalysisType_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-type-configuration/query":{"post":{"tags":["Analysis Type Configuration"],"summary":"Query","description":"Query analysis type configurations, optionally applying a filter.\n\n### Queryable fields:\n\n- `id` - `OBJECT_ID`\n- `libraryId` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisTypeId` - `OBJECT_ID`\n- `controlPointBundleVersion` - `STRING`\n- `template` - `BOOLEAN`\n\n### Permissions\n- `api.analysis-type-configuration.read`","operationId":"query","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAnalysisTypeConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-sources":{"post":{"tags":["Analysis Sources"],"summary":"Create Analysis Source","description":"Create a new analysis source.\n\n### Permissions\n- `api.analysis-sources.write`","operationId":"createAnalysisSource","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisSource_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-sources/query":{"post":{"tags":["Analysis Sources"],"summary":"Query Analysis Source","description":"Query analysis sources, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisId` - `OBJECT_ID`\n- `analysisPeriodId` - `OBJECT_ID`\n- `analysisSourceTypeId` - `OBJECT_ID`\n- `additionalDataColumnField` - `STRING`\n\n### Permissions\n- `api.analysis-sources.read`","operationId":"queryAnalysisSource","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAnalysisSource_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-source-types/query":{"post":{"tags":["Analysis Source Types"],"summary":"Query Analysis Source Type","description":"Query analysis source types, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n\n### Permissions\n- `api.analysis-source-types.read`","operationId":"queryAnalysisSourceType","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAnalysisSourceType_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-results/query":{"post":{"tags":["Analysis Results"],"summary":"Query Analysis Results","description":"Query analysis results, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisId` - `OBJECT_ID`\n\n### Permissions\n- `api.analyses.read`","operationId":"queryAnalysisResults","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageApiAnalysisResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses":{"post":{"tags":["Analyses"],"summary":"Create Analysis","description":"Create a new analysis.\n\nIf no `reportingPeriodConfigurationId` is provided, it inherits the reporting period set on the engagement.\n\n### Permissions\n- `api.analyses.write`","operationId":"createAnalysis","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysis_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysis_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses/{analysisId}/start":{"post":{"tags":["Analyses"],"summary":"Start Analysis","description":"Run an analysis through MindBridge’s analytics.\n\n**Deprecation**: This endpoint has been renamed to `/run` and will be removed in a future release.\n\n### Permissions\n- `api.analyses.run`","operationId":"startAnalysis","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"deprecated":true,"security":[{"mindbridge-api":[]}]}},"/v1/analyses/{analysisId}/run":{"post":{"tags":["Analyses"],"summary":"Run Analysis","description":"Run an analysis through MindBridge’s analytics.\n\n### Permissions\n- `api.analyses.run`","operationId":"runAnalysis","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses/query":{"post":{"tags":["Analyses"],"summary":"Query Analysis","description":"Query analyses, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisTypeId` - `OBJECT_ID`\n- `name` - `STRING`\n\n### Permissions\n- `api.analyses.read`","operationId":"queryAnalysis","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAnalysis_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses/engagement-roll-forward":{"post":{"tags":["Analyses"],"summary":"Engagement Roll Forward Analysis","description":"Roll a completed analysis forward into an existing engagement. This will create a new analysis within the target engagement using the source analysis' data as\nprior period data for the new analysis.\n\nFor analyses using a non-periodic time frame, this will create a new current analysis period, with the existing data being added as prior period data. This new\ncurrent period can be configured to either be a full period, or an interim period.\n\nAnalyses that use the periodic time frame will be rolled forward into a new periodic time frame, and will not have a new period added.\n\nRolling forward is subject to the following restrictions:\n- The target engagement must not be the same as the analysis' current engagement.\n- Only completed analyses can be rolled forward.\n- Interim analyses cannot be rolled forward. This does not apply to interim analyses that have been converted to full-period analyses.\n- The library of the target engagement must support the analysis type of the analysis.\n\n### Permissions\n- `api.analyses.write`","operationId":"engagementRollForwardAnalysis","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementRollForwardRequest"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/admin-reports/row-usage-report/run":{"post":{"tags":["Admin reports"],"summary":"Run Row Usage Report","description":"Running a **row usage report** returns an async result, which can then be used to return a **file result**.\n\n### Permissions\n- `api.admin-reports.run`","operationId":"runRowUsageReport","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAdminReportRequest_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/admin-reports/analysis-overview-report/run":{"post":{"tags":["Admin reports"],"summary":"Run Analysis Overview Report","description":"Running an **analysis overview report** returns an async result, which can then be used to return a **file result**.\n\n### Permissions\n- `api.admin-reports.run`","operationId":"runAnalysisOverviewReport","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAnalysisOverviewReportRequest_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/admin-reports/activity-report/run":{"post":{"tags":["Admin reports"],"summary":"Run Activity Report","description":"Running an **activity report** returns an async result, which can then be used to return a **file result**.\n\nProvide `start` and `end` date values to limit the results to a specific time period.\n\nSetting values in the `userIds` and `categories` lists will limit the results to the users who performed the actions, and the provided\ncategories, respectively. Leaving these lists empty will return results for all users and categories, respectively.\n\n### Permissions\n- `api.admin-reports.run`","operationId":"runActivityReport","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunActivityReportRequest_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-mappings/verify":{"post":{"tags":["Account Mappings"],"summary":"Verify Account Mappings For Engagement","description":"Mark all account mappings for a given engagement as verified.\n\n### Permissions\n- `api.analyses.write`","operationId":"verifyAccountMappingsForEngagement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiVerifyAccountsRequest"}}},"required":true},"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/account-mappings/query":{"post":{"tags":["Account Mappings"],"summary":"Query Account Mappings","description":"Query account mappings, optionally applying a filter.\n\n## Required Query Restrictions\n\nWhen querying account groups, an `engagementId` field and either an `$eq` or `$in` term must be included. Queries\nwithout these restrictions will fail.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `account` - `STRING`\n\n### Permissions\n- `api.analyses.read`","operationId":"queryAccountMappings","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAccountMapping_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-mappings/export":{"post":{"tags":["Account Mappings"],"summary":"Export Account Mappings For Engagement","description":"### Permissions\n- `api.analyses.read`","operationId":"exportAccountMappingsForEngagement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiExportAccountsRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-mappings/delete-unused":{"post":{"tags":["Account Mappings"],"summary":"Delete Unused Account Mappings For Engagement","description":"Deletes all unused accounts mappings for the provided engagement.\n\n### Permissions\n- `api.analyses.write`","operationId":"deleteUnusedAccountMappingsForEngagement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDeleteUnusedAccountMappingsRequest"}}},"required":true},"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groups/query":{"post":{"tags":["Account Groups"],"summary":"Query Account Group","description":"Query account groups, optionally applying a filter.\n\n## Required Query Restrictions\n\nWhen querying account groups, an `accountGroupingId` field and either an `$eq` or `$in` term must be included. Queries\nwithout these restrictions will fail.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `accountGroupingId` - `OBJECT_ID`\n- `code` - `STRING`\n\n### Permissions\n- `api.account-groupings.read`","operationId":"queryAccountGroup","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groupings/{accountGroupingId}/export":{"post":{"tags":["Account Groupings"],"summary":"Export Account Grouping","description":"Export an account grouping and all it’s account groups as an Excel file. Exporting returns an async result, which can\nthen be used to return a file result.\n\n### Permissions\n- `api.account-groupings.read`","operationId":"exportAccountGrouping","parameters":[{"name":"accountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groupings/{accountGroupingId}/append-from-chunked-file":{"post":{"tags":["Account Groupings"],"summary":"Append From Chunked File","description":"Append a chunked file that contains a MindBridge account grouping file (.xlsx) to an existing account grouping to add\nnew account groups and mappings to the existing account grouping.\n\n**Note:** Appending to _CCH group trial balance_ files is not supported.\n\n### Permissions\n- `api.account-groupings.write`","operationId":"appendFromChunkedFile","parameters":[{"name":"accountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiImportAccountGroupingParams_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGrouping"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groupings/query":{"post":{"tags":["Account Groupings"],"summary":"Query Account Grouping","description":"Query account groupings, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n\n### Permissions\n- `api.account-groupings.read`","operationId":"queryAccountGrouping","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAccountGrouping_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groupings/import-from-chunked-file":{"post":{"tags":["Account Groupings"],"summary":"Import From Chunked File","description":"Import a chunked file that contains a MindBridge account grouping file (.xlsx) or a _CCH group trial balance_ file to\ncreate a new account grouping entry with a complete set of account groups and MAC mappings.\n\nThe type of file being imported is determined by the `type` property.\n\n### Permissions\n- `api.account-groupings.write`","operationId":"importFromChunkedFile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiImportAccountGroupingParams_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGrouping"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/webhook-event-logs/{webhookEventId}":{"get":{"tags":["Webhook event logs"],"summary":"Read Webhook Event Log","description":"Read an existing Webhook event log, identified by its ID.\n\n### Permissions\n- `api.webhooks.read`","operationId":"readWebhookEventLog","parameters":[{"name":"webhookEventId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhookEventLog_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/users/current":{"get":{"tags":["Users"],"summary":"Get Current User","description":"Read the current user tied to the provided API token.\n\nThis endpoint is not restricted by any permissions and can be used to test the API.\n","operationId":"getCurrentUser","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Read"}}}}}}},"/v1/transaction-id-previews/{transactionIdPreviewId}":{"get":{"tags":["Transaction ID Previews"],"summary":"Read Transaction Id Preview","description":"Read an existing transaction ID preview, identified by its ID.\n\n### Permissions\n- `api.analysis-sources.read`","operationId":"readTransactionIdPreview","parameters":[{"name":"transactionIdPreviewId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTransactionIdPreview_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/task-histories/{taskHistoryId}":{"get":{"tags":["Task History"],"summary":"Read Task History","description":"Read an existing task history, identified by its ID.\n\n### Permissions\n- `api.tasks.read`","operationId":"readTaskHistory","parameters":[{"name":"taskHistoryId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTaskHistory_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/reporting-period-config/{reportingPeriodConfigurationId}":{"get":{"tags":["Reporting Period Configuration"],"summary":"Read Reporting Period Configuration","description":"Read an existing reporting period configuration, identified by its ID.\n\n### Permissions\n- `api.reporting-period-config.read`","operationId":"readReportingPeriodConfiguration","parameters":[{"name":"reportingPeriodConfigurationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReportingPeriodConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Reporting Period Configuration"],"summary":"Delete Reporting Period Configuration","description":"Delete an existing reporting period configuration, identified by its ID.\n\n### Permissions\n- `api.reporting-period-config.delete`","operationId":"deleteReportingPeriodConfiguration","parameters":[{"name":"reportingPeriodConfigurationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/json-tables/{jsonTableId}":{"get":{"tags":["JSON Tables"],"summary":"Read Json Table","description":"Read an existing JSON Table, identified by its ID.\n\n### Permissions\n- `api.file-manager.read`","operationId":"readJsonTable","parameters":[{"name":"jsonTableId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiJsonTable_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-results/{fileResultId}":{"get":{"tags":["File Results"],"summary":"Read File Result","description":"Read an existing file result, identified by its ID.\n","operationId":"readFileResult","parameters":[{"name":"fileResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileExport_Read"}}}}}}},"/v1/file-results/{fileResultId}/export":{"get":{"tags":["File Results"],"summary":"Export File Result","description":"Export a file result, identified by its ID.\n","operationId":"exportFileResult","parameters":[{"name":"fileResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/octet-stream":{"schema":{"format":"binary"}}}}}}},"/v1/file-manager/{fileManagerFileId}/export":{"get":{"tags":["File Manager"],"summary":"Export File Manager File","description":"Export an existing **file manager file**, identified by its ID.\n\n### Permissions\n- `api.file-manager.read`","operationId":"exportFileManagerFile","parameters":[{"name":"fileManagerFileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/octet-stream":{"schema":{"format":"binary"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-infos/{fileInfoId}":{"get":{"tags":["File Info"],"summary":"Get File Info","description":"Read an existing file info, identified by its ID.\n\n### Permissions\n- `api.file-infos.read`","operationId":"getFileInfo","parameters":[{"name":"fileInfoId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ApiFileInfo"},{"$ref":"#/components/schemas/ApiTabularFileInfo"}]}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groupings/{engagementAccountGroupingId}":{"get":{"tags":["Engagement Account Groupings"],"summary":"Read Engagement Account Grouping","description":"Read an existing engagement account grouping, identified by its ID.\n\n### Permissions\n- `api.engagement-account-groupings.read`","operationId":"readEngagementAccountGrouping","parameters":[{"name":"engagementAccountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGrouping_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/databricks-auth/{authorizationId}":{"get":{"tags":["Databricks Authorization"],"summary":"Get Databricks Authorization","description":"Read an existing Databricks authorization, identified by its ID.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"getDatabricksAuthorization","parameters":[{"name":"authorizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Read"}}}}}},"delete":{"tags":["Databricks Authorization"],"summary":"Delete Databricks Authorization","description":"Delete an existing Databricks authorization, identified by its ID.\n\n### Permissions\n\n- `api.connections.write`\n","operationId":"deleteDatabricksAuthorization","parameters":[{"name":"authorizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}}}},"/v1/data-tables/{dataTableId}":{"get":{"tags":["Data Tables"],"summary":"Read Data Table","description":"Read an existing data table, identified by its ID.\n\n### Permissions\n- `api.data-tables.read`","operationId":"readDataTable","parameters":[{"name":"dataTableId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataTable_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/connections/{connectionId}":{"get":{"tags":["Connections"],"summary":"Read Connection","description":"Read an existing connection, identified by its ID.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"readConnection","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnection_Read"}}}}}},"delete":{"tags":["Connections"],"summary":"Delete Connection","description":"Delete an existing connection, identified by its ID.\n\n### Permissions\n\n- `api.connections.delete`\n","operationId":"deleteConnection","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}}}},"/v1/connection-test-results/{connectionTestResultId}":{"get":{"tags":["Connection Test Results"],"summary":"Read Connection Test Result","description":"Read an existing connection test result, identified by its ID.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"readConnectionTestResult","parameters":[{"name":"connectionTestResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionTestResult_Read"}}}}}}},"/v1/connection-tables/{connectionTableId}":{"get":{"tags":["Data Connection Tables"],"summary":"Read Connection Tables","description":"Read an existing connection table, identified by its ID.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"readConnectionTables","parameters":[{"name":"connectionTableId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionTable_Read"}}}}}}},"/v1/connection-tables-results/{connectionTablesResultId}":{"get":{"tags":["Connection Tables Results"],"summary":"Read Connection Tables Result","description":"Read an existing connection tables result, identified by its ID.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"readConnectionTablesResult","parameters":[{"name":"connectionTablesResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionTablesResult_Read"}}}}}}},"/v1/connection-data-source/{connectionDataSourceId}":{"get":{"tags":["Connection Data Sources"],"summary":"Read Connection Data Source","description":"Read an existing connection data source, identified by its ID.\n\n### Permissions\n\n- `api.connection-data-sources.read`\n","operationId":"readConnectionDataSource","parameters":[{"name":"connectionDataSourceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionDataSource_Read"}}}}}},"delete":{"tags":["Connection Data Sources"],"summary":"Delete Connection Data Source","description":"Delete an existing connection data source, identified by its ID.\n\n### Permissions\n\n- `api.connection-data-sources.delete`\n","operationId":"deleteConnectionDataSource","parameters":[{"name":"connectionDataSourceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}}}},"/v1/chunked-files/{chunkedFileId}":{"get":{"tags":["Chunked Files"],"summary":"Read Chunked File","description":"Returns the state of a pending chunked file import, identified by its ID.\n\n### Permissions\n- `api.file-manager.read`","operationId":"readChunkedFile","parameters":[{"name":"chunkedFileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiChunkedFile_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Chunked Files"],"summary":"Delete Chunked File","description":"Deletes a pending chunked file import, identified by its ID.\n\n### Permissions\n- `api.file-manager.delete`","operationId":"deleteChunkedFile","parameters":[{"name":"chunkedFileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/async-results/{asyncResultId}":{"get":{"tags":["Async Results"],"summary":"Read Async Result","description":"Read an existing async result, identified by its ID.\n\n### Permissions\n\nThis endpoint inherits the permissions from the target entity in scope. For example, if the async result represents an **analysis source**,\nthen the requesting token must contain the permission: `api.analysis-sources.read`.\n","operationId":"readAsyncResult","parameters":[{"name":"asyncResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}}}},"/v1/api-tokens/current":{"get":{"tags":["API Tokens"],"summary":"Get Current API Token","description":"Read the API token record specified by the API token.\n\nThis endpoint is not restricted by any permissions and can be used to test the API.\n","operationId":"getCurrentApiToken","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApiToken_Read"}}}}}}},"/v1/analysis-types/{analysisTypeId}":{"get":{"tags":["Analysis Types"],"summary":"Read Analysis Type","description":"Read an existing analysis type, identified by its ID.\n\n### Permissions\n- `api.analysis-types.read`","operationId":"readAnalysisType","parameters":[{"name":"analysisTypeId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisType_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-sources/{analysisSourceId}/effective-date-metrics":{"get":{"tags":["Analysis Sources"],"summary":"Read Effective Date Metrics","description":"Query the results of the **Analysis Period** step in the data import process (based on the effective date column), including displaying the\nhistogram by day, week, or month, as well as debit and credit sums for the period and more.\n\n### Permissions\n- `api.analysis-sources.read`","operationId":"readEffectiveDateMetrics","parameters":[{"name":"analysisSourceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"period","in":"query","required":true,"schema":{"type":"string","enum":["DAY","WEEK","MONTH"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEffectiveDateMetrics_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-source-types/{analysisSourceTypeId}":{"get":{"tags":["Analysis Source Types"],"summary":"Read Analysis Source Type","description":"Read an existing analysis source type, identified by its ID.\n\n### Permissions\n- `api.analysis-source-types.read`","operationId":"readAnalysisSourceType","parameters":[{"name":"analysisSourceTypeId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisSourceType_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-results/{analysisResultId}":{"get":{"tags":["Analysis Results"],"summary":"Read Analysis Result","description":"Read an existing analysis result, identified by its ID.\n\n### Permissions\n- `api.analyses.read`","operationId":"readAnalysisResult","parameters":[{"name":"analysisResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses/{analysisId}/status":{"get":{"tags":["Analyses"],"summary":"Read Analysis Status","description":"See a summary of the readiness of an existing analysis, including errors, missing analysis sources and more.\n\n### Permissions\n- `api.analyses.read`","operationId":"readAnalysisStatus","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisStatus_Read"}}}}},"security":[{"mindbridge-api":[]}]}}},"components":{"schemas":{"ObjectId":{"type":"string"},"WebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["export.ready","data.added","ingestion.complete","ingestion.failed","analysis.completed","analysis.failed","unmapped.accounts","engagement.created","engagement.updated","engagement.deleted","analysis.created","analysis.updated","analysis.deleted","analysis.archived","analysis.unarchived","user.invited","user.status","user.role","user.deleted","user.login"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."}}},"AnalysisResultWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["analysis.completed","analysis.failed"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/AnalysisResultWebhookData","description":"The data associated with the webhook event."}}},"AnalysisWebhookData":{"properties":{"engagementId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Engagement associated with the webhook event."},"analysisId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Analysis associated with the webhook event."}}},"AnalysisSourceWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["ingestion.complete","ingestion.failed"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/AnalysisSourceWebhookData","description":"The data associated with the webhook event."}}},"AnalysisSourceWebhookData":{"properties":{"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"analysisSourceId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Analysis Source associated with the event."},"analysisId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Analysis associated with the webhook event."},"engagementId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Engagement associated with the webhook event."}}},"AnalysisResultWebhookData":{"properties":{"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"analysisId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Analysis associated with the webhook event."},"analysisResultId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Analysis Result associated with the webhook event."},"engagementId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Engagement associated with the webhook event."}}},"EngagementSubscriptionWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["unmapped.accounts"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/EngagementSubscriptionWebhookData","description":"The data associated with the webhook event."}}},"EngagementSubscriptionWebhookData":{"properties":{"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"engagementId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Engagement associated with the webhook event."},"targetUserId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user associated with the webhook event."}}},"EngagementWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["engagement.created","engagement.updated","engagement.deleted"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/EngagementWebhookData","description":"The data associated with the webhook event."}}},"EngagementWebhookData":{"properties":{"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"engagementId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Engagement associated with the webhook event."}}},"FileManagerWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["data.added","export.ready"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/FileManagerWebhookData","description":"The data associated with the webhook event."}}},"FileManagerWebhookData":{"properties":{"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"fileManagerFileId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the data associated with the webhook event."},"fileExportId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the file export associated with the webhook event."}}},"UserWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["user.deleted"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/UserWebhookData","description":"The data associated with the webhook event."}}},"UserWebhookData":{"properties":{"targetUserId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the data associated with the webhook event."}}},"UserRoleWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["user.invited","user.role"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/UserRoleWebhookData","description":"The data associated with the webhook event."}}},"UserRoleWebhookData":{"properties":{"role":{"type":"string","description":"The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)","enum":["ROLE_ADMIN","ROLE_ORGANIZATION_ADMIN","ROLE_USER","ROLE_CLIENT","ROLE_MINDBRIDGE_SUPPORT","ROLE_USER_ADMIN"]},"targetUserId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the data associated with the webhook event."}}},"UserLoginWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["user.login"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/UserLoginWebhookData","description":"The data associated with the webhook event."}}},"UserLoginWebhookData":{},"UserStatusWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["user.status"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/UserStatusWebhookData","description":"The data associated with the webhook event."}}},"UserStatusWebhookData":{"properties":{"targetUserId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the data associated with the webhook event."},"status":{"type":"string","description":"Identifies the status change that triggered the webhook event."}}},"ApiWebhook_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the webhook."},"url":{"type":"string","description":"The URL to which the webhook will send notifications."},"technicalContactId":{"type":"string","description":"A reference to an administrative user used to inform system administrators of issues with the webhooks."},"events":{"type":"array","description":"A list of events that will trigger this webhook.","items":{"type":"string","enum":["EXPORT_READY","FILE_MANAGER_FILE_ADDED","INGESTION_COMPLETE","INGESTION_FAILED","INGESTION_ANALYSIS_COMPLETE","INGESTION_ANALYSIS_FAILED","UNMAPPED_ACCOUNTS_DETECTED","ENGAGEMENT_CREATED","ENGAGEMENT_UPDATED","ENGAGEMENT_DELETED","ANALYSIS_CREATED","ANALYSIS_UPDATED","ANALYSIS_DELETED","ANALYSIS_ARCHIVED","ANALYSIS_UNARCHIVED","USER_INVITED","USER_STATUS_UPDATED","USER_ROLE_UPDATED","USER_DELETED","USER_LOGIN"],"title":"Event Type"},"maxItems":2147483647,"minItems":1},"status":{"type":"string","description":"The current status of the webhook.","enum":["ACTIVE","INACTIVE"]}},"required":["events","name","status","technicalContactId","url","version"],"title":"Webhook"},"ApiUserInfo_Read":{"type":"object","properties":{"userId":{"type":"string","description":"Identifies the user."},"userName":{"type":"string","description":"The name of the user."}},"title":"User Info"},"ApiWebhook_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time"},"lastModifiedDate":{"type":"string","format":"date-time"},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"name":{"type":"string","description":"The name of the webhook."},"url":{"type":"string","description":"The URL to which the webhook will send notifications."},"technicalContactId":{"type":"string","description":"A reference to an administrative user used to inform system administrators of issues with the webhooks."},"events":{"type":"array","description":"A list of events that will trigger this webhook.","items":{"type":"string","enum":["EXPORT_READY","FILE_MANAGER_FILE_ADDED","INGESTION_COMPLETE","INGESTION_FAILED","INGESTION_ANALYSIS_COMPLETE","INGESTION_ANALYSIS_FAILED","UNMAPPED_ACCOUNTS_DETECTED","ENGAGEMENT_CREATED","ENGAGEMENT_UPDATED","ENGAGEMENT_DELETED","ANALYSIS_CREATED","ANALYSIS_UPDATED","ANALYSIS_DELETED","ANALYSIS_ARCHIVED","ANALYSIS_UNARCHIVED","USER_INVITED","USER_STATUS_UPDATED","USER_ROLE_UPDATED","USER_DELETED","USER_LOGIN"],"title":"Event Type"},"maxItems":2147483647,"minItems":1},"publicKey":{"type":"string","description":"The public key used to verify the webhook signature."},"status":{"type":"string","description":"The current status of the webhook.","enum":["ACTIVE","INACTIVE"]},"keyGenerationTimestamp":{"type":"string","format":"date-time"}},"required":["events","name","status","technicalContactId","url","version"],"title":"Webhook"},"ApiUser_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"role":{"type":"string","description":"The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)","enum":["ROLE_ADMIN","ROLE_ORGANIZATION_ADMIN","ROLE_USER","ROLE_CLIENT","ROLE_MINDBRIDGE_SUPPORT","ROLE_USER_ADMIN"]},"enabled":{"type":"boolean","description":"Indicates whether or not the user is enabled within this tenant."}},"required":["enabled","role","version"],"title":"User"},"ApiLoginRecord_Read":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"The time when the user logged in or the API token was used."},"ipAddress":{"type":"string","description":"The IP address used when logging in or when making a request with an API token."}},"title":"Login Record"},"ApiUser_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"firstName":{"type":"string","description":"The user's first name."},"lastName":{"type":"string","description":"The user's last name."},"email":{"type":"string","description":"The user's email address."},"role":{"type":"string","description":"The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)","enum":["ROLE_ADMIN","ROLE_ORGANIZATION_ADMIN","ROLE_USER","ROLE_CLIENT","ROLE_MINDBRIDGE_SUPPORT","ROLE_USER_ADMIN"]},"enabled":{"type":"boolean","description":"Indicates whether or not the user is enabled within this tenant."},"validated":{"type":"boolean","description":"Indicates whether or not the user has opened the account activation link after being created."},"serviceAccount":{"type":"boolean","description":"Indicates whether or not this account is used as part of an API token."},"recentLogins":{"type":"array","description":"A list of the latest successful logins or token usage events by IP address.","items":{"$ref":"#/components/schemas/ApiLoginRecord_Read"}}},"required":["email","enabled","role","version"],"title":"User"},"ApiTask_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"status":{"type":"string","description":"The current state of the task.","enum":["OPEN","NORMAL","COMPLETED","DISMISSED","RESOLVED"],"title":"Task Status"},"assignedId":{"type":"string","description":"Identifies the user assigned to this task."},"description":{"type":"string","description":"A description of the task."},"sample":{"type":"string","description":"Which sample this task is a part of."},"auditAreas":{"type":"array","description":"Which audit areas this task is associated with.","items":{"type":"string"}},"assertions":{"type":"array","description":"Which assertions this task is associated with.","items":{"type":"string"}},"taskApprovalStatus":{"type":"string","enum":["PENDING","REJECTED","APPROVED"],"title":"Task Approval Status"},"dueDate":{"type":"string","format":"date"},"approverId":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}}},"required":["status","version"],"title":"Task"},"ApiTaskComment_Read":{"type":"object","properties":{"commentText":{"type":"string","description":"The text of the comment."},"captured":{"type":"string","format":"date-time","description":"The timestamp when this comment was made."},"authorId":{"type":"string","description":"The unique identifier of the user who created this comment."}},"title":"Task Comment"},"ApiTask_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisResultId":{"type":"string"},"analysisId":{"type":"string","description":"Identifies the associated analysis."},"analysisTypeId":{"type":"string","description":"Identifies the associated analysis type."},"transaction":{"type":"string","description":"The name of the associated transaction."},"name":{"type":"string","description":"The task's name. Generated based on on the related entry or transaction."},"rowId":{"type":"integer","format":"int64","description":"Identifies the associated entry."},"transactionId":{"type":"integer","format":"int64","description":"Identifies the associated transaction."},"status":{"type":"string","description":"The current state of the task.","enum":["OPEN","NORMAL","COMPLETED","DISMISSED","RESOLVED"],"title":"Task Status"},"assignedId":{"type":"string","description":"Identifies the user assigned to this task."},"description":{"type":"string","description":"A description of the task."},"comments":{"type":"array","description":"A list of all the comments that have been made on this task.","items":{"$ref":"#/components/schemas/ApiTaskComment_Read"}},"sample":{"type":"string","description":"Which sample this task is a part of."},"auditAreas":{"type":"array","description":"Which audit areas this task is associated with.","items":{"type":"string"}},"assertions":{"type":"array","description":"Which assertions this task is associated with.","items":{"type":"string"}},"type":{"type":"string","description":"The type of entry this task is associated with.","enum":["ENTRY","TRANSACTION","AP_ENTRY","AR_ENTRY","AP_OUTSTANDING_ENTRY","AR_OUTSTANDING_ENTRY","TRA_ENTRY","SUBLEDGER_ENTRY"],"title":"Task Type"},"sampleType":{"type":"string","description":"The sampling method used to create this task.","enum":["RISK_BASED","RANDOM","MANUAL","MONETARY_UNIT_SAMPLING"],"title":"Sample Type"},"entryType":{"type":"string","description":"For AP and AR analyses this is the entry type for the associated entry."},"vendorName":{"type":"string","description":"For AP analyses this is the vendor name for the associated entry."},"customerName":{"type":"string","description":"For AR analyses this is the customer name for the associated entry."},"invoiceRef":{"type":"string","description":"For AP and AR analyses this is the Invoice ref value for the associated entry."},"creditValue":{"type":"integer","format":"int64","deprecated":true,"description":"The credit value of the associated transaction or entry, formatted as MONEY_100."},"debitValue":{"type":"integer","format":"int64","deprecated":true,"description":"The debit value of the associated transaction or entry, formatted as MONEY_100."},"riskScores":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"A map of ensemble names or IDs mapped to their risk score value. The value is a PERCENTAGE_FIXED_POINT type."},"filterStatement":{"type":"string","description":"The filter statement that was applied when creating this task via a bulk task creation."},"taskApprovalStatus":{"type":"string","enum":["PENDING","REJECTED","APPROVED"],"title":"Task Approval Status"},"dueDate":{"type":"string","format":"date"},"approverId":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"amounts":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Money_Read"}}},"required":["analysisResultId","engagementId","status","type","version"],"title":"Task"},"Money_Read":{"type":"object","properties":{"amount":{"type":"integer","format":"int64"},"currency":{"type":"string"}}},"ApiFilterAccountCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"ACCOUNT_NODE_ARRAY","enum":["ACCOUNT_NODE_ARRAY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"accountSelections":{"type":"array","items":{"$ref":"#/components/schemas/ApiFilterAccountSelection"}}}}],"required":["accountSelections","field","negated","type"],"title":"Filter Account Condition"},"ApiFilterAccountSelection":{"type":"object","properties":{"name":{"type":"string","description":"The display name of the account being selected."},"code":{"type":"string","description":"The account grouping code or account ID of the selected account."},"useAccountId":{"type":"boolean","description":"If `true` then the selected account will be identified by the account ID rather than the grouping code."}},"required":["code","useAccountId"],"title":"Filter Account Selection"},"ApiFilterComplexMonetaryFlowCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","default":"COMPLEX_FLOW","enum":["COMPLEX_FLOW"],"title":"Filter Monetary Flow Type"}}}],"required":["field","monetaryFlowType","negated","type"],"title":"Filter Complex Monetary Flow Condition"},"ApiFilterCondition":{"type":"object","discriminator":{"propertyName":"type","mapping":{"GROUP":"#/components/schemas/ApiFilterGroupCondition","STRING":"#/components/schemas/ApiFilterStringCondition","STRING_ARRAY":"#/components/schemas/ApiFilterStringArrayCondition","CONTROL_POINT":"#/components/schemas/ApiFilterControlPointCondition","ACCOUNT_NODE_ARRAY":"#/components/schemas/ApiFilterAccountCondition","TYPEAHEAD_ENTRY":"#/components/schemas/ApiFilterTypeaheadEntryCondition","POPULATIONS":"#/components/schemas/ApiFilterPopulationsCondition","RISK_SCORE":"#/components/schemas/ApiFilterRiskScoreCondition","MONETARY_FLOW":"#/components/schemas/ApiFilterMonetaryFlowCondition","MONEY":"#/components/schemas/ApiFilterMonetaryValueCondition","MATERIALITY":"#/components/schemas/ApiFilterMaterialityCondition","NUMERICAL":"#/components/schemas/ApiFilterNumericalValueCondition","DATE":"#/components/schemas/ApiFilterDateCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterGroupCondition"},{"$ref":"#/components/schemas/ApiFilterStringCondition"},{"$ref":"#/components/schemas/ApiFilterStringArrayCondition"},{"$ref":"#/components/schemas/ApiFilterControlPointCondition"},{"$ref":"#/components/schemas/ApiFilterAccountCondition"},{"$ref":"#/components/schemas/ApiFilterTypeaheadEntryCondition"},{"$ref":"#/components/schemas/ApiFilterPopulationsCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"$ref":"#/components/schemas/ApiFilterDateCondition"}],"properties":{"type":{"type":"string","description":"The type of condition.","enum":["GROUP","STRING","STRING_ARRAY","CONTROL_POINT","ACCOUNT_NODE_ARRAY","TYPEAHEAD_ENTRY","POPULATIONS","RISK_SCORE","MONETARY_FLOW","MONEY","MATERIALITY","NUMERICAL","DATE"],"title":"Filter Condition Type"}},"required":["type"],"title":"Filter Condition"},"ApiFilterCondition_Update":{"type":"object","discriminator":{"propertyName":"type","mapping":{"GROUP":"#/components/schemas/ApiFilterGroupCondition","STRING":"#/components/schemas/ApiFilterStringCondition","STRING_ARRAY":"#/components/schemas/ApiFilterStringArrayCondition","CONTROL_POINT":"#/components/schemas/ApiFilterControlPointCondition","ACCOUNT_NODE_ARRAY":"#/components/schemas/ApiFilterAccountCondition","TYPEAHEAD_ENTRY":"#/components/schemas/ApiFilterTypeaheadEntryCondition","POPULATIONS":"#/components/schemas/ApiFilterPopulationsCondition","RISK_SCORE":"#/components/schemas/ApiFilterRiskScoreCondition","MONETARY_FLOW":"#/components/schemas/ApiFilterMonetaryFlowCondition","MONEY":"#/components/schemas/ApiFilterMonetaryValueCondition","MATERIALITY":"#/components/schemas/ApiFilterMaterialityCondition","NUMERICAL":"#/components/schemas/ApiFilterNumericalValueCondition","DATE":"#/components/schemas/ApiFilterDateCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterGroupCondition"},{"$ref":"#/components/schemas/ApiFilterStringCondition"},{"$ref":"#/components/schemas/ApiFilterStringArrayCondition"},{"$ref":"#/components/schemas/ApiFilterControlPointCondition"},{"$ref":"#/components/schemas/ApiFilterAccountCondition"},{"$ref":"#/components/schemas/ApiFilterTypeaheadEntryCondition"},{"$ref":"#/components/schemas/ApiFilterPopulationsCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"$ref":"#/components/schemas/ApiFilterDateCondition"}],"properties":{"type":{"type":"string","description":"The type of condition.","enum":["GROUP","STRING","STRING_ARRAY","CONTROL_POINT","ACCOUNT_NODE_ARRAY","TYPEAHEAD_ENTRY","POPULATIONS","RISK_SCORE","MONETARY_FLOW","MONEY","MATERIALITY","NUMERICAL","DATE"],"title":"Filter Condition Type"}},"required":["type"],"title":"Filter Condition"},"ApiFilterControlPointCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"CONTROL_POINT","enum":["CONTROL_POINT"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskLevel":{"type":"string","description":"The risk level of the selected control points.","enum":["HIGH_RISK","MEDIUM_RISK","LOW_RISK"],"title":"Filter Control Point Risk Level"},"controlPoints":{"type":"array","description":"A list of control point selections.","items":{"$ref":"#/components/schemas/ApiFilterControlPointSelection"}}}}],"required":["controlPoints","field","negated","riskLevel","type"],"title":"Filter Control Point Condition"},"ApiFilterControlPointSelection":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the selected control point."},"name":{"type":"string","description":"The display name of the control point."},"symbolicName":{"type":"string","description":"The symbolic name of the target control point. For custom control points this is the symbolic name of the control point it is based on."},"rulesBased":{"type":"boolean"}},"required":["id","symbolicName"],"title":"Filter Control Point Selection"},"ApiFilterDateCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"DATE","enum":["DATE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"dateType":{"type":"string","description":"The type of date condition.","enum":["BEFORE","AFTER","SPECIFIC_VALUE","BETWEEN"],"title":"Filter Date Type"}}}],"discriminator":{"propertyName":"dateType","mapping":{"AFTER":"#/components/schemas/ApiFilterDateValueCondition","BEFORE":"#/components/schemas/ApiFilterDateValueCondition","SPECIFIC_VALUE":"#/components/schemas/ApiFilterDateValueCondition","BETWEEN":"#/components/schemas/ApiFilterDateRangeCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterDateValueCondition"},{"$ref":"#/components/schemas/ApiFilterDateRangeCondition"}],"required":["dateType","field","negated","type"],"title":"Filter Date Condition"},"ApiFilterDateRangeCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterDateCondition"},{"type":"object","properties":{"type":{"type":"string","default":"DATE","enum":["DATE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"dateType":{"type":"string","default":"BETWEEN","enum":["BETWEEN"],"title":"Filter Date Type"},"rangeStart":{"type":"string","format":"date","description":"The start of an ISO date range to compare entries to."},"rangeEnd":{"type":"string","format":"date","description":"The end of an ISO date range to compare entries to."}}}],"required":["dateType","field","negated","rangeEnd","rangeStart","type"],"title":"Filter Date Range Condition"},"ApiFilterDateValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterDateCondition"},{"type":"object","properties":{"type":{"type":"string","default":"DATE","enum":["DATE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"dateType":{"type":"string","enum":["AFTER","BEFORE","SPECIFIC_VALUE"],"title":"Filter Date Type"},"value":{"type":"string","format":"date","description":"An ISO date value to compare entries to."}}}],"required":["dateType","field","negated","type","value"],"title":"Filter Date Value Condition"},"ApiFilterGroupCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"GROUP","enum":["GROUP"],"title":"Filter Condition Type"},"operator":{"type":"string","description":"The operator to be applied to conditions within this group.","enum":["AND","OR"],"title":"Filter Group Operator"},"conditions":{"type":"array","description":"The entries within this condition group.","items":{"$ref":"#/components/schemas/ApiFilterCondition"},"minItems":1}}}],"required":["conditions","operator","type"],"title":"Filter Group Condition"},"ApiFilterGroupCondition_Update":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"GROUP","enum":["GROUP"],"title":"Filter Condition Type"},"operator":{"type":"string","description":"The operator to be applied to conditions within this group.","enum":["AND","OR"],"title":"Filter Group Operator"},"conditions":{"type":"array","description":"The entries within this condition group.","items":{"$ref":"#/components/schemas/ApiFilterCondition"},"minItems":1}}}],"required":["conditions","operator","type"],"title":"Filter Group Condition"},"ApiFilterMaterialityCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MATERIALITY","enum":["MATERIALITY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"materialityOption":{"type":"string","description":"The type of materiality comparison.","enum":["ABOVE","BELOW","PERCENTAGE"],"title":"Filter Materiality Value Options"}}}],"discriminator":{"propertyName":"materialityOption","mapping":{"ABOVE":"#/components/schemas/ApiFilterMaterialityOptionCondition","BELOW":"#/components/schemas/ApiFilterMaterialityOptionCondition","PERCENTAGE":"#/components/schemas/ApiFilterMaterialityValueCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterMaterialityOptionCondition"},{"$ref":"#/components/schemas/ApiFilterMaterialityValueCondition"}],"required":["field","materialityOption","negated","type"],"title":"Filter Materiality Condition"},"ApiFilterMaterialityOptionCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MATERIALITY","enum":["MATERIALITY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"materialityOption":{"type":"string","enum":["ABOVE","BELOW"],"title":"Filter Materiality Value Options"}}}],"required":["field","materialityOption","negated","type"],"title":"Filter Materiality Option Condition"},"ApiFilterMaterialityValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MATERIALITY","enum":["MATERIALITY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"materialityOption":{"type":"string","default":"PERCENTAGE","enum":["PERCENTAGE"],"title":"Filter Materiality Value Options"},"value":{"type":"number","format":"double","description":"The percentage value, as a decimal number, with 100.00 being 100%."}}}],"required":["field","materialityOption","negated","type","value"],"title":"Filter Materiality Value Condition"},"ApiFilterMonetaryFlowCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","description":"The type of monetary flow this filter will match.","enum":["SIMPLE_FLOW","COMPLEX_FLOW","SPECIFIC_FLOW"],"title":"Filter Monetary Flow Type"}}}],"discriminator":{"propertyName":"monetaryFlowType","mapping":{"SIMPLE_FLOW":"#/components/schemas/ApiFilterSimpleMonetaryFlowCondition","COMPLEX_FLOW":"#/components/schemas/ApiFilterComplexMonetaryFlowCondition","SPECIFIC_FLOW":"#/components/schemas/ApiFilterSpecificMonetaryFlowCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterSimpleMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterComplexMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterSpecificMonetaryFlowCondition"}],"required":["field","monetaryFlowType","negated","type"],"title":"Filter Monetary Flow Condition"},"ApiFilterMonetaryValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONEY","enum":["MONEY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryValueType":{"type":"string","description":"The type of monetary value condition.","enum":["MORE_THAN","LESS_THAN","SPECIFIC_VALUE","BETWEEN"],"title":"Filter Monetary Type"}}}],"discriminator":{"propertyName":"monetaryValueType","mapping":{"MORE_THAN":"#/components/schemas/ApiFilterMonetaryValueValueCondition","SPECIFIC_VALUE":"#/components/schemas/ApiFilterMonetaryValueValueCondition","LESS_THAN":"#/components/schemas/ApiFilterMonetaryValueValueCondition","BETWEEN":"#/components/schemas/ApiFilterMonetaryValueRangeCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryValueValueCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryValueRangeCondition"}],"required":["field","monetaryValueType","negated","type"],"title":"Filter Monetary Condition"},"ApiFilterMonetaryValueRangeCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONEY","enum":["MONEY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryValueType":{"type":"string","default":"BETWEEN","enum":["BETWEEN"],"title":"Filter Monetary Type"},"rangeStart":{"type":"integer","format":"int64","description":"The start of the range, as a MONEY_100 formatted number to compare with entries."},"rangeEnd":{"type":"integer","format":"int64","description":"The end of the range, as a MONEY_100 formatted number to compare with entries."}}}],"required":["field","monetaryValueType","negated","rangeEnd","rangeStart","type"],"title":"Filter Monetary Range Condition"},"ApiFilterMonetaryValueValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONEY","enum":["MONEY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryValueType":{"type":"string","enum":["MORE_THAN","SPECIFIC_VALUE","LESS_THAN"],"title":"Filter Monetary Type"},"value":{"type":"integer","format":"int64","description":"The MONEY_100 formatted number to compare with entries."}}}],"required":["field","monetaryValueType","negated","type","value"],"title":"Filter Monetary Value Condition"},"ApiFilterNumericalValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"NUMERICAL","enum":["NUMERICAL"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"numericalValueType":{"type":"string","description":"The type of numerical value condition.","enum":["MORE_THAN","LESS_THAN","SPECIFIC_VALUE","BETWEEN"],"title":"Filter Numerical Value Type"}}}],"discriminator":{"propertyName":"numericalValueType","mapping":{"MORE_THAN":"#/components/schemas/ApiFilterNumericalValueValueCondition","SPECIFIC_VALUE":"#/components/schemas/ApiFilterNumericalValueValueCondition","LESS_THAN":"#/components/schemas/ApiFilterNumericalValueValueCondition","BETWEEN":"#/components/schemas/ApiFilterNumericalValueRangeCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterNumericalValueValueCondition"},{"$ref":"#/components/schemas/ApiFilterNumericalValueRangeCondition"}],"required":["field","negated","numericalValueType","type"],"title":"Filter Numerical Condition"},"ApiFilterNumericalValueRangeCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"type":"object","properties":{"type":{"type":"string","default":"NUMERICAL","enum":["NUMERICAL"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"numericalValueType":{"type":"string","default":"BETWEEN","enum":["BETWEEN"],"title":"Filter Numerical Value Type"},"rangeStart":{"type":"integer","format":"int64","description":"The start value of a range to compare entries to."},"rangeEnd":{"type":"integer","format":"int64","description":"The end value of a range to compare entries to."}}}],"required":["field","negated","numericalValueType","rangeEnd","rangeStart","type"],"title":"Filter Numerical Range Condition"},"ApiFilterNumericalValueValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"type":"object","properties":{"type":{"type":"string","default":"NUMERICAL","enum":["NUMERICAL"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"numericalValueType":{"type":"string","enum":["MORE_THAN","SPECIFIC_VALUE","LESS_THAN"],"title":"Filter Numerical Value Type"},"value":{"type":"integer","format":"int64","description":"A value to compare entries to."}}}],"required":["field","negated","numericalValueType","type","value"],"title":"Filter Numerical Value Condition"},"ApiFilterPopulationsCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"POPULATIONS","enum":["POPULATIONS"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"populationIds":{"type":"array","description":"A list of population IDs and category names to be used in the filter.","items":{"type":"string"}}}}],"required":["field","negated","populationIds","type"],"title":"Filter Populations Condition"},"ApiFilterRiskScoreCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","description":"Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.","enum":["PERCENT","HML"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string","description":"The risk score column being filtered."},"riskScoreLabel":{"type":"string","description":"The display name of the risk score being filtered."}}}],"discriminator":{"propertyName":"riskScoreType","mapping":{"PERCENT":"#/components/schemas/ApiFilterRiskScorePercentCondition","HML":"#/components/schemas/ApiFilterRiskScoreHMLCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterRiskScoreHMLCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScorePercentCondition"}],"required":["field","negated","riskScoreId","riskScoreType","type"],"title":"Filter Risk Score Condition"},"ApiFilterRiskScoreHMLCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","default":"HML","enum":["HML"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string"},"riskScoreLabel":{"type":"string"},"values":{"type":"array","description":"A list of HML options to include in the filter.","items":{"type":"string","enum":["HIGH","MEDIUM","LOW","UNSCORED"],"title":"Filter Risk Score HML Option"}}}}],"required":["field","negated","riskScoreId","riskScoreType","type","values"],"title":"Filter Risk Score HML Condition"},"ApiFilterRiskScorePercentCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","default":"PERCENT","enum":["PERCENT"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string"},"riskScoreLabel":{"type":"string"},"riskScorePercentType":{"type":"string","description":"Determines the type of risk score percent condition to filter.","enum":["MORE_THAN","LESS_THAN","BETWEEN","CUSTOM_RANGE","UNSCORED"],"title":"Filter Risk Score Percent Type"}}}],"discriminator":{"propertyName":"riskScorePercentType","mapping":{"MORE_THAN":"#/components/schemas/ApiFilterRiskScorePercentValueCondition","LESS_THAN":"#/components/schemas/ApiFilterRiskScorePercentValueCondition","BETWEEN":"#/components/schemas/ApiFilterRiskScorePercentRangeCondition","CUSTOM_RANGE":"#/components/schemas/ApiFilterRiskScorePercentRangeCondition","UNSCORED":"#/components/schemas/ApiFilterRiskScorePercentUnscoredCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterRiskScorePercentValueCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScorePercentRangeCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScorePercentUnscoredCondition"}],"required":["field","negated","riskScoreId","riskScorePercentType","riskScoreType","type"],"title":"Filter Risk Score Percent Condition"},"ApiFilterRiskScorePercentRangeCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterRiskScorePercentCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","default":"PERCENT","enum":["PERCENT"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string"},"riskScoreLabel":{"type":"string"},"riskScorePercentType":{"type":"string","enum":["BETWEEN","CUSTOM_RANGE"],"title":"Filter Risk Score Percent Type"},"rangeStart":{"type":"integer","format":"int64","description":"The start of the number range between 0 and 10,000."},"rangeEnd":{"type":"integer","format":"int64","description":"The end of the number range between 0 and 10,000."}}}],"required":["field","negated","rangeEnd","rangeStart","riskScoreId","riskScorePercentType","riskScoreType","type"],"title":"Filter Risk Score Percent Range Condition"},"ApiFilterRiskScorePercentUnscoredCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterRiskScorePercentCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","default":"PERCENT","enum":["PERCENT"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string"},"riskScoreLabel":{"type":"string"},"riskScorePercentType":{"type":"string","default":"UNSCORED","enum":["UNSCORED"],"title":"Filter Risk Score Percent Type"}}}],"required":["field","negated","riskScoreId","riskScorePercentType","riskScoreType","type"],"title":"Filter Risk Score Percent Unscored Condition"},"ApiFilterRiskScorePercentValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterRiskScorePercentCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","default":"PERCENT","enum":["PERCENT"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string"},"riskScoreLabel":{"type":"string"},"riskScorePercentType":{"type":"string","enum":["MORE_THAN","LESS_THAN"],"title":"Filter Risk Score Percent Type"},"value":{"type":"integer","format":"int64","description":"A number between 0 and 10,000 used as part of a more than, or less than filter."}}}],"required":["field","negated","riskScoreId","riskScorePercentType","riskScoreType","type","value"],"title":"Filter Risk Score Percent Value Condition"},"ApiFilterSimpleMonetaryFlowCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","default":"SIMPLE_FLOW","enum":["SIMPLE_FLOW"],"title":"Filter Monetary Flow Type"}}}],"required":["field","monetaryFlowType","negated","type"],"title":"Filter Simple Monetary Flow Condition"},"ApiFilterSpecificMonetaryFlowCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","default":"SPECIFIC_FLOW","enum":["SPECIFIC_FLOW"],"title":"Filter Monetary Flow Type"},"creditAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection","description":"The selected credit account in the monetary flow."},"debitAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection","description":"The selected debit account in the monetary flow."},"specificMonetaryFlowType":{"type":"string","description":"The type of specific monetary flow.","enum":["SPECIFIC_VALUE","MORE_THAN","BETWEEN"],"title":"Filter Specific Monetary Flow Type"}}}],"discriminator":{"propertyName":"specificMonetaryFlowType","mapping":{"SPECIFIC_VALUE":"#/components/schemas/ApiFilterSpecificMonetaryFlowValueCondition","MORE_THAN":"#/components/schemas/ApiFilterSpecificMonetaryFlowValueCondition","BETWEEN":"#/components/schemas/ApiFilterSpecificMonetaryFlowRangeCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterSpecificMonetaryFlowValueCondition"},{"$ref":"#/components/schemas/ApiFilterSpecificMonetaryFlowRangeCondition"}],"required":["creditAccount","debitAccount","field","monetaryFlowType","negated","specificMonetaryFlowType","type"],"title":"Filter Specific Monetary Flow Condition"},"ApiFilterSpecificMonetaryFlowRangeCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterSpecificMonetaryFlowCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","default":"SPECIFIC_FLOW","enum":["SPECIFIC_FLOW"],"title":"Filter Monetary Flow Type"},"creditAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection"},"debitAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection"},"specificMonetaryFlowType":{"type":"string","default":"BETWEEN","enum":["BETWEEN"],"title":"Filter Specific Monetary Flow Type"},"rangeStart":{"type":"integer","format":"int64","description":"The start of the range, as a MONEY_100 formatted number to compare with entries."},"rangeEnd":{"type":"integer","format":"int64","description":"The end of the range, as a MONEY_100 formatted number to compare with entries."}}}],"required":["creditAccount","debitAccount","field","monetaryFlowType","negated","rangeEnd","rangeStart","specificMonetaryFlowType","type"],"title":"Filter Specific Monetary Flow Range Condition"},"ApiFilterSpecificMonetaryFlowValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterSpecificMonetaryFlowCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","default":"SPECIFIC_FLOW","enum":["SPECIFIC_FLOW"],"title":"Filter Monetary Flow Type"},"creditAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection"},"debitAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection"},"specificMonetaryFlowType":{"type":"string","enum":["SPECIFIC_VALUE","MORE_THAN"],"title":"Filter Specific Monetary Flow Type"},"value":{"type":"integer","format":"int64","description":"The MONEY_100 formatted number to compare with entries."}}}],"required":["creditAccount","debitAccount","field","monetaryFlowType","negated","specificMonetaryFlowType","type","value"],"title":"Filter Specific Monetary Flow Value Condition"},"ApiFilterStringArrayCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"STRING_ARRAY","enum":["STRING_ARRAY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"values":{"type":"array","description":"The set of text values used to filter entries.","items":{"type":"string"}}}}],"required":["field","negated","type","values"],"title":"Filter String Array Condition"},"ApiFilterStringCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"STRING","enum":["STRING"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"value":{"type":"string","description":"The text value used to filter entries."}}}],"required":["field","negated","type","value"],"title":"Filter String Condition"},"ApiFilterTypeaheadEntryCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"TYPEAHEAD_ENTRY","enum":["TYPEAHEAD_ENTRY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"values":{"type":"array","description":"A list of typeahead entry selections to be used in the filter.","items":{"$ref":"#/components/schemas/ApiTypeaheadEntry"}}}}],"required":["field","negated","type","values"],"title":"Filter Typeahead Entry Condition"},"ApiFilter_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"filterType":{"type":"string","description":"The type of this filter. Determines in which context analyses can access it.","enum":["LIBRARY","ORGANIZATION","PRIVATE","ENGAGEMENT"],"title":"Filter Type"},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of this filter."},"category":{"type":"object","additionalProperties":{"type":"string"},"description":"The category of this filter."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified."},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Update","description":"A group filter containing all the conditions included in this filter."}},"required":["category","condition","name","version"],"title":"Saved Filter"},"ApiTypeaheadEntry":{"type":"object","properties":{"lookupId":{"type":"string","description":"The identifier of the selected entry."},"displayName":{"type":"string","description":"The display name of the selected entry."},"hideLookupId":{"type":"boolean","description":"If `false` then the entry will be displayed with both the lookup ID and the display name. If `true` then only the display name will be used when displaying this entry."}},"required":["hideLookupId","lookupId"],"title":"Filter Typeahead Entry"},"ApiFilterCondition_Read":{"type":"object","discriminator":{"propertyName":"type","mapping":{"GROUP":"#/components/schemas/ApiFilterGroupCondition","STRING":"#/components/schemas/ApiFilterStringCondition","STRING_ARRAY":"#/components/schemas/ApiFilterStringArrayCondition","CONTROL_POINT":"#/components/schemas/ApiFilterControlPointCondition","ACCOUNT_NODE_ARRAY":"#/components/schemas/ApiFilterAccountCondition","TYPEAHEAD_ENTRY":"#/components/schemas/ApiFilterTypeaheadEntryCondition","POPULATIONS":"#/components/schemas/ApiFilterPopulationsCondition","RISK_SCORE":"#/components/schemas/ApiFilterRiskScoreCondition","MONETARY_FLOW":"#/components/schemas/ApiFilterMonetaryFlowCondition","MONEY":"#/components/schemas/ApiFilterMonetaryValueCondition","MATERIALITY":"#/components/schemas/ApiFilterMaterialityCondition","NUMERICAL":"#/components/schemas/ApiFilterNumericalValueCondition","DATE":"#/components/schemas/ApiFilterDateCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterGroupCondition"},{"$ref":"#/components/schemas/ApiFilterStringCondition"},{"$ref":"#/components/schemas/ApiFilterStringArrayCondition"},{"$ref":"#/components/schemas/ApiFilterControlPointCondition"},{"$ref":"#/components/schemas/ApiFilterAccountCondition"},{"$ref":"#/components/schemas/ApiFilterTypeaheadEntryCondition"},{"$ref":"#/components/schemas/ApiFilterPopulationsCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"$ref":"#/components/schemas/ApiFilterDateCondition"}],"properties":{"type":{"type":"string","description":"The type of condition.","enum":["GROUP","STRING","STRING_ARRAY","CONTROL_POINT","ACCOUNT_NODE_ARRAY","TYPEAHEAD_ENTRY","POPULATIONS","RISK_SCORE","MONETARY_FLOW","MONEY","MATERIALITY","NUMERICAL","DATE"],"title":"Filter Condition Type"}},"required":["type"],"title":"Filter Condition"},"ApiFilterGroupCondition_Read":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"GROUP","enum":["GROUP"],"title":"Filter Condition Type"},"operator":{"type":"string","description":"The operator to be applied to conditions within this group.","enum":["AND","OR"],"title":"Filter Group Operator"},"conditions":{"type":"array","description":"The entries within this condition group.","items":{"$ref":"#/components/schemas/ApiFilterCondition"},"minItems":1}}}],"required":["conditions","operator","type"],"title":"Filter Group Condition"},"ApiFilter_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"analysisTypeId":{"type":"string","description":"Identifies the associated analysis type."},"organizationId":{"type":"string","description":"Identifies the parent organization, if applicable. Can only be set if `filterType` is `ORGANIZATION` or `PRIVATE`."},"libraryId":{"type":"string","description":"Identifies the parent library, if applicable. Can only be set if `filterType` is `LIBRARY`."},"engagementId":{"type":"string","description":"Identifies the parent engagement, if applicable. Can only be set if `filterType` is `ENGAGEMENT`."},"filterType":{"type":"string","description":"The type of this filter. Determines in which context analyses can access it.","enum":["LIBRARY","ORGANIZATION","PRIVATE","ENGAGEMENT"],"title":"Filter Type"},"dataType":{"type":"string","description":"The intended data type for this filter.","enum":["TRANSACTIONS","ENTRIES","LIBRARY"],"title":"Filter Data Type"},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of this filter."},"category":{"type":"object","additionalProperties":{"type":"string"},"description":"The category of this filter."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified."},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Read","description":"A group filter containing all the conditions included in this filter."},"legacyFilterFormat":{"type":"boolean","description":"If `true` this filter is saved in a legacy format that can't be represented in the API."}},"required":["analysisTypeId","category","condition","legacyFilterFormat","name","version"],"title":"Saved Filter"},"ApiRiskRangeBounds_Update":{"type":"object","properties":{"lowThreshold":{"type":"integer","format":"int32","description":"The low threshold of the risk range.","maximum":10000,"minimum":0},"highThreshold":{"type":"integer","format":"int32","description":"The high threshold of the risk range.","maximum":10000,"minimum":0}},"title":"Risk Range Bounds"},"ApiRiskRanges_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"low":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Update","description":"The low range bounds."},"medium":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Update","description":"The medium range bounds."},"high":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Update","description":"The high range bounds."},"name":{"type":"string","description":"The name of the risk range.","maxLength":80,"minLength":0},"description":{"type":"string","description":"The description of the risk range.","maxLength":250,"minLength":0}},"required":["name"],"title":"Risk Ranges"},"ApiRiskRangeBounds_Read":{"type":"object","properties":{"lowThreshold":{"type":"integer","format":"int32","description":"The low threshold of the risk range.","maximum":10000,"minimum":0},"highThreshold":{"type":"integer","format":"int32","description":"The high threshold of the risk range.","maximum":10000,"minimum":0}},"title":"Risk Range Bounds"},"ApiRiskRanges_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"low":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Read","description":"The low range bounds."},"medium":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Read","description":"The medium range bounds."},"high":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Read","description":"The high range bounds."},"system":{"type":"boolean","description":"Indicates whether or not the risk ranges are a MindBridge system risk range."},"libraryId":{"type":"string","description":"Identifies the library associated with this risk range."},"engagementId":{"type":"string","description":"Identifies the engagement associated with this risk range."},"analysisTypeId":{"type":"string","description":"Identifies the analysis type associated with this risk range."},"name":{"type":"string","description":"The name of the risk range.","maxLength":80,"minLength":0},"description":{"type":"string","description":"The description of the risk range.","maxLength":250,"minLength":0}},"required":["analysisTypeId","libraryId","name"],"title":"Risk Ranges"},"ApiPopulationTag_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the population.","maxLength":80,"minLength":0},"category":{"type":"string","description":"The category of the population.","maxLength":80,"minLength":0},"description":{"type":"string","description":"A description of the population.","maxLength":250,"minLength":0},"reasonForChange":{"type":"string","description":"The reason for the latest change made to the population.","maxLength":250,"minLength":0},"disabled":{"type":"boolean"},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Update","description":"The filter condition used to determine which entries are included in the population."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified."}},"required":["category","condition","name","version"],"title":"Population"},"ApiPopulationTag_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"analysisTypeId":{"type":"string"},"libraryId":{"type":"string","description":"The ID of the parent library."},"engagementId":{"type":"string","description":"The ID of the parent engagement."},"derivedFromLibrary":{"type":"boolean","description":"Indicates that the engagement population was derived from a library."},"disabledForAnalysisIds":{"type":"array","description":"Lists the analysis IDs where the engagement population is disabled.","items":{"type":"string"}},"promotedFromAnalysisId":{"type":"string","description":"Identifies the analysis from which the engagement population was promoted."},"analysisId":{"type":"string","description":"The ID of the parent analysis."},"derivedFromEngagement":{"type":"boolean","description":"Indicates whether the analysis population was derived from an engagement."},"basePopulationId":{"type":"string","description":"The ID of the population the current population is based on."},"name":{"type":"string","description":"The name of the population.","maxLength":80,"minLength":0},"category":{"type":"string","description":"The category of the population.","maxLength":80,"minLength":0},"description":{"type":"string","description":"A description of the population.","maxLength":250,"minLength":0},"clonedFrom":{"type":"string","description":"Identifies the population the current population was cloned from."},"reasonForChange":{"type":"string","description":"The reason for the latest change made to the population.","maxLength":250,"minLength":0},"disabled":{"type":"boolean"},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Read","description":"The filter condition used to determine which entries are included in the population."},"legacyFilterFormat":{"type":"boolean","description":"If `true`, this population uses a legacy filter format that cannot be represented in the current condition format."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified."}},"required":["analysisTypeId","category","condition","legacyFilterFormat","name","version"],"title":"Population"},"ApiOrganization_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the organization.","maxLength":80,"minLength":0},"externalClientCode":{"type":"string","description":"The unique client ID applied to this organization.","maxLength":80,"minLength":0},"managerUserIds":{"type":"array","description":"Identifies users assigned to the organization manager role.","items":{"type":"string"}}},"required":["name","version"],"title":"Organization"},"ApiOrganization_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"string","description":"The name of the organization.","maxLength":80,"minLength":0},"externalClientCode":{"type":"string","description":"The unique client ID applied to this organization.","maxLength":80,"minLength":0},"managerUserIds":{"type":"array","description":"Identifies users assigned to the organization manager role.","items":{"type":"string"}}},"required":["name","version"],"title":"Organization"},"ApiLibrary_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The current name of the library.","maxLength":80,"minLength":0},"warningsDismissed":{"type":"boolean","description":"When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI."},"analysisTypeIds":{"type":"array","description":"Identifies the analysis types used in the library.","items":{"type":"string"}},"defaultDelimiter":{"type":"string","description":"Identifies the default delimiter used in imported CSV files."},"controlPointSelectionPermission":{"type":"boolean","description":"When set to `true`, control points can be added or removed within each risk score."},"controlPointWeightPermission":{"type":"boolean","description":"When set to `true`, the weight of each control point can be adjusted within each risk score."},"controlPointSettingsPermission":{"type":"boolean","description":"When set to `true`, individual control point settings can be adjusted within each risk score."},"riskScoreAndGroupsSelectionPermission":{"type":"boolean","description":"When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited."},"riskRangeEditPermission":{"type":"boolean"},"riskScoreDisplay":{"type":"string","description":"Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.","enum":["HIGH_MEDIUM_LOW","PERCENTAGE"]},"archived":{"type":"boolean","description":"Indicates whether or not the library is archived. Archived libraries cannot be selected when creating an engagement."}},"required":["analysisTypeIds","archived","controlPointSelectionPermission","controlPointSettingsPermission","controlPointWeightPermission","name","riskScoreAndGroupsSelectionPermission","riskScoreDisplay","version","warningsDismissed"],"title":"Library"},"ApiLibrary_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"string","description":"The current name of the library.","maxLength":80,"minLength":0},"basedOnLibraryId":{"type":"string","description":"Identifies the library that the new library is based on. This may be a user-created library or a MindBridge system library."},"originalSystemLibraryId":{"type":"string","description":"Identifies the original MindBridge-supplied library."},"warningsDismissed":{"type":"boolean","description":"When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI."},"conversionWarnings":{"type":"array","description":"A list of accounts that failed to convert the selected base library's setting to the selected account grouping.","items":{"$ref":"#/components/schemas/Problem_Read"}},"accountGroupingId":{"type":"string","description":"Identifies the account grouping used."},"analysisTypeIds":{"type":"array","description":"Identifies the analysis types used in the library.","items":{"type":"string"}},"defaultDelimiter":{"type":"string","description":"Identifies the default delimiter used in imported CSV files."},"controlPointSelectionPermission":{"type":"boolean","description":"When set to `true`, control points can be added or removed within each risk score."},"controlPointWeightPermission":{"type":"boolean","description":"When set to `true`, the weight of each control point can be adjusted within each risk score."},"controlPointSettingsPermission":{"type":"boolean","description":"When set to `true`, individual control point settings can be adjusted within each risk score."},"riskScoreAndGroupsSelectionPermission":{"type":"boolean","description":"When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited."},"riskRangeEditPermission":{"type":"boolean"},"riskScoreDisplay":{"type":"string","description":"Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.","enum":["HIGH_MEDIUM_LOW","PERCENTAGE"]},"system":{"type":"boolean","description":"Indicates whether or not the library is a MindBridge system library."},"archived":{"type":"boolean","description":"Indicates whether or not the library is archived. Archived libraries cannot be selected when creating an engagement."}},"required":["accountGroupingId","analysisTypeIds","archived","basedOnLibraryId","controlPointSelectionPermission","controlPointSettingsPermission","controlPointWeightPermission","name","originalSystemLibraryId","riskScoreAndGroupsSelectionPermission","riskScoreDisplay","version","warningsDismissed"],"title":"Library"},"Problem_Read":{"type":"object","properties":{"problemType":{"type":"string","description":"The type of problem.","enum":["UNKNOWN","ILLEGAL_ARGUMENT","CANNOT_DELETE","GREATER_VALUE_REQUIRED","LESS_VALUE_REQUIRED","NON_UNIQUE_VALUE","USER_EMAIL_ALREADY_EXISTS","INCORRECT_DATA_TYPE","RATIO_CONVERSION_FAILED","RISK_SCORE_FILTER_CONVERSION_FAILED","FILTER_CONVERSION_FAILED","POPULATION_CONVERSION_FAILED","INSUFFICIENT_PERMISSION","ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS","ACCOUNT_GROUPING_IN_USE_BY_LIBRARY","INVALID_ACCOUNT_GROUPING_FILE","DELIVERY_FAILURE","INVALID_STATE"]},"severity":{"type":"string","description":"Indicates how severe the problem is.","enum":["WARNING","ERROR"]},"entityType":{"type":"string","description":"The type of entity impacted by the problem."},"entityId":{"type":"string","description":"Identifies the entity impacted by the problem."},"identifier":{"type":"string","description":"Identifies the field causing the problem."},"values":{"type":"array","description":"Identifies the values causing the problem.","items":{"type":"string"}},"reason":{"type":"string","description":"The reason(s) why the problem occurred."},"suggestedValues":{"type":"array","description":"A suggested set of values to assist in resolving the problem.","items":{"type":"string"}},"problemCount":{"type":"integer","format":"int32","description":"The total number of occurrences of this problem."}}},"ApiFileManagerDirectory_Update":{"allOf":[{"$ref":"#/components/schemas/ApiFileManagerEntity_Update"},{"type":"object","properties":{"name":{"type":"string","description":"The name of the directory."}}}],"required":["name","version"],"title":"File Manager Directory"},"ApiFileManagerEntity_Update":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"type":{"type":"string","description":"Indicates whether the object is a DIRECTORY or a FILE.","enum":["DIRECTORY","FILE"]},"parentFileManagerEntityId":{"type":"string","description":"Identifies the parent directory. If NULL, the directory is positioned at the root level."}},"required":["version"],"title":"File Manager Entity"},"ApiFileManagerFile_Update":{"allOf":[{"$ref":"#/components/schemas/ApiFileManagerEntity_Update"},{"type":"object","properties":{"name":{"type":"string","description":"The current name of the file, excluding the extension."}}}],"required":["name","version"],"title":"File Manager File"},"ApiFileManagerDirectory_Read":{"allOf":[{"$ref":"#/components/schemas/ApiFileManagerEntity_Read"},{"type":"object","properties":{"name":{"type":"string","description":"The name of the directory."}}}],"required":["engagementId","name","version"],"title":"File Manager Directory"},"ApiFileManagerEntity_Read":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"Indicates whether the object is a DIRECTORY or a FILE.","enum":["DIRECTORY","FILE"]},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"parentFileManagerEntityId":{"type":"string","description":"Identifies the parent directory. If NULL, the directory is positioned at the root level."}},"required":["engagementId","version"],"title":"File Manager Entity"},"ApiFileManagerFile_Read":{"allOf":[{"$ref":"#/components/schemas/ApiFileManagerEntity_Read"},{"type":"object","properties":{"originalName":{"type":"string","description":"The name of the file as it appeared when first imported, including the extension."},"name":{"type":"string","description":"The current name of the file, excluding the extension."},"extension":{"type":"string","description":"The suffix used at the end of the file."},"status":{"type":"array","description":"The status of the file as it appears in MindBridge.","items":{"type":"string","enum":["MODIFIED","ROLLED_FORWARD"]},"uniqueItems":true},"fileInfoId":{"type":"string","description":"Identifies the associated file info."}}}],"required":["engagementId","extension","name","originalName","version"],"title":"File Manager File"},"ApiAccountingPeriod_Update":{"type":"object","properties":{"fiscalStartMonth":{"type":"integer","format":"int32","description":"The month that the fiscal period begins."},"fiscalStartDay":{"type":"integer","format":"int32","description":"The date of the month that the fiscal period begins."},"frequency":{"type":"string","description":"The frequency with which your client's financial data is reported.","enum":["ANNUAL","SEMI_ANNUAL","QUARTERLY","MONTHLY","THIRTEEN_PERIODS"]}},"required":["fiscalStartDay","fiscalStartMonth","frequency"],"title":"Accounting Period"},"ApiEngagement_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the engagement.","maxLength":80,"minLength":0},"billingCode":{"type":"string","description":"A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage."},"accountingPeriod":{"$ref":"#/components/schemas/ApiAccountingPeriod_Update","description":"Details about the accounting period."},"auditPeriodEndDate":{"type":"string","format":"date","description":"The last day of the occurring audit."},"accountingPackage":{"type":"string","description":"The ERP or financial management system that your client is using."},"industry":{"type":"string","description":"The type of industry that your client operates within."},"engagementLeadId":{"type":"string","description":"Identifies the user who will lead the engagement."},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analyses use a standard reporting period."},"auditorIds":{"type":"array","description":"Identifies the users who will act as auditors in the engagement.","items":{"type":"string"}}},"required":["accountingPackage","auditPeriodEndDate","engagementLeadId","industry","name","version"],"title":"Engagement"},"ApiAccountingPeriod_Read":{"type":"object","properties":{"fiscalStartMonth":{"type":"integer","format":"int32","description":"The month that the fiscal period begins."},"fiscalStartDay":{"type":"integer","format":"int32","description":"The date of the month that the fiscal period begins."},"frequency":{"type":"string","description":"The frequency with which your client's financial data is reported.","enum":["ANNUAL","SEMI_ANNUAL","QUARTERLY","MONTHLY","THIRTEEN_PERIODS"]}},"required":["fiscalStartDay","fiscalStartMonth","frequency"],"title":"Accounting Period"},"ApiEngagement_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"organizationId":{"type":"string","description":"Identifies the organization."},"name":{"type":"string","description":"The name of the engagement.","maxLength":80,"minLength":0},"billingCode":{"type":"string","description":"A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage."},"libraryId":{"type":"string","description":"Identifies the library."},"accountingPeriod":{"$ref":"#/components/schemas/ApiAccountingPeriod_Read","description":"Details about the accounting period."},"auditPeriodEndDate":{"type":"string","format":"date","description":"The last day of the occurring audit."},"accountingPackage":{"type":"string","description":"The ERP or financial management system that your client is using."},"industry":{"type":"string","description":"The type of industry that your client operates within."},"engagementLeadId":{"type":"string","description":"Identifies the user who will lead the engagement."},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analyses use a standard reporting period."},"auditorIds":{"type":"array","description":"Identifies the users who will act as auditors in the engagement.","items":{"type":"string"}}},"required":["accountingPackage","auditPeriodEndDate","engagementLeadId","industry","libraryId","name","organizationId","version"],"title":"Engagement"},"ApiEngagementAccountGroup_Update":{"type":"object","properties":{"code":{"type":"string","description":"The account code for this account group."},"macCode":{"type":"string","description":"The MAC code mapped to this account group."},"hidden":{"type":"boolean","description":"When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import."},"alias":{"type":"string","description":"A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping."}},"required":["code","hidden"],"title":"Engagement Account Group"},"ApiAccountGroupError_Read":{"type":"object","properties":{"type":{"type":"string","description":"The type of account group error.","enum":["ERROR_LOWEST_LEVEL_WITH_NO_MAC","ERROR_LOWEST_LEVEL_WITHOUT_LEVEL_4_MAC","ERROR_INCONSISTENT_SHEET_HIERARCHY"]},"arguments":{"type":"array","description":"A list of values relevant to the type of account group error.","items":{"type":"string"}}},"title":"Account Group Error"},"ApiEngagementAccountGroup_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"engagementAccountGroupingId":{"type":"string","description":"The unique identifier for the engagement account grouping that the engagement account group belongs to."},"code":{"type":"string","description":"The account code for this account group."},"description":{"type":"object","additionalProperties":{"type":"string"},"description":"A description of the account code for this account group."},"lowestLevel":{"type":"boolean"},"hierarchy":{"type":"array","description":"A list of the parent codes for this account group.","items":{"type":"string"}},"parentCode":{"type":"string","description":"The parent code for this account group."},"macCode":{"type":"string","description":"The MAC code mapped to this account group."},"accountTags":{"type":"array","description":"A list of account tags assigned to this account group.","items":{"type":"string"}},"publishedDate":{"type":"string","format":"date-time","description":"The date this account group was published. If not set, this account group is not published.\n\nPublished account groups cannot be updated."},"orderIndex":{"type":"integer","format":"int32","description":"The order in which this account group is displayed, relative to other account groups with the same parent."},"errors":{"type":"array","description":"A list of errors associated with this account group.","items":{"$ref":"#/components/schemas/ApiAccountGroupError_Read"}},"hidden":{"type":"boolean","description":"When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import."},"origin":{"type":"string","description":"The process that lead to the creation of the account group.","enum":["IMPORTED_FROM_LIBRARY","IMPORTED_FROM_ENGAGEMENT","ADDED_ON_ENGAGEMENT"]},"alias":{"type":"string","description":"A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping."}},"required":["code","description","engagementAccountGroupingId","hidden","parentCode"],"title":"Engagement Account Group"},"ApiDatabricksAuthorization_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"connectionId":{"type":"string","description":"The ID of the Connection this authorization belongs to."},"authType":{"type":"string","description":"The authentication method to use. Possible values: PAT, OAUTH_M2M.","enum":["PAT","OAUTH_M2M"]},"host":{"type":"string","description":"The Databricks server hostname."},"port":{"type":"integer","format":"int32","description":"The port number for the Databricks connection. Typically 443."},"httpPath":{"type":"string","description":"The HTTP path for the Databricks SQL warehouse or cluster."},"accessToken":{"type":"string","description":"The personal access token for PAT authentication.","writeOnly":true},"clientId":{"type":"string","description":"The OAuth client ID for OAUTH_M2M authentication."},"clientSecret":{"type":"string","description":"The OAuth client secret for OAUTH_M2M authentication.","writeOnly":true}},"required":["authType","connectionId","host","httpPath","version"],"title":"Databricks Authorization"},"ApiDatabricksAuthorization_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"connectionId":{"type":"string","description":"The ID of the Connection this authorization belongs to."},"authType":{"type":"string","description":"The authentication method to use. Possible values: PAT, OAUTH_M2M.","enum":["PAT","OAUTH_M2M"]},"host":{"type":"string","description":"The Databricks server hostname."},"port":{"type":"integer","format":"int32","description":"The port number for the Databricks connection. Typically 443."},"httpPath":{"type":"string","description":"The HTTP path for the Databricks SQL warehouse or cluster."},"clientId":{"type":"string","description":"The OAuth client ID for OAUTH_M2M authentication."}},"required":["authType","connectionId","host","httpPath","version"],"title":"Databricks Authorization"},"ApiApiToken_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The token record's name. This will also be used as the API Token User's name."}},"required":["name","version"],"title":"API Token"},"ApiApiToken_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"userId":{"type":"string","description":"Identifies the API Token User associated with this token."},"name":{"type":"string","description":"The token record's name. This will also be used as the API Token User's name."},"partialToken":{"type":"string","description":"A partial representation of the API token."},"expiry":{"type":"string","format":"date-time","description":"The day on which the API token expires."},"allowedAddresses":{"type":"array","description":"Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.","items":{"type":"string"}},"permissions":{"type":"array","description":"The set of permissions that inform which endpoints this token is authorized to access.","items":{"type":"string","enum":["api.organizations.read","api.organizations.write","api.organizations.delete","api.engagements.read","api.engagements.write","api.engagements.delete","api.analyses.read","api.analyses.write","api.analyses.delete","api.analyses.run","api.analysis-sources.read","api.analysis-sources.write","api.analysis-sources.delete","api.file-manager.read","api.file-manager.write","api.file-manager.delete","api.reporting-period-config.read","api.reporting-period-config.write","api.reporting-period-config.delete","api.libraries.read","api.libraries.write","api.libraries.delete","api.account-groupings.read","api.account-groupings.write","api.account-groupings.delete","api.engagement-account-groupings.read","api.engagement-account-groupings.write","api.engagement-account-groupings.delete","api.users.read","api.users.write","api.users.delete","api.data-tables.read","api.api-tokens.read","api.api-tokens.write","api.api-tokens.delete","api.tasks.read","api.tasks.write","api.tasks.delete","api.admin-reports.run","api.analysis-types.read","api.analysis-source-types.read","api.analysis-type-configuration.read","api.analysis-type-configuration.write","api.analysis-type-configuration.delete","api.risk-ranges.read","api.risk-ranges.write","api.risk-ranges.delete","api.filters.read","api.filters.write","api.filters.delete","api.file-infos.read","api.webhooks.read","api.webhooks.write","api.webhooks.delete","api.connections.read","api.connections.write","api.connections.delete","api.connection-data-sources.read","api.connection-data-sources.write","api.connection-data-sources.delete","scim.user.read","scim.user.write","scim.user.delete","scim.user.schema"]}}},"required":["expiry","name","permissions","version"],"title":"API Token"},"ApiAnalysisConfig_Update":{"type":"object","properties":{"riskGroups":{"type":"array","description":"The list of risk groups associated with this analysis config.","items":{"$ref":"#/components/schemas/ApiRiskGroup_Update"}}},"title":"Analysis Config"},"ApiAnalysisTypeConfiguration_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"system":{"type":"boolean"},"configuration":{"$ref":"#/components/schemas/ApiAnalysisConfig_Update","description":"The configuration details for this analysis type."}},"required":["version"],"title":"Analysis Type Configuration"},"ApiRiskGroupFilter_Update":{"type":"object","properties":{"values":{"type":"array","description":"A list of accounts to include in the risk group.","items":{"type":"string"}}},"title":"Risk Group Filter"},"ApiRiskGroup_Update":{"type":"object","properties":{"disabled":{"type":"boolean","description":"Indicates whether the risk group is disabled."},"id":{"type":"string","description":"The unique object identifier for this risk group."},"selectedRiskRange":{"type":"string","description":"The selected risk range for the risk group. The selected value must be part of the applicable risk ranges."},"applicableRiskRanges":{"type":"array","description":"A list of risk ranges that are applicable to the risk group.","items":{"type":"string"},"uniqueItems":true},"filter":{"$ref":"#/components/schemas/ApiRiskGroupFilter_Update","description":"A filter based on account hierarchy used to determine which entries are included in the risk group."},"controlPointWeights":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"A map of control point names to their weights within the risk group."}},"title":"Risk Group"},"ApiAnalysisConfig_Read":{"type":"object","properties":{"riskGroups":{"type":"array","description":"The list of risk groups associated with this analysis config.","items":{"$ref":"#/components/schemas/ApiRiskGroup_Read"}}},"title":"Analysis Config"},"ApiAnalysisTypeConfiguration_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"system":{"type":"boolean"},"libraryId":{"type":"string","description":"Identifies the library associated with this configuration."},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisId":{"type":"string","description":"Identifies the analysis associated with this configuration."},"analysisTypeId":{"type":"string","description":"Identifies the type of analysis."},"configuration":{"$ref":"#/components/schemas/ApiAnalysisConfig_Read","description":"The configuration details for this analysis type."},"controlPointBundleVersion":{"type":"string","description":"The version of the control point bundle used in this configuration."},"template":{"type":"boolean","description":"Indicates whether this configuration is a template."}},"required":["version"],"title":"Analysis Type Configuration"},"ApiRiskGroupFilter_Read":{"type":"object","properties":{"values":{"type":"array","description":"A list of accounts to include in the risk group.","items":{"type":"string"}}},"title":"Risk Group Filter"},"ApiRiskGroup_Read":{"type":"object","properties":{"disabled":{"type":"boolean","description":"Indicates whether the risk group is disabled."},"id":{"type":"string","description":"The unique object identifier for this risk group."},"system":{"type":"boolean","description":"Indicates whether the risk group is a MindBridge system risk group."},"analysisTypeId":{"type":"string","description":"Identifies the analysis type that the risk group is associated with."},"selectedRiskRange":{"type":"string","description":"The selected risk range for the risk group. The selected value must be part of the applicable risk ranges."},"applicableRiskRanges":{"type":"array","description":"A list of risk ranges that are applicable to the risk group.","items":{"type":"string"},"uniqueItems":true},"filter":{"$ref":"#/components/schemas/ApiRiskGroupFilter_Read","description":"A filter based on account hierarchy used to determine which entries are included in the risk group."},"controlPointWeights":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"A map of control point names to their weights within the risk group."},"controlPointBundleVersion":{"type":"string","description":"The version of the control point bundle used in this risk group."},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of localized risk group names, keyed by language code."},"description":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of localized risk group descriptions, keyed by language code."},"category":{"type":"object","additionalProperties":{"type":"string"},"description":"Identifies the risk group's category."},"riskAssertionCategory":{"type":"string","description":"Identifies the risk assertion category of the risk group.","enum":["GENERAL","ASSETS","LIABILITIES_EQUITY","PROFIT_LOSS","LIABILITIES","EQUITY","REVENUE","EXPENSES"]}},"title":"Risk Group"},"ApiAmbiguousColumn_Update":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column with the resolution."},"selectedFormat":{"type":"string","description":"The data format to be used in case of ambiguity."}},"title":"Ambiguous Column Resolution"},"ApiAnalysisSource_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"warningsIgnored":{"type":"boolean","description":"Indicates whether or not warnings should be ignored."},"targetWorkflowState":{"type":"string","description":"The state that the current workflow will advance to.","enum":["COMPLETED","CANCELLED","FAILED","STARTED","DETECTING_FORMAT","ANALYZING_COLUMNS","CHECKING_INTEGRITY","SCANNING_TRANSACTION_COMBINATIONS","PARSING","PARSING_ICEBERG","ANALYZING_EFFECTIVE_DATE_METRICS","FORMAT_DETECTION_COMPLETED","COLUMN_MAPPINGS_CONFIRMED","SETTINGS_CONFIRMED","PREPARING_ICEBERG","ANALYSIS_PERIOD_SELECTED","FUNDS_REVIEWED","RUNNING","UNPACK_COMPLETE","UPLOADED","FORMAT_DETECTED","COLUMNS_ANALYZED","INTEGRITY_CHECKED","PARSED","AUTHENTICATED","CONFIGURED","EFFECTIVE_DATE_METRICS_ANALYZED","DATA_VALIDATION_CONFIRMED"]},"applyDegrouper":{"type":"boolean","description":"Indicates whether or not the degrouper should be applied."},"proposedColumnMappings":{"type":"array","description":"Details about the proposed column mapping.","items":{"$ref":"#/components/schemas/ApiProposedColumnMapping_Update"}},"columnMappings":{"type":"array","description":"Details about column mapping.","items":{"$ref":"#/components/schemas/ApiColumnMapping_Update"}},"proposedVirtualColumns":{"type":"array","description":"Details about the proposed virtual columns added during the file import process.","items":{"oneOf":[{"$ref":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiProposedJoinVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Update"}]}},"virtualColumns":{"type":"array","description":"Details about the virtual columns added during file ingestion. ","items":{"oneOf":[{"$ref":"#/components/schemas/ApiDuplicateVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiJoinVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiSplitByDelimiterVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiSplitByPositionVirtualColumn_Update"}]}},"proposedAmbiguousColumnResolutions":{"type":"array","description":"Details about the virtual columns added during file ingestion.","items":{"$ref":"#/components/schemas/ApiProposedAmbiguousColumnResolution_Update"}},"ambiguousColumnResolutions":{"type":"array","description":"Details about resolutions to ambiguity in a column.","items":{"$ref":"#/components/schemas/ApiAmbiguousColumn_Update"}},"proposedTransactionIdSelection":{"$ref":"#/components/schemas/ApiTransactionIdSelection_Update","description":"The proposed columns to include when selecting a transaction ID."},"transactionIdSelection":{"$ref":"#/components/schemas/ApiTransactionIdSelection_Update","description":"Details about transaction ID selection."}},"required":["version"],"title":"Analysis Source"},"ApiColumnMapping_Update":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column mapping."},"mindbridgeField":{"type":"string","description":"The MindBridge field that the data column was mapped to."},"additionalColumnName":{"type":"string","description":"Additional columns of data that were added to the analysis."}},"title":"Column Mapping"},"ApiDuplicateVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the duplicated column."}}}],"required":["columnIndex","name","type","version"],"title":"Duplicate Virtual Column"},"ApiJoinVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Update"},{"type":"object","properties":{"columnIndices":{"type":"array","description":"The position of the joined column.","items":{"type":"integer","format":"int32"}},"delimiter":{"type":"string","description":"The character(s) used to separate values."}}}],"required":["columnIndices","delimiter","name","type","version"],"title":"Join Virtual Column"},"ApiProposedAmbiguousColumnResolution_Update":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column with the proposed resolution.","minimum":0},"selectedFormat":{"type":"string","description":"The selected format of the proposed resolution."}},"required":["position","selectedFormat"],"title":"Proposed Ambiguous Column Resolution"},"ApiProposedColumnMapping_Update":{"type":"object","properties":{"columnPosition":{"type":"integer","format":"int32","description":"The position of the proposed column mapping in the original input file."},"virtualColumnIndex":{"type":"integer","format":"int32","description":"The position of the proposed virtual columns within the `proposedVirtualColumns` list."},"mindbridgeField":{"type":"string","description":"The MindBridge field that the data column should be mapped to."},"additionalColumnName":{"type":"string","description":"Proposed additional columns of data to be added to the analysis."}},"title":"Proposed Column Mapping"},"ApiProposedDuplicateVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be duplicated."}}}],"required":["columnIndex"],"title":"Proposed Duplicate Virtual Column"},"ApiProposedJoinVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Update"},{"type":"object","properties":{"columnIndices":{"type":"array","description":"The positions of the columns to be joined.","items":{"type":"integer","format":"int32"}},"delimiter":{"type":"string","description":"The character(s) that should be inserted to separate values."}}}],"required":["columnIndices","delimiter"],"title":"Proposed Join Virtual Column"},"ApiProposedSplitByDelimiterVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"delimiter":{"type":"string","description":"The character(s) that should be used to separate the string into parts."},"splitIndex":{"type":"integer","format":"int32","description":"The position of the part to be used as a virtual column."}}}],"required":["columnIndex","delimiter","splitIndex"],"title":"Proposed Split By Delimiter Virtual Column"},"ApiProposedSplitByPositionVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"startPosition":{"type":"integer","format":"int32","description":"The starting position of the substring to be used as the new column. **Inclusive**."},"endPosition":{"type":"integer","format":"int32","description":"The ending position of the substring to be used as the new column. **Exclusive**."}}}],"required":["columnIndex","endPosition","startPosition"],"title":"Proposed Split By Position Virtual Column"},"ApiProposedVirtualColumn_Update":{"type":"object","discriminator":{"propertyName":"type","mapping":{"DUPLICATE":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Update","JOIN":"#/components/schemas/ApiProposedJoinVirtualColumn_Update","SPLIT_BY_DELIMITER":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Update","SPLIT_BY_POSITION":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Update"}},"properties":{"name":{"type":"string","description":"The name of the proposed virtual column."},"type":{"type":"string","description":"The type of proposed virtual column.","enum":["DUPLICATE","SPLIT_BY_POSITION","SPLIT_BY_DELIMITER","JOIN"]}},"title":"Proposed Virtual Column"},"ApiSplitByDelimiterVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the split column."},"delimiter":{"type":"string","description":"The character(s) used to separate the string into parts."},"splitIndex":{"type":"integer","format":"int32","description":"The position of the part used as a virtual column."}}}],"required":["columnIndex","delimiter","name","splitIndex","type","version"],"title":"Split By Delimiter Virtual Column"},"ApiSplitByPositionVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the split column."},"startPosition":{"type":"integer","format":"int32","description":"The starting position of the substring in the new column. **Inclusive**."},"endPosition":{"type":"integer","format":"int32","description":"The ending position of the substring in the new column. **Exclusive**."}}}],"required":["columnIndex","endPosition","name","startPosition","type","version"],"title":"Split By Position Virtual Column"},"ApiTransactionIdSelection_Update":{"type":"object","properties":{"columnSelection":{"type":"array","description":"The columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"virtualColumnSelection":{"type":"array","description":"The virtual columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"type":{"type":"string","description":"The type used when selecting a transaction ID.","enum":["COMBINATION","RUNNING_TOTAL"]},"applySmartSplitter":{"type":"boolean","description":"Indicates whether or not the Smart Splitter was run when selecting a transaction ID."}},"required":["type"],"title":"Transaction ID Selection"},"ApiVirtualColumn_Update":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the virtual column."},"type":{"type":"string","description":"The type of virtual column.","enum":["DUPLICATE","SPLIT_BY_POSITION","SPLIT_BY_DELIMITER","JOIN"]}},"required":["name","type","version"],"title":"Virtual Column"},"ApiAsyncResult_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"Indicates the type of job being run.","enum":["ANALYSIS_RUN","ANALYSIS_SOURCE_INGESTION","ADMIN_REPORT","DATA_TABLE_EXPORT","ANALYSIS_ROLL_FORWARD","GDPDU_UNPACK_JOB","ACCOUNT_GROUPING_EXPORT","ACCOUNT_MAPPING_EXPORT","DATA_TRANSFORMATION_JOB","CONNECTION_TEST","CONNECTION_TABLES","DATA_TABLE"]},"status":{"type":"string","description":"Indicates the current state of the job.","enum":["IN_PROGRESS","COMPLETE","ERROR"]},"entityId":{"type":"string","description":"Identifies the entity used in the job."},"entityType":{"type":"string","description":"Identifies the entity type used in the job.","enum":["ORGANIZATION","ENGAGEMENT","ANALYSIS","ANALYSIS_RESULT","ANALYSIS_SOURCE","FILE_RESULT","GDPDU_UNPACK_JOB","ACCOUNT_GROUPING","ENGAGEMENT_ACCOUNT_GROUPING","FILE_MANAGER_FILE","CONNECTION_TEST_RESULT","CONNECTION_TABLES_RESULT","DATA_TABLE"]},"error":{"type":"string","description":"The reason why the async job failed."},"errorMessage":{"type":"string"}},"required":["version"],"title":"Async Result"},"ApiAnalysisPeriod_Update":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"startDate":{"type":"string","format":"date","description":"The first day of the period under analysis."},"interimAsAtDate":{"type":"string","format":"date","description":"The last day of the interim period under analysis."},"endDate":{"type":"string","format":"date","description":"The last day of the period under analysis."}},"required":["endDate","startDate"]},"ApiAnalysis_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the analysis.","maxLength":80,"minLength":0},"archived":{"type":"boolean","description":"Indicates whether or not the analysis has been archived."},"analysisPeriods":{"type":"array","description":"Details about the specific analysis periods under audit.","items":{"$ref":"#/components/schemas/ApiAnalysisPeriod_Update"}},"currencyCode":{"type":"string","description":"The currency to be displayed across the analysis results."},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period."},"accountingPeriod":{"$ref":"#/components/schemas/ApiAccountingPeriod_Update","description":"Details about the accounting period used in this analysis. If null the analysis uses a custom reporting period."}},"required":["analysisPeriods","currencyCode","name","version"],"title":"Analysis"},"ApiAnalysisImportantColumn_Read":{"type":"object","properties":{"columnName":{"type":"string","description":"The name of the column as it appears in the imported file."},"field":{"type":"string","description":"The name of the additional data column."}}},"ApiAnalysisPeriodGap_Read":{"type":"object","properties":{"analysisPeriodId":{"type":"string","description":"Identifies the analysis period."},"previousAnalysisPeriodId":{"type":"string","description":"Identifies the previous analysis period relevant to the current analysis period."},"days":{"type":"integer","format":"int64","description":"The number of days between two analysis periods."}},"required":["analysisPeriodId","days","previousAnalysisPeriodId"]},"ApiAnalysisPeriod_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"startDate":{"type":"string","format":"date","description":"The first day of the period under analysis."},"interimAsAtDate":{"type":"string","format":"date","description":"The last day of the interim period under analysis."},"endDate":{"type":"string","format":"date","description":"The last day of the period under analysis."}},"required":["endDate","startDate"]},"ApiAnalysis_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisTypeId":{"type":"string","description":"Identifies the type of analysis."},"name":{"type":"string","description":"The name of the analysis.","maxLength":80,"minLength":0},"interim":{"type":"boolean","description":"Indicates whether or not the analysis is using an interim time frame."},"archived":{"type":"boolean","description":"Indicates whether or not the analysis has been archived."},"converted":{"type":"boolean","description":"Indicates whether or not an interim analysis time frame has been converted to a full analysis time frame."},"periodic":{"type":"boolean","description":"Indicates whether or not the analysis is using a periodic time frame."},"importantColumns":{"type":"array","description":"Additional data columns that can be used when importing additional data.","items":{"$ref":"#/components/schemas/ApiAnalysisImportantColumn_Read"}},"analysisPeriods":{"type":"array","description":"Details about the specific analysis periods under audit.","items":{"$ref":"#/components/schemas/ApiAnalysisPeriod_Read"}},"analysisPeriodGaps":{"type":"array","description":"Details about the gap in time between two analysis periods.","items":{"$ref":"#/components/schemas/ApiAnalysisPeriodGap_Read"}},"currencyCode":{"type":"string","description":"The currency to be displayed across the analysis results."},"latestAnalysisResultId":{"type":"string"},"referenceId":{"type":"string","description":"A reference ID to identify the analysis.","maxLength":256,"minLength":0},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period."},"accountingPeriod":{"$ref":"#/components/schemas/ApiAccountingPeriod_Read","description":"Details about the accounting period used in this analysis. If null the analysis uses a custom reporting period."}},"required":["analysisPeriods","analysisTypeId","currencyCode","engagementId","name","version"],"title":"Analysis"},"ApiAccountMapping_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"code":{"type":"string","description":"The account grouping code mapped to this account."},"accountTags":{"type":"array","description":"A list of account tags associated with this account.","items":{"type":"string"},"uniqueItems":true}},"required":["accountTags","version"],"title":"Account Mapping"},"ApiAccountMapping_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"account":{"type":"string","description":"The account name as provided in the source data."},"accountDescription":{"type":"string","description":"The description of the account as provided in the source data."},"code":{"type":"string","description":"The account grouping code mapped to this account."},"status":{"type":"string","description":"Indicates the current status of the account mapping.","enum":["MANUAL","MAC_CODE","MODIFIED_MAC","UNVERIFIED","VERIFIED","INFERRED","UNMAPPED","USED","UNUSED"]},"usedByAnalysisSources":{"type":"array","description":"A list of analysis sources that use this account.","items":{"type":"string"},"uniqueItems":true},"fundId":{"type":"string","description":"The fund that includes this account."},"accountTags":{"type":"array","description":"A list of account tags associated with this account.","items":{"type":"string"},"uniqueItems":true}},"required":["accountTags","version"],"title":"Account Mapping"},"ApiAccountGroup_Update":{"type":"object","properties":{"macCode":{"type":"string","description":"The MAC code mapped to this account group."},"accountTags":{"type":"array","description":"A list of account tags assigned to this account group.","items":{"type":"string"}}},"title":"Account Group"},"ApiAccountGroup_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"accountGroupingId":{"type":"string","description":"The unique identifier for the account grouping that the account group belongs to."},"code":{"type":"string","description":"The account code for this account group."},"description":{"type":"object","additionalProperties":{"type":"string"},"description":"A description of the account code for this account group."},"lowestLevel":{"type":"boolean"},"hierarchy":{"type":"array","description":"A list of the parent codes for this account group.","items":{"type":"string"}},"parentCode":{"type":"string","description":"The parent code for this account group."},"macCode":{"type":"string","description":"The MAC code mapped to this account group."},"accountTags":{"type":"array","description":"A list of account tags assigned to this account group.","items":{"type":"string"}},"publishedDate":{"type":"string","format":"date-time","description":"The date this account group was published. If not set, this account group is not published.\n\nPublished account groups cannot be updated."},"orderIndex":{"type":"integer","format":"int32","description":"The order in which this account group is displayed, relative to other account groups with the same parent."},"errors":{"type":"array","description":"A list of errors associated with this account group.","items":{"$ref":"#/components/schemas/ApiAccountGroupError_Read"}}},"required":["code","description"],"title":"Account Group"},"ApiAccountGrouping_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account grouping."},"archived":{"type":"boolean","description":"When `true`, the account grouping is archived."},"publishStatus":{"type":"string","description":"The current status of the account grouping.","enum":["DRAFT","UNPUBLISHED_CHANGES","PUBLISHED"]}},"required":["name","publishStatus","version"],"title":"Account Grouping"},"ApiAccountGrouping_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account grouping."},"codeDisplayName":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account code hierarchy system used within the dataset."},"delimiter":{"type":"string","description":"The delimiter character used to separate each category level in an account grouping code."},"mac":{"type":"boolean","description":"When `true`, the account grouping is based on the MAC code system."},"system":{"type":"boolean","description":"When `true`, the account grouping is a system account grouping and cannot be modified."},"archived":{"type":"boolean","description":"When `true`, the account grouping is archived."},"publishedDate":{"type":"string","format":"date-time","description":"The date that the account grouping was published."},"publishStatus":{"type":"string","description":"The current status of the account grouping.","enum":["DRAFT","UNPUBLISHED_CHANGES","PUBLISHED"]}},"required":["codeDisplayName","delimiter","name","publishStatus","version"],"title":"Account Grouping"},"ApiWebhook_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the webhook."},"url":{"type":"string","description":"The URL to which the webhook will send notifications."},"technicalContactId":{"type":"string","description":"A reference to an administrative user used to inform system administrators of issues with the webhooks."},"events":{"type":"array","description":"A list of events that will trigger this webhook.","items":{"type":"string","enum":["EXPORT_READY","FILE_MANAGER_FILE_ADDED","INGESTION_COMPLETE","INGESTION_FAILED","INGESTION_ANALYSIS_COMPLETE","INGESTION_ANALYSIS_FAILED","UNMAPPED_ACCOUNTS_DETECTED","ENGAGEMENT_CREATED","ENGAGEMENT_UPDATED","ENGAGEMENT_DELETED","ANALYSIS_CREATED","ANALYSIS_UPDATED","ANALYSIS_DELETED","ANALYSIS_ARCHIVED","ANALYSIS_UNARCHIVED","USER_INVITED","USER_STATUS_UPDATED","USER_ROLE_UPDATED","USER_DELETED","USER_LOGIN"],"title":"Event Type"},"maxItems":2147483647,"minItems":1},"status":{"type":"string","description":"The current status of the webhook.","enum":["ACTIVE","INACTIVE"]}},"required":["events","name","status","technicalContactId","url"],"title":"Webhook"},"ShieldQueryTerm_Read":{"type":"object","$ref":"#/components/schemas/MindBridgeQueryTerm","properties":{"operator":{"type":"string","enum":["$eq","$ne","$gt","$gte","$lt","$lte","$contains","$ncontains","$in","$nin","$flags","$keyword_prefix","$keyword_prefix_not","$isubstr","$iprefix","$niprefix","$between","$nbetween","$and","$or","$population","$not_population",null]}},"required":["operator"]},"ApiPageApiWebhook_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiWebhook_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiPageable_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32","deprecated":true,"description":"The current page number."},"pageSize":{"type":"integer","format":"int32","deprecated":true,"description":"The number of requested elements on a page."},"offset":{"type":"integer","format":"int64","deprecated":true,"description":"Indicates by how many pages the first page is offset."},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true,"description":"Indicates how the data will be sorted."}}},"Sortnull_Read":{"type":"object","properties":{"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"},"empty":{"type":"boolean"}}},"ApiPageApiWebhookEventLog_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiWebhookEventLog_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiWebhookEventLog_Read":{"type":"object","properties":{"id":{"type":"string"},"version":{"type":"integer","format":"int64"},"creationDate":{"type":"string","format":"date-time"},"lastModifiedDate":{"type":"string","format":"date-time"},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"status":{"type":"string","enum":["IN_PROGRESS","COMPLETED","FAILED","FAILED_PERMANENTLY","DISCONNECTED"]},"webhookId":{"type":"string"},"attemptStartDate":{"type":"string","format":"date-time"},"url":{"type":"string"},"eventType":{"type":"string"},"requestHeaders":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"requestBody":{"type":"string"},"responseStatusCode":{"type":"integer","format":"int32"},"responseHeaders":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"responseTimeSec":{"type":"number","format":"float"},"retryCount":{"type":"integer","format":"int32"},"requestId":{"type":"string"}},"required":["version"],"title":"Webhook Event Log"},"ApiUser_Create":{"type":"object","properties":{"email":{"type":"string","description":"The user's email address."},"role":{"type":"string","description":"The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)","enum":["ROLE_ADMIN","ROLE_ORGANIZATION_ADMIN","ROLE_USER","ROLE_CLIENT","ROLE_MINDBRIDGE_SUPPORT","ROLE_USER_ADMIN"]}},"required":["email","role"],"title":"User"},"ApiPageApiUser_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiUser_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiPageApiTransactionIdPreview_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiTransactionIdPreview_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiTransactionIdPreviewIndicator_Read":{"type":"object","properties":{"rating":{"type":"string","description":"The quality of the indicator as rated by MindBridge.","enum":["BLOCK","FAIL","POOR","NEUTRAL","GOOD"]},"value":{"description":"A value for this specific indicator."},"data":{"type":"array","description":"The set of transactions related to a specific indicator.","items":{"$ref":"#/components/schemas/ApiTransactionIdPreviewRow_Read"}}},"title":"Transaction ID Preview Indicator"},"ApiTransactionIdPreviewRow_Read":{"type":"object","properties":{"transactionId":{"type":"string","description":"Identifies the transaction ID for this transaction."},"balance":{"type":"integer","format":"int64","description":"The balance of the transaction."},"entryCount":{"type":"integer","format":"int64","description":"The number of entries that appear within the transaction."},"detailRows":{"type":"array","description":"The set of entries that appear within the transaction.","items":{"type":"object","additionalProperties":{}}}},"title":"Transaction ID Preview Row"},"ApiTransactionIdPreview_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","deprecated":true},"analysisId":{"type":"string","deprecated":true},"analysisSourceId":{"type":"string","description":"The unique identifier of the associated analysis source."},"columnSelection":{"type":"array","description":"The list of columns used to generate the transaction ID.","items":{"type":"integer","format":"int32"}},"type":{"type":"string","description":"The type used when selecting a transaction ID.","enum":["COMBINATION","RUNNING_TOTAL"]},"smartSplitter":{"type":"boolean","description":"Indicates whether or not the Smart Splitter was run when selecting a transaction ID."},"overallRating":{"type":"string","description":"The quality of the transaction ID as rated by MindBridge.","enum":["BLOCK","FAIL","POOR","NEUTRAL","GOOD"]},"indicators":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiTransactionIdPreviewIndicator_Read"},"description":"The data integrity checks used when selecting a transaction ID."},"entryPreviews":{"type":"array","description":"Details about the transactions generated by this transaction ID selection.","items":{"$ref":"#/components/schemas/ApiTransactionIdPreviewRow_Read"}}},"required":["version"],"title":"Transaction ID Preview"},"ApiTask_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisResultId":{"type":"string"},"rowId":{"type":"integer","format":"int64","description":"Identifies the associated entry."},"transactionId":{"type":"integer","format":"int64","description":"Identifies the associated transaction."},"status":{"type":"string","description":"The current state of the task.","enum":["OPEN","NORMAL","COMPLETED","DISMISSED","RESOLVED"],"title":"Task Status"},"assignedId":{"type":"string","description":"Identifies the user assigned to this task."},"description":{"type":"string","description":"A description of the task."},"sample":{"type":"string","description":"Which sample this task is a part of."},"auditAreas":{"type":"array","description":"Which audit areas this task is associated with.","items":{"type":"string"}},"assertions":{"type":"array","description":"Which assertions this task is associated with.","items":{"type":"string"}},"type":{"type":"string","description":"The type of entry this task is associated with.","enum":["ENTRY","TRANSACTION","AP_ENTRY","AR_ENTRY","AP_OUTSTANDING_ENTRY","AR_OUTSTANDING_ENTRY","TRA_ENTRY","SUBLEDGER_ENTRY"],"title":"Task Type"},"taskApprovalStatus":{"type":"string","enum":["PENDING","REJECTED","APPROVED"],"title":"Task Approval Status"},"dueDate":{"type":"string","format":"date"},"tags":{"type":"array","items":{"type":"string"}}},"required":["analysisResultId","engagementId","status","type"],"title":"Task"},"ApiTaskComment_Create":{"type":"object","properties":{"commentText":{"type":"string","description":"The text of the comment."}},"title":"Task Comment"},"ApiPageApiTask_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiTask_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiPageApiTaskHistory_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiTaskHistory_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiTaskHistoryEntry_Read":{"type":"object","properties":{"fieldName":{"type":"string"},"fieldType":{"type":"string","enum":["ARRAY","ISO_DATE","OBJECT","STRING","INTEGER"]},"previousValue":{},"newValue":{},"previousValueString":{"type":"string"},"newValueString":{"type":"string"}},"title":"Task History Entry"},"ApiTaskHistory_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"dateTime":{"type":"string","format":"date-time","description":"The date and time that the task history was created."},"userName":{"type":"string","description":"Name of the user associated with the history record"},"taskId":{"type":"string","description":"Identifies the associated task."},"userId":{"type":"string","description":"The id of the user associated with the history record"},"operation":{"type":"string","description":"The operation that was performed on the task.","enum":["CREATE","UPDATE","COMPLETED","DELETE","COMMENT","ASSIGNMENT","STATUS_CHANGE","MARKASNORMAL"]},"changes":{"type":"array","description":"A list of changes that were made to the task.","items":{"$ref":"#/components/schemas/ApiTaskHistoryEntry_Read"}}},"title":"Task History"},"ApiFilterCondition_Create":{"type":"object","discriminator":{"propertyName":"type","mapping":{"GROUP":"#/components/schemas/ApiFilterGroupCondition","STRING":"#/components/schemas/ApiFilterStringCondition","STRING_ARRAY":"#/components/schemas/ApiFilterStringArrayCondition","CONTROL_POINT":"#/components/schemas/ApiFilterControlPointCondition","ACCOUNT_NODE_ARRAY":"#/components/schemas/ApiFilterAccountCondition","TYPEAHEAD_ENTRY":"#/components/schemas/ApiFilterTypeaheadEntryCondition","POPULATIONS":"#/components/schemas/ApiFilterPopulationsCondition","RISK_SCORE":"#/components/schemas/ApiFilterRiskScoreCondition","MONETARY_FLOW":"#/components/schemas/ApiFilterMonetaryFlowCondition","MONEY":"#/components/schemas/ApiFilterMonetaryValueCondition","MATERIALITY":"#/components/schemas/ApiFilterMaterialityCondition","NUMERICAL":"#/components/schemas/ApiFilterNumericalValueCondition","DATE":"#/components/schemas/ApiFilterDateCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterGroupCondition"},{"$ref":"#/components/schemas/ApiFilterStringCondition"},{"$ref":"#/components/schemas/ApiFilterStringArrayCondition"},{"$ref":"#/components/schemas/ApiFilterControlPointCondition"},{"$ref":"#/components/schemas/ApiFilterAccountCondition"},{"$ref":"#/components/schemas/ApiFilterTypeaheadEntryCondition"},{"$ref":"#/components/schemas/ApiFilterPopulationsCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"$ref":"#/components/schemas/ApiFilterDateCondition"}],"properties":{"type":{"type":"string","description":"The type of condition.","enum":["GROUP","STRING","STRING_ARRAY","CONTROL_POINT","ACCOUNT_NODE_ARRAY","TYPEAHEAD_ENTRY","POPULATIONS","RISK_SCORE","MONETARY_FLOW","MONEY","MATERIALITY","NUMERICAL","DATE"],"title":"Filter Condition Type"}},"required":["type"],"title":"Filter Condition"},"ApiFilterGroupCondition_Create":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"GROUP","enum":["GROUP"],"title":"Filter Condition Type"},"operator":{"type":"string","description":"The operator to be applied to conditions within this group.","enum":["AND","OR"],"title":"Filter Group Operator"},"conditions":{"type":"array","description":"The entries within this condition group.","items":{"$ref":"#/components/schemas/ApiFilterCondition"},"minItems":1}}}],"required":["conditions","operator","type"],"title":"Filter Group Condition"},"ApiFilter_Create":{"type":"object","properties":{"analysisTypeId":{"type":"string","description":"Identifies the associated analysis type."},"organizationId":{"type":"string","description":"Identifies the parent organization, if applicable. Can only be set if `filterType` is `ORGANIZATION` or `PRIVATE`."},"libraryId":{"type":"string","description":"Identifies the parent library, if applicable. Can only be set if `filterType` is `LIBRARY`."},"engagementId":{"type":"string","description":"Identifies the parent engagement, if applicable. Can only be set if `filterType` is `ENGAGEMENT`."},"filterType":{"type":"string","description":"The type of this filter. Determines in which context analyses can access it.","enum":["LIBRARY","ORGANIZATION","PRIVATE","ENGAGEMENT"],"title":"Filter Type"},"dataType":{"type":"string","description":"The intended data type for this filter.","enum":["TRANSACTIONS","ENTRIES","LIBRARY"],"title":"Filter Data Type"},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of this filter."},"category":{"type":"object","additionalProperties":{"type":"string"},"description":"The category of this filter."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified."},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Create","description":"A group filter containing all the conditions included in this filter."}},"required":["analysisTypeId","category","condition","name"],"title":"Saved Filter"},"ApiFilterValidateRequest_Create":{"type":"object","properties":{"filterId":{"type":"string"},"dataTableId":{"type":"string"}},"required":["dataTableId","filterId"],"title":"Saved Filter Validate Request"},"ApiPageApiFilter_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiFilter_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiRiskRangeBounds_Create":{"type":"object","properties":{"lowThreshold":{"type":"integer","format":"int32","description":"The low threshold of the risk range.","maximum":10000,"minimum":0},"highThreshold":{"type":"integer","format":"int32","description":"The high threshold of the risk range.","maximum":10000,"minimum":0}},"title":"Risk Range Bounds"},"ApiRiskRanges_Create":{"type":"object","properties":{"low":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Create","description":"The low range bounds."},"medium":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Create","description":"The medium range bounds."},"high":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Create","description":"The high range bounds."},"libraryId":{"type":"string","description":"Identifies the library associated with this risk range."},"analysisTypeId":{"type":"string","description":"Identifies the analysis type associated with this risk range."},"name":{"type":"string","description":"The name of the risk range.","maxLength":80,"minLength":0},"description":{"type":"string","description":"The description of the risk range.","maxLength":250,"minLength":0}},"required":["analysisTypeId","libraryId","name"],"title":"Risk Ranges"},"ApiPageApiRiskRanges_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiRiskRanges_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiMonthlyReportingPeriod_Create":{"type":"object","properties":{"periodNumber":{"type":"integer","format":"int32"},"quarterNumber":{"type":"integer","format":"int32"},"yearLabel":{"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"}},"required":["endDate","periodNumber","quarterNumber","startDate","yearLabel"],"title":"Monthly Reporting Period"},"ApiReportingPeriodConfigurationRequest_Create":{"type":"object","properties":{"monthlyReportingPeriods":{"type":"array","items":{"$ref":"#/components/schemas/ApiMonthlyReportingPeriod_Create"}},"weeklyReportingPeriods":{"type":"array","items":{"$ref":"#/components/schemas/ApiWeeklyReportingPeriod_Create"}}},"required":["monthlyReportingPeriods","weeklyReportingPeriods"],"title":" Reporting Period Configuration Request"},"ApiWeeklyReportingPeriod_Create":{"type":"object","properties":{"weekNumber":{"type":"integer","format":"int32"},"yearLabel":{"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"}},"required":["endDate","startDate","weekNumber","yearLabel"],"title":"Weekly Reporting Period"},"ApiMonthlyReportingPeriod_Read":{"type":"object","properties":{"periodNumber":{"type":"integer","format":"int32"},"quarterNumber":{"type":"integer","format":"int32"},"yearLabel":{"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"}},"required":["endDate","periodNumber","quarterNumber","startDate","yearLabel"],"title":"Monthly Reporting Period"},"ApiReportingPeriodConfiguration_Read":{"type":"object","properties":{"id":{"type":"string"},"version":{"type":"integer","format":"int64"},"creationDate":{"type":"string","format":"date-time"},"lastModifiedDate":{"type":"string","format":"date-time"},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"monthlyReportingPeriods":{"type":"array","description":"List of monthly reporting periods.","items":{"$ref":"#/components/schemas/ApiMonthlyReportingPeriod_Read"}},"weeklyReportingPeriods":{"type":"array","description":"List of weekly reporting periods.","items":{"$ref":"#/components/schemas/ApiWeeklyReportingPeriod_Read"}},"status":{"type":"string","enum":["UPLOADED","VALIDATING","FAILED","COMPLETED"]}},"required":["version"],"title":"Reporting Period Configuration"},"ApiWeeklyReportingPeriod_Read":{"type":"object","properties":{"weekNumber":{"type":"integer","format":"int32"},"yearLabel":{"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"}},"required":["endDate","startDate","weekNumber","yearLabel"],"title":"Weekly Reporting Period"},"ApiPageApiReportingPeriodConfiguration_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiReportingPeriodConfiguration_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiPopulationTag_Create":{"type":"object","properties":{"analysisTypeId":{"type":"string"},"libraryId":{"type":"string","description":"The ID of the parent library."},"analysisId":{"type":"string","description":"The ID of the parent analysis."},"basePopulationId":{"type":"string","description":"The ID of the population the current population is based on."},"name":{"type":"string","description":"The name of the population.","maxLength":80,"minLength":0},"category":{"type":"string","description":"The category of the population.","maxLength":80,"minLength":0},"description":{"type":"string","description":"A description of the population.","maxLength":250,"minLength":0},"disabled":{"type":"boolean"},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Create","description":"The filter condition used to determine which entries are included in the population."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified."}},"required":["analysisTypeId","category","condition","name"],"title":"Population"},"ApiPageApiPopulationTag_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiPopulationTag_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiOrganization_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the organization.","maxLength":80,"minLength":0},"externalClientCode":{"type":"string","description":"The unique client ID applied to this organization.","maxLength":80,"minLength":0},"managerUserIds":{"type":"array","description":"Identifies users assigned to the organization manager role.","items":{"type":"string"}}},"required":["name"],"title":"Organization"},"ApiPageApiOrganization_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiOrganization_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiLibrary_Create":{"type":"object","properties":{"name":{"type":"string","description":"The current name of the library.","maxLength":80,"minLength":0},"basedOnLibraryId":{"type":"string","description":"Identifies the library that the new library is based on. This may be a user-created library or a MindBridge system library."},"convertSettings":{"type":"boolean","description":"Indicates whether or not settings from the selected base library should be converted for use with the selected account grouping."},"warningsDismissed":{"type":"boolean","description":"When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI."},"accountGroupingId":{"type":"string","description":"Identifies the account grouping used."},"analysisTypeIds":{"type":"array","description":"Identifies the analysis types used in the library.","items":{"type":"string"}},"defaultDelimiter":{"type":"string","description":"Identifies the default delimiter used in imported CSV files."},"controlPointSelectionPermission":{"type":"boolean","description":"When set to `true`, control points can be added or removed within each risk score."},"controlPointWeightPermission":{"type":"boolean","description":"When set to `true`, the weight of each control point can be adjusted within each risk score."},"controlPointSettingsPermission":{"type":"boolean","description":"When set to `true`, individual control point settings can be adjusted within each risk score."},"riskScoreAndGroupsSelectionPermission":{"type":"boolean","description":"When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited."},"riskRangeEditPermission":{"type":"boolean"},"riskScoreDisplay":{"type":"string","description":"Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.","enum":["HIGH_MEDIUM_LOW","PERCENTAGE"]}},"required":["accountGroupingId","analysisTypeIds","basedOnLibraryId","controlPointSelectionPermission","controlPointSettingsPermission","controlPointWeightPermission","name","riskScoreAndGroupsSelectionPermission","riskScoreDisplay","warningsDismissed"],"title":"Library"},"ApiPageApiLibrary_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiLibrary_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiJsonTable_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"headers":{"type":"array","items":{"type":"string"}},"currentSize":{"type":"integer","format":"int64","description":"The combined size of all data that has been appended to this JSON table."}},"required":["version"],"title":"JSON Table"},"ApiFileExport_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique file export identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the file export.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the file export.","readOnly":true},"fileName":{"type":"string","description":"The name of the file."},"size":{"type":"integer","format":"int64","description":"The size of the file."}},"required":["version"],"title":"File Result"},"ApiPageApiFileExport_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiFileExport_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiFileManagerDirectory_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"parentFileManagerEntityId":{"type":"string","description":"Identifies the parent directory. If NULL, the directory is positioned at the root level."},"name":{"type":"string","description":"The name of the directory."}},"required":["engagementId","name"],"title":"File Manager Directory"},"ApiFileMergeRequest_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"parentFileManagerEntityId":{"type":"string","description":"Identifies the parent directory. If NULL, the directory is positioned at the root level."},"outputFileName":{"type":"string","description":"The name of the file being generated in the requested merge operation."},"fileColumnMappings":{"type":"object","additionalProperties":{"type":"array","deprecated":true,"items":{"type":"integer","format":"int32","deprecated":true}},"deprecated":true,"description":"**Deprecated: use mappings instead.** Reference to the files and the columns to include in the merge operation."},"mappings":{"type":"array","description":"Ordered list of file/column selections to merge (each entry has fileManagerFileId and its column indexes).","items":{"$ref":"#/components/schemas/FileMergeMapping_Create"}}},"required":["engagementId","outputFileName"],"title":"File Merge Request"},"FileMergeMapping_Create":{"type":"object","properties":{"fileManagerFileId":{"type":"string","description":"The file manager file id to merge"},"columns":{"type":"array","description":"Columns to include from this file, in order","items":{"type":"integer","format":"int32"}}},"required":["columns","fileManagerFileId"],"title":"File Merge Mapping"},"ApiPageApiFileManagerEntity_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ApiFileManagerDirectory_Read"},{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}]}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"CreateApiFileManagerFileFromJsonTableRequest_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the newly created file manager file."},"engagementId":{"type":"string","description":"Identifies the associated engagement to import the formatted file into."},"parentFileManagerEntityId":{"type":"string","description":"Identifies the file manager entity that will be the parent of the newly created file."},"jsonTableId":{"type":"string","description":"Identifies the JSON table to be formatted into a file."}},"required":["engagementId","jsonTableId","name"],"title":"Create File From JSON Table Request"},"ApiCsvConfiguration_Create":{"type":"object","properties":{"delimiter":{"type":"string","description":"The character used to separate entries."},"quote":{"type":"string","description":"The character used to encapsulate an entry."},"quoteEscape":{"type":"string","description":"The character used to escape the quote character."},"quoteEscapeEscape":{"type":"string","description":"The character used to escape the quote escape character."}},"required":["delimiter","quote","quoteEscape"],"title":"CSV Configuration"},"ApiDataTableExportToFileManagerRequest_Create":{"type":"object","properties":{"dataTableId":{"type":"string","description":"The ID of the Data Table to export data from."},"engagementId":{"type":"string","description":"The engagement that the Data Table belongs to."},"name":{"type":"string","description":"The name for the exported CSV file without extension."},"parentFileManagerEntityId":{"type":"string","description":"The ID of the File Manager directory to place the exported file in. If null, the file is placed in the engagement's root directory."},"query":{"$ref":"#/components/schemas/MindBridgeQueryTerm","description":"An optional filter to apply to the data before exporting."},"sort":{"$ref":"#/components/schemas/ApiDataTableQuerySortOrder_Create","description":"An optional sort order to apply to the exported rows."},"fields":{"type":"array","description":"The list of field names (columns) to include in the export.","items":{"type":"string"}},"limit":{"type":"integer","format":"int32","description":"The maximum number of rows to export.","minimum":1},"csvConfiguration":{"$ref":"#/components/schemas/ApiCsvConfiguration_Create","description":"The configuration to use when generating the CSV file."},"innerListCsvConfiguration":{"$ref":"#/components/schemas/ApiCsvConfiguration_Create","description":"The configuration to use when formatting list values within cells in the CSV file."}},"required":["dataTableId","engagementId","fields","name"],"title":"Data Table Export to File Manager Request"},"ApiDataTableQuerySortOrder_Create":{"type":"object","properties":{"field":{"type":"string","description":"The data table column."},"direction":{"type":"string","description":"How the column will be sorted.","enum":["ASC","DESC"]}},"required":["direction","field"],"title":"Data Table Query Sort Order"},"ShieldQueryTerm_Create":{"type":"object","properties":{"operator":{"type":"string","enum":["$eq","$ne","$gt","$gte","$lt","$lte","$contains","$ncontains","$in","$nin","$flags","$keyword_prefix","$keyword_prefix_not","$isubstr","$iprefix","$niprefix","$between","$nbetween","$and","$or","$population","$not_population",null]}},"required":["operator"]},"ApiFileManagerFile_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"parentFileManagerEntityId":{"type":"string","description":"Identifies the parent directory. If NULL, the directory is positioned at the root level."},"name":{"type":"string","description":"The current name of the file, excluding the extension."}},"required":["engagementId","name"],"title":"File Manager File"},"CreateApiFileManagerFileFromChunkedFileRequest_Create":{"type":"object","properties":{"chunkedFileId":{"type":"string"},"apiFileManagerFile":{"$ref":"#/components/schemas/ApiFileManagerFile_Create"}},"required":["apiFileManagerFile","chunkedFileId"],"title":"Create File From Chunked File Request"},"ApiBasicMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}}},"title":"Table Metadata Basic Metrics"},"ApiColumnData_Read":{"type":"object","properties":{"columnName":{"type":"string","description":"The name of the column."},"position":{"type":"integer","format":"int32","description":"The index of the column."},"synthetic":{"type":"boolean","description":"If `true` this column was generated, as opposed to being a part of the original data."},"rowSample":{"type":"array","description":"A list of values from this column across multiple rows. All values are distinct.","items":{"type":"string"}},"columnMetadata":{"$ref":"#/components/schemas/ApiColumnMetadata_Read","description":"A collection of metrics."}},"title":"Column Metadata"},"ApiColumnDateTimeFormat_Read":{"type":"object","properties":{"selected":{"type":"boolean","description":"If true, this format was selected during column mapping as the correct format for this column."},"customFormatPattern":{"type":"string","description":"The pattern of this date format."},"sampleRawValues":{"type":"array","description":"A list of values in this column.","items":{"type":"string"}},"sampleConvertedValues":{"type":"array","description":"A list of date time values derived by parsing the text using this format.","items":{"type":"string","format":"date-time"}}},"title":"Table Metadata Date Time Format"},"ApiColumnMetadata_Read":{"type":"object","properties":{"cellLengthMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding cells that are larger than 2000 characters in the column."},"dataTypeMetrics":{"$ref":"#/components/schemas/ApiDataTypeMetrics_Read","description":"Metrics regarding the data types of column values."},"densityMetrics":{"$ref":"#/components/schemas/ApiDensityMetrics_Read","description":"Metrics regarding the density of column values."},"distinctValueMetrics":{"$ref":"#/components/schemas/ApiDistinctValueMetrics_Read","description":"Metrics regarding the uniqueness of column values."},"nullValueMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding “null” values in the column."},"scientificNotationMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding the use of scientific notation in the column."},"specialCharacterMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding the use of special characters in the column."}},"title":"Column Metadata Metrics"},"ApiCountMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."}},"title":"Table Metadata Count Metrics"},"ApiCurrencyFormat_Read":{"type":"object","properties":{"decimalCharacter":{"type":"string","description":"The character used as a decimal separator."},"nonDecimalDelimiters":{"type":"array","description":"Non decimal separator special characters, including currency and grouping characters.","items":{"type":"string"},"uniqueItems":true},"ambiguousDelimiters":{"type":"array","description":"A list of possible delimiter characters, if multiple possible candidates are available.","items":{"type":"string"},"uniqueItems":true},"example":{"type":"string","description":"An example value."}},"title":"Table Metadata Currency Format"},"ApiDataPreview_Read":{"type":"object","properties":{"row":{"type":"integer","format":"int64","description":"The row number within the table."},"column":{"type":"integer","format":"int32","description":"The column index within the row."},"data":{"type":"string","description":"The value within the target row."}},"title":"Table Metadata Data Preview"},"ApiDataTypeMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"nonNullValueCount":{"type":"integer","format":"int64","description":"The number of non-null values in this column."},"typeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of column type to number of occurrences. A single column value can match multiple types."},"textTypeDetails":{"$ref":"#/components/schemas/ApiTextTypeDetails_Read","description":"Metrics regarding the text type values in this column."},"numericTypeDetails":{"$ref":"#/components/schemas/ApiNumericTypeDetails_Read","description":"Metrics regarding the number type values in this column."},"dateTypeDetails":{"$ref":"#/components/schemas/ApiDateTypeDetails_Read","description":"Metrics regarding the date type values in this column."},"detectedTypes":{"type":"array","description":"A list of all detected types in this column.","items":{"type":"string","enum":["TEXT","NUMBER","DATE","UNKNOWN","FLOAT64"]}},"dominantType":{"type":"string","description":"The type determined to be the most prevalent in this column.","enum":["TEXT","NUMBER","DATE","UNKNOWN","FLOAT64"]}},"title":"Table Metadata Data Type Metrics"},"ApiDateTypeDetails_Read":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeZonedDateTime_Read","description":"A pair of values representing the earliest and latest values within this column."},"ambiguousDateTimeFormats":{"type":"array","description":"A list of possible date time formats, if multiple possible candidates are available.","items":{"$ref":"#/components/schemas/ApiColumnDateTimeFormat_Read"}},"unambiguousDateTimeFormats":{"type":"array","description":"A list of possible date time formats, if multiple possible candidates are available.","items":{"$ref":"#/components/schemas/ApiColumnDateTimeFormat_Read"}}},"title":"Table Metadata Date Type Details"},"ApiDensityMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"density":{"type":"number","format":"float","description":"The percentage density of values against blanks, represented as decimal between 1 and 0."},"blanks":{"type":"integer","format":"int64","description":"The number of blank values."}},"title":"Table Metadata Density Metrics"},"ApiDistinctValueMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."}},"title":"Table Metadata Distinct Metrics"},"ApiFileInfo":{"type":"object","discriminator":{"propertyName":"type","mapping":{"FILE_INFO":"#/components/schemas/ApiFileInfo","TABULAR_FILE_INFO":"#/components/schemas/ApiTabularFileInfo_Read"}},"properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"The type of file info entity.","enum":["FILE_INFO","TABULAR_FILE_INFO"],"title":"File Info Type"},"name":{"type":"string","description":"The name of the underlying file or table."},"formatDetected":{"type":"boolean","description":"When `true` a known grouped format was detected."},"format":{"type":"string","description":"The grouped format that was detected.","enum":["QUICKBOOKS_JOURNAL","QUICKBOOKS_JOURNAL_2024","QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT","SAGE50_LEDGER","SAGE50_TRANSACTIONS","CCH_ACCOUNT_LIST","MS_DYNAMICS_JOURNAL","SAGE50_UK"]}},"required":["version"],"title":"File Info"},"ApiFileInfo_Read":{"type":"object","discriminator":{"propertyName":"type","mapping":{"FILE_INFO":"#/components/schemas/ApiFileInfo","TABULAR_FILE_INFO":"#/components/schemas/ApiTabularFileInfo_Read"}},"properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"The type of file info entity.","enum":["FILE_INFO","TABULAR_FILE_INFO"],"title":"File Info Type"},"name":{"type":"string","description":"The name of the underlying file or table."},"formatDetected":{"type":"boolean","description":"When `true` a known grouped format was detected."},"format":{"type":"string","description":"The grouped format that was detected.","enum":["QUICKBOOKS_JOURNAL","QUICKBOOKS_JOURNAL_2024","QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT","SAGE50_LEDGER","SAGE50_TRANSACTIONS","CCH_ACCOUNT_LIST","MS_DYNAMICS_JOURNAL","SAGE50_UK"]}},"required":["version"],"title":"File Info"},"ApiHistogramMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"histogram":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of the number of columns to the number of rows with that many columns, in the case of unevenColumnsMetrics."}},"title":"Table Metadata Histogram Metrics"},"ApiNumericTypeDetails_Read":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeBigDecimal_Read","description":"A pair of values representing the min and max values within this column."},"currencyFormat":{"$ref":"#/components/schemas/ApiCurrencyFormat_Read","description":"Metadata on the detected number format of this column."},"examplePairFromCurrencyFormatter":{"type":"array","description":"A pair of values as examples in the event that two or more unambiguous number formats are detected in the same column.","items":{"type":"string"}},"sum":{"type":"number","description":"The sum of all values in this column, up to a maximum of 10e50. Values smaller than 10e-50 will be rounded up."},"cappedSum":{"type":"boolean","description":"If `true` then the sum is larger than 10e50."},"cappedMax":{"type":"boolean","description":"If `true` then at least one individual value is larger than 10e50."}},"title":"Table Metadata Numeric Type Details"},"ApiOverallDataTypeMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"cellTypeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of data types to the number of cells in the table of that data type."},"columnTypeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"A map of data types to the number of columns in the table of that data type."},"totalRecords":{"type":"integer","format":"int64","description":"The total number of values."},"blankRecords":{"type":"integer","format":"int64","description":"The number of blank values."},"columnCount":{"type":"integer","format":"int32","description":"The number of columns."},"totalRows":{"type":"integer","format":"int64","description":"The total number of rows."}},"title":"Table Metadata Overall Data Type Metrics"},"ApiPageApiFileInfo_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ApiFileInfo_Read"},{"$ref":"#/components/schemas/ApiTabularFileInfo_Read"}]}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiSheetMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"sheetNames":{"type":"array","description":"A list of sheet names within the underlying Excel file.","items":{"type":"string"}},"validSheets":{"type":"array","description":"A list of usable sheet names within the underlying Excel file.","items":{"type":"string"}}},"title":"Table Metadata Sheet Metrics"},"ApiTableMetadata_Read":{"type":"object","properties":{"cellLengthMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding cells that are larger than 2000 characters in the table."},"densityMetrics":{"$ref":"#/components/schemas/ApiDensityMetrics_Read","description":"Metrics regarding whole table density."},"inconsistentDateMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding inconsistent date formats within columns for the entire table."},"nullValueMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding “null” values across the entire table."},"numericColumnMetrics":{"$ref":"#/components/schemas/ApiBasicMetrics_Read","description":"Metrics regarding numeric columns within the table."},"overallDataTypeMetrics":{"$ref":"#/components/schemas/ApiOverallDataTypeMetrics_Read","description":"Metrics regarding detected data types across the entire table."},"scientificNotationMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding scientific notation across the entire table."},"sheetMetrics":{"$ref":"#/components/schemas/ApiSheetMetrics_Read","description":"Metrics regarding excel sheets within the underlying excel file."},"specialCharacterMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding special characters across the entire table."},"unevenColumnsMetrics":{"$ref":"#/components/schemas/ApiHistogramMetrics_Read","description":"Metrics regarding column length by row."}},"title":"Table Metadata"},"ApiTabularFileInfo_Read":{"allOf":[{"$ref":"#/components/schemas/ApiFileInfo_Read"},{"type":"object","properties":{"headerRowIndex":{"type":"integer","format":"int32","description":"The row number of the first detected header."},"firstLine":{"type":"string","description":"The first line of the table."},"delimiter":{"type":"string","description":"The delimiter character used to separate cells. Only populated when the underlying file is a CSV file."},"lastNonBlankRowIndex":{"type":"integer","format":"int64","description":"The row number of the last row that isn't blank."},"tableMetadata":{"$ref":"#/components/schemas/ApiTableMetadata_Read","description":"A collection of metadata describing the table as a whole."},"columnData":{"type":"array","description":"A list of column metadata entities, describing each column.","items":{"$ref":"#/components/schemas/ApiColumnData_Read"}},"rowContentSnippets":{"type":"array","description":"A list of sample rows from the underlying file.","items":{"type":"array","items":{"type":"string"}}}}},{"$ref":"#/components/schemas/ApiFileInfo"}],"required":["version"],"title":"Tabular File Info"},"ApiTextTypeDetails_Read":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeInteger_Read","description":"A pair of values representing the min and max length of text values within this column."}},"title":"Table Metadata Text Type Details"},"RangeBigDecimal_Read":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}}},"RangeInteger_Read":{"type":"object","properties":{"min":{"type":"integer","format":"int32"},"max":{"type":"integer","format":"int32"}}},"RangeZonedDateTime_Read":{"type":"object","properties":{"min":{"type":"string","format":"date-time"},"max":{"type":"string","format":"date-time"}}},"ApiAccountingPeriod_Create":{"type":"object","properties":{"fiscalStartMonth":{"type":"integer","format":"int32","description":"The month that the fiscal period begins."},"fiscalStartDay":{"type":"integer","format":"int32","description":"The date of the month that the fiscal period begins."},"frequency":{"type":"string","description":"The frequency with which your client's financial data is reported.","enum":["ANNUAL","SEMI_ANNUAL","QUARTERLY","MONTHLY","THIRTEEN_PERIODS"]}},"required":["fiscalStartDay","fiscalStartMonth","frequency"],"title":"Accounting Period"},"ApiEngagement_Create":{"type":"object","properties":{"organizationId":{"type":"string","description":"Identifies the organization."},"name":{"type":"string","description":"The name of the engagement.","maxLength":80,"minLength":0},"billingCode":{"type":"string","description":"A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage."},"libraryId":{"type":"string","description":"Identifies the library."},"accountingPeriod":{"$ref":"#/components/schemas/ApiAccountingPeriod_Create","description":"Details about the accounting period."},"auditPeriodEndDate":{"type":"string","format":"date","description":"The last day of the occurring audit."},"accountingPackage":{"type":"string","description":"The ERP or financial management system that your client is using."},"industry":{"type":"string","description":"The type of industry that your client operates within."},"engagementLeadId":{"type":"string","description":"Identifies the user who will lead the engagement."},"settingsBasedOnEngagementId":{"type":"string","description":"Identifies the engagement that the settings are based on."},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analyses use a standard reporting period."},"auditorIds":{"type":"array","description":"Identifies the users who will act as auditors in the engagement.","items":{"type":"string"}}},"required":["accountingPackage","auditPeriodEndDate","engagementLeadId","industry","libraryId","name","organizationId"],"title":"Engagement"},"ApiPageApiEngagement_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiEngagement_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiEngagementAccountGroup_Create":{"type":"object","properties":{"engagementAccountGroupingId":{"type":"string","description":"The unique identifier for the engagement account grouping that the engagement account group belongs to."},"code":{"type":"string","description":"The account code for this account group."},"description":{"type":"object","additionalProperties":{"type":"string"},"description":"A description of the account code for this account group."},"parentCode":{"type":"string","description":"The parent code for this account group."},"macCode":{"type":"string","description":"The MAC code mapped to this account group."},"hidden":{"type":"boolean","description":"When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import."},"alias":{"type":"string","description":"A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping."}},"required":["code","description","engagementAccountGroupingId","hidden","parentCode"],"title":"Engagement Account Group"},"ApiPageApiEngagementAccountGroup_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiAsyncResult":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"Indicates the type of job being run.","enum":["ANALYSIS_RUN","ANALYSIS_SOURCE_INGESTION","ADMIN_REPORT","DATA_TABLE_EXPORT","ANALYSIS_ROLL_FORWARD","GDPDU_UNPACK_JOB","ACCOUNT_GROUPING_EXPORT","ACCOUNT_MAPPING_EXPORT","DATA_TRANSFORMATION_JOB","CONNECTION_TEST","CONNECTION_TABLES","DATA_TABLE"]},"status":{"type":"string","description":"Indicates the current state of the job.","enum":["IN_PROGRESS","COMPLETE","ERROR"]},"entityId":{"type":"string","description":"Identifies the entity used in the job."},"entityType":{"type":"string","description":"Identifies the entity type used in the job.","enum":["ORGANIZATION","ENGAGEMENT","ANALYSIS","ANALYSIS_RESULT","ANALYSIS_SOURCE","FILE_RESULT","GDPDU_UNPACK_JOB","ACCOUNT_GROUPING","ENGAGEMENT_ACCOUNT_GROUPING","FILE_MANAGER_FILE","CONNECTION_TEST_RESULT","CONNECTION_TABLES_RESULT","DATA_TABLE"]},"error":{"type":"string","description":"The reason why the async job failed."},"errorMessage":{"type":"string"}},"required":["version"],"title":"Async Result"},"ApiUserInfo":{"type":"object","properties":{"userId":{"type":"string","description":"Identifies the user."},"userName":{"type":"string","description":"The name of the user."}},"title":"User Info"},"ApiEngagementAccountGrouping_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","description":"The unique identifier of the engagement that this engagement account grouping belongs to."},"accountGroupingId":{"type":"string","description":"The unique identifier of the account grouping on which this is based."},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account grouping."},"codeDisplayName":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account code hierarchy system used within the dataset."},"delimiter":{"type":"string","description":"The delimiter character used to separate each category level in an account grouping code."}},"required":["version"],"title":"Engagement Account Grouping"},"ApiPageApiEngagementAccountGrouping_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiEngagementAccountGrouping_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiDatabricksAuthorization_Create":{"type":"object","properties":{"connectionId":{"type":"string","description":"The ID of the Connection this authorization belongs to."},"authType":{"type":"string","description":"The authentication method to use. Possible values: PAT, OAUTH_M2M.","enum":["PAT","OAUTH_M2M"]},"host":{"type":"string","description":"The Databricks server hostname."},"port":{"type":"integer","format":"int32","description":"The port number for the Databricks connection. Typically 443."},"httpPath":{"type":"string","description":"The HTTP path for the Databricks SQL warehouse or cluster."},"accessToken":{"type":"string","description":"The personal access token for PAT authentication.","writeOnly":true},"clientId":{"type":"string","description":"The OAuth client ID for OAUTH_M2M authentication."},"clientSecret":{"type":"string","description":"The OAuth client secret for OAUTH_M2M authentication.","writeOnly":true}},"required":["authType","connectionId","host","httpPath"],"title":"Databricks Authorization"},"ApiPageApiDatabricksAuthorization_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ActionableErrorResponse":{"type":"object","properties":{"type":{"type":"string","description":"Indicates the type of error that occurred. Type values are formatted as URLs."},"title":{"type":"string","description":"A description of the error."},"problems":{"type":"array","description":"The reason(s) why the error occurred.","items":{"$ref":"#/components/schemas/Problem"}},"instance":{"type":"string","description":"A unique identifier for this request."},"status":{"type":"integer","format":"int32","description":"The HTTP status code determined by the error type."},"origin":{"type":"string","description":"The endpoint where this request originated from."},"problemCount":{"type":"integer","format":"int32","description":"The total number of problems."},"entityType":{"type":"string","description":"The type of entity impacted by the error."},"entityId":{"type":"string","description":"Identifies the entity impacted by the error."}}},"Problem":{"type":"object","properties":{"problemType":{"type":"string","description":"The type of problem.","enum":["UNKNOWN","ILLEGAL_ARGUMENT","CANNOT_DELETE","GREATER_VALUE_REQUIRED","LESS_VALUE_REQUIRED","NON_UNIQUE_VALUE","USER_EMAIL_ALREADY_EXISTS","INCORRECT_DATA_TYPE","RATIO_CONVERSION_FAILED","RISK_SCORE_FILTER_CONVERSION_FAILED","FILTER_CONVERSION_FAILED","POPULATION_CONVERSION_FAILED","INSUFFICIENT_PERMISSION","ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS","ACCOUNT_GROUPING_IN_USE_BY_LIBRARY","INVALID_ACCOUNT_GROUPING_FILE","DELIVERY_FAILURE","INVALID_STATE"]},"severity":{"type":"string","description":"Indicates how severe the problem is.","enum":["WARNING","ERROR"]},"entityType":{"type":"string","description":"The type of entity impacted by the problem."},"entityId":{"type":"string","description":"Identifies the entity impacted by the problem."},"identifier":{"type":"string","description":"Identifies the field causing the problem."},"values":{"type":"array","description":"Identifies the values causing the problem.","items":{"type":"string"}},"reason":{"type":"string","description":"The reason(s) why the problem occurred."},"suggestedValues":{"type":"array","description":"A suggested set of values to assist in resolving the problem.","items":{"type":"string"}},"problemCount":{"type":"integer","format":"int32","description":"The total number of occurrences of this problem."}}},"ApiCsvConfiguration":{"type":"object","properties":{"delimiter":{"type":"string","description":"The character used to separate entries."},"quote":{"type":"string","description":"The character used to encapsulate an entry."},"quoteEscape":{"type":"string","description":"The character used to escape the quote character."},"quoteEscapeEscape":{"type":"string","description":"The character used to escape the quote escape character."}},"required":["delimiter","quote","quoteEscape"],"title":"CSV Configuration"},"ApiDataTableExportRequest":{"type":"object","properties":{"query":{"$ref":"#/components/schemas/MindBridgeQueryTerm","description":"The MindBridge QL query used to filter data in the data table."},"sort":{"$ref":"#/components/schemas/ApiDataTableQuerySortOrder","description":"Indicates how the data will be sorted.\n\nDefault sort order = ascending"},"fields":{"type":"array","description":"The data table fields to be included in the results.","items":{"type":"string"}},"limit":{"type":"integer","format":"int32","description":"The number of results to be returned.","minimum":1},"csvConfiguration":{"$ref":"#/components/schemas/ApiCsvConfiguration","description":"The configuration to use when generating the CSV file."},"innerListCsvConfiguration":{"$ref":"#/components/schemas/ApiCsvConfiguration","description":"The configuration to use when formatting lists within cells in the CSV file."}},"required":["fields"],"title":"Data Table Export Request"},"ApiDataTableQuerySortOrder":{"type":"object","properties":{"field":{"type":"string","description":"The data table column."},"direction":{"type":"string","description":"How the column will be sorted.","enum":["ASC","DESC"]}},"required":["direction","field"],"title":"Data Table Query Sort Order"},"ShieldQueryTerm":{"type":"object","properties":{"operator":{"type":"string","enum":["$eq","$ne","$gt","$gte","$lt","$lte","$contains","$ncontains","$in","$nin","$flags","$keyword_prefix","$keyword_prefix_not","$isubstr","$iprefix","$niprefix","$between","$nbetween","$and","$or","$population","$not_population",null]}},"required":["operator"]},"ApiDataTablePage":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","additionalProperties":{}}}}},"ApiDataTableQuerySortOrder_Read":{"type":"object","properties":{"field":{"type":"string","description":"The data table column."},"direction":{"type":"string","description":"How the column will be sorted.","enum":["ASC","DESC"]}},"required":["direction","field"],"title":"Data Table Query Sort Order"},"ApiDataTableQuery_Read":{"type":"object","properties":{"query":{"$ref":"#/components/schemas/MindBridgeQueryTerm","description":"The MindBridge QL query used to filter data in the data table."},"page":{"type":"integer","format":"int32","description":"The specific page of results. This operates on a zero-based page index (0..N).","minimum":0},"pageSize":{"type":"integer","format":"int32","description":"The number of results to be returned on each page.","maximum":100,"minimum":1},"sort":{"$ref":"#/components/schemas/ApiDataTableQuerySortOrder_Read","description":"Indicates how the data will be sorted.\n\nDefault sort order = ascending"},"fields":{"type":"array","description":"The data table fields to be included in the results.","items":{"type":"string"}},"excludeFields":{"type":"array","items":{"type":"string"}}},"required":["fields"],"title":"Data Table Query"},"ApiDataTableColumn_Read":{"type":"object","properties":{"originalName":{"type":"string","description":"The original field name, derived from the source file, risk score name, or similar source."},"field":{"type":"string","description":"The column name."},"mindBridgeField":{"type":"string","description":"The MindBridge field name that this column is mapped to."},"type":{"type":"string","description":"The type of data found in the column.","enum":["STRING","DATE","DATE_TIME","BOOLEAN","INT16","INT32","INT64","FLOAT32","FLOAT64","MONEY_100","PERCENTAGE_FIXED_POINT","ARRAY_STRINGS","ARRAY_INT64","KEYWORD_SEARCH","OBJECTID","BOOLEAN_FLAGS","MAP_SCALARS","LEGACY_ACCOUNT_TAG_EFFECTS","JSONB"]},"nullable":{"type":"boolean","description":"Indicates whether or not NULL values are allowed."},"equalitySearch":{"type":"boolean","description":"Indicates whether or not a search can be performed based on two equal operands."},"rangeSearch":{"type":"boolean","description":"Indicates whether or not a search can be performed on a value-based comparison."},"sortable":{"type":"boolean","description":"Indicates whether or not the data table can be sorted by this column."},"containsSearch":{"type":"boolean","description":"Indicates whether or not a value-based search can be performed."},"keywordSearch":{"type":"boolean","description":"Indicates whether or not a keyword search can be performed."},"caseInsensitiveSubstringSearch":{"type":"boolean","description":"Indicates whether or not a case insensitive search can be performed on a substring."},"caseInsensitivePrefixSearch":{"type":"boolean","description":"Indicates whether or not a case insensitive search can be performed on a prefix."},"filterOnly":{"type":"boolean","description":"Indicates whether a field can only be used as part of a filter."},"typeaheadDataTableId":{"type":"string","description":"The ID of the typeahead table that this column references."}},"title":"Data Table Column"},"ApiDataTable_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisId":{"type":"string","description":"Identifies the associated analysis."},"analysisResultId":{"type":"string","description":"Identifies the associated analysis results."},"logicalName":{"type":"string","description":"The name of the data table."},"type":{"type":"string","description":"The type of data table."},"columns":{"type":"array","description":"Details about the data table columns.","items":{"$ref":"#/components/schemas/ApiDataTableColumn_Read"}}},"title":"Data Table"},"ApiPageApiDataTable_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiDataTable_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiConnection_Create":{"type":"object","properties":{"type":{"type":"string","description":"The type of external connection.","enum":["DATABRICKS","MINDBRIDGE_DATA_TABLES"]}},"required":["type"],"title":"Connection"},"ApiConnection_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"The type of external connection.","enum":["DATABRICKS","MINDBRIDGE_DATA_TABLES"]}},"required":["type","version"],"title":"Connection"},"ApiConnectionDataRequest_Create":{"type":"object","properties":{"tableId":{"type":"string","description":"The identifier of the table to retrieve data from."},"engagementId":{"type":"string","description":"Identifies the engagement that the resulting Data Table will be associated with."},"tabularSchemaHint":{"$ref":"#/components/schemas/ApiTabularSchema_Create","description":"Optional schema hint describing expected column types."},"filter":{"$ref":"#/components/schemas/ShieldQueryTerm_Create","description":"Optional filter to apply to the data retrieval."},"limit":{"type":"integer","format":"int64","description":"Maximum number of rows to return."},"offset":{"type":"integer","format":"int64","description":"Number of rows to skip before returning results."}},"required":["engagementId","tableId"],"title":"Connection Data Request"},"ApiTabularSchemaColumn_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the column."},"columnType":{"type":"string","description":"The data type of the column.","enum":["STRING","DATE","DATE_TIME","BOOLEAN","INT16","INT32","INT64","FLOAT32","FLOAT64","MONEY_100","PERCENTAGE_FIXED_POINT","ARRAY_STRINGS","ARRAY_INT64","KEYWORD_SEARCH","OBJECTID","BOOLEAN_FLAGS","MAP_SCALARS","LEGACY_ACCOUNT_TAG_EFFECTS","JSONB"]},"nullable":{"type":"boolean","description":"Whether the column allows null values."}},"required":["columnType","name","nullable"],"title":"Tabular Schema Column"},"ApiTabularSchema_Create":{"type":"object","properties":{"columns":{"type":"array","description":"The list of column definitions for the table.","items":{"$ref":"#/components/schemas/ApiTabularSchemaColumn_Create"}}},"required":["columns"],"title":"Tabular Schema"},"ApiPageApiConnection_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiConnection_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiConnectionTestResult_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"connectionId":{"type":"string","description":"The ID of the Connection that was tested."},"message":{"type":"string","description":"A message describing the outcome of the connection test."}},"required":["version"],"title":"Connection Test Result"},"ApiPageApiConnectionTestResult_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiConnectionTestResult_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiConnectionTable_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"tablesResultId":{"type":"string","description":"The ID of the Connection Tables Result that discovered this table."},"connectionId":{"type":"string","description":"The ID of the Connection this table belongs to."},"tableId":{"type":"string","description":"The identifier of the table within the external data source."},"name":{"type":"string","description":"The display name of the table."},"schema":{"$ref":"#/components/schemas/ApiTabularSchema_Read","description":"The schema describing the columns of the table."}},"required":["connectionId","schema","tableId","tablesResultId","version"],"title":"Connection Table"},"ApiPageApiConnectionTable_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiConnectionTable_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiTabularSchemaColumn_Read":{"type":"object","properties":{"name":{"type":"string","description":"The name of the column."},"columnType":{"type":"string","description":"The data type of the column.","enum":["STRING","DATE","DATE_TIME","BOOLEAN","INT16","INT32","INT64","FLOAT32","FLOAT64","MONEY_100","PERCENTAGE_FIXED_POINT","ARRAY_STRINGS","ARRAY_INT64","KEYWORD_SEARCH","OBJECTID","BOOLEAN_FLAGS","MAP_SCALARS","LEGACY_ACCOUNT_TAG_EFFECTS","JSONB"]},"nullable":{"type":"boolean","description":"Whether the column allows null values."}},"required":["columnType","name","nullable"],"title":"Tabular Schema Column"},"ApiTabularSchema_Read":{"type":"object","properties":{"columns":{"type":"array","description":"The list of column definitions for the table.","items":{"$ref":"#/components/schemas/ApiTabularSchemaColumn_Read"}}},"required":["columns"],"title":"Tabular Schema"},"ApiConnectionTablesResult_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"connectionId":{"type":"string","description":"The ID of the Connection that this tables result belongs to."},"tableCount":{"type":"integer","format":"int32","description":"The total number of tables discovered from the connection."}},"required":["connectionId","tableCount","version"],"title":"Connection Tables Result"},"ApiPageApiConnectionTablesResult_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiConnectionTablesResult_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiConnectionDataSource_Create":{"type":"object","properties":{"connectionId":{"type":"string","description":"The ID of the Connection this data source belongs to."},"tableId":{"type":"string","description":"The identifier of the table within the external connection."},"schema":{"$ref":"#/components/schemas/ApiTabularSchema_Create","description":"The schema describing the columns of the table."}},"required":["connectionId","schema","tableId"],"title":"Connection Data Source"},"ApiConnectionDataSource_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"connectionId":{"type":"string","description":"The ID of the Connection this data source belongs to."},"tableId":{"type":"string","description":"The identifier of the table within the external connection."},"schema":{"$ref":"#/components/schemas/ApiTabularSchema_Read","description":"The schema describing the columns of the table."}},"required":["connectionId","schema","tableId","version"],"title":"Connection Data Source"},"ApiDataSourceDataRequest_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the engagement that the resulting Data Table will be associated with."},"filter":{"$ref":"#/components/schemas/ShieldQueryTerm_Create","description":"Optional filter to apply to the data retrieval. If not set, all rows are returned unfiltered."},"limit":{"type":"integer","format":"int64","description":"Maximum number of rows to return. If not set, all matching rows are returned.","minimum":0},"offset":{"type":"integer","format":"int64","description":"Number of rows to skip before returning results. If not set, results start from the first row.","minimum":0}},"required":["engagementId"],"title":"Data Source Data Request"},"ApiPageApiConnectionDataSource_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiConnectionDataSource_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiChunkedFile_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the chunked file."},"size":{"type":"integer","format":"int64","description":"The size of the chunked file.","minimum":0}},"required":["name","size"],"title":"Chunked File"},"ApiChunkedFilePart_Read":{"type":"object","properties":{"offset":{"type":"integer","format":"int64","description":"Indicates the start position of the file part in the chunked file.","minimum":0},"size":{"type":"integer","format":"int64","description":"The size of the file part.","minimum":0}},"title":"Chunked File Part"},"ApiChunkedFile_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"string","description":"The name of the chunked file."},"size":{"type":"integer","format":"int64","description":"The size of the chunked file.","minimum":0},"chunkedFileParts":{"type":"array","description":"The offset and size of the chunked file parts.","items":{"$ref":"#/components/schemas/ApiChunkedFilePart_Read"}}},"required":["name","size","version"],"title":"Chunked File"},"ApiChunkedFilePart":{"type":"object","properties":{"offset":{"type":"integer","format":"int64","description":"Indicates the start position of the file part in the chunked file.","minimum":0},"size":{"type":"integer","format":"int64","description":"The size of the file part.","minimum":0}},"title":"Chunked File Part"},"ApiPageApiChunkedFile_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiChunkedFile_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiPageApiAsyncResult_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiApiToken_Create":{"type":"object","properties":{"name":{"type":"string","description":"The token record's name. This will also be used as the API Token User's name."},"expiry":{"type":"string","format":"date-time","description":"The day on which the API token expires."},"allowedAddresses":{"type":"array","description":"Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.","items":{"type":"string"}},"permissions":{"type":"array","description":"The set of permissions that inform which endpoints this token is authorized to access.","items":{"type":"string","enum":["api.organizations.read","api.organizations.write","api.organizations.delete","api.engagements.read","api.engagements.write","api.engagements.delete","api.analyses.read","api.analyses.write","api.analyses.delete","api.analyses.run","api.analysis-sources.read","api.analysis-sources.write","api.analysis-sources.delete","api.file-manager.read","api.file-manager.write","api.file-manager.delete","api.reporting-period-config.read","api.reporting-period-config.write","api.reporting-period-config.delete","api.libraries.read","api.libraries.write","api.libraries.delete","api.account-groupings.read","api.account-groupings.write","api.account-groupings.delete","api.engagement-account-groupings.read","api.engagement-account-groupings.write","api.engagement-account-groupings.delete","api.users.read","api.users.write","api.users.delete","api.data-tables.read","api.api-tokens.read","api.api-tokens.write","api.api-tokens.delete","api.tasks.read","api.tasks.write","api.tasks.delete","api.admin-reports.run","api.analysis-types.read","api.analysis-source-types.read","api.analysis-type-configuration.read","api.analysis-type-configuration.write","api.analysis-type-configuration.delete","api.risk-ranges.read","api.risk-ranges.write","api.risk-ranges.delete","api.filters.read","api.filters.write","api.filters.delete","api.file-infos.read","api.webhooks.read","api.webhooks.write","api.webhooks.delete","api.connections.read","api.connections.write","api.connections.delete","api.connection-data-sources.read","api.connection-data-sources.write","api.connection-data-sources.delete","scim.user.read","scim.user.write","scim.user.delete","scim.user.schema"]}}},"required":["expiry","name","permissions"],"title":"API Token"},"CreateApiTokenResponse_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"userId":{"type":"string","description":"Identifies the API Token User associated with this token."},"name":{"type":"string","description":"The token record's name. This will also be used as the API Token User's name."},"partialToken":{"type":"string","description":"A partial representation of the API token."},"expiry":{"type":"string","format":"date-time","description":"The day on which the API token expires."},"allowedAddresses":{"type":"array","description":"Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.","items":{"type":"string"}},"permissions":{"type":"array","description":"The set of permissions that inform which endpoints this token is authorized to access.","items":{"type":"string","enum":["api.organizations.read","api.organizations.write","api.organizations.delete","api.engagements.read","api.engagements.write","api.engagements.delete","api.analyses.read","api.analyses.write","api.analyses.delete","api.analyses.run","api.analysis-sources.read","api.analysis-sources.write","api.analysis-sources.delete","api.file-manager.read","api.file-manager.write","api.file-manager.delete","api.reporting-period-config.read","api.reporting-period-config.write","api.reporting-period-config.delete","api.libraries.read","api.libraries.write","api.libraries.delete","api.account-groupings.read","api.account-groupings.write","api.account-groupings.delete","api.engagement-account-groupings.read","api.engagement-account-groupings.write","api.engagement-account-groupings.delete","api.users.read","api.users.write","api.users.delete","api.data-tables.read","api.api-tokens.read","api.api-tokens.write","api.api-tokens.delete","api.tasks.read","api.tasks.write","api.tasks.delete","api.admin-reports.run","api.analysis-types.read","api.analysis-source-types.read","api.analysis-type-configuration.read","api.analysis-type-configuration.write","api.analysis-type-configuration.delete","api.risk-ranges.read","api.risk-ranges.write","api.risk-ranges.delete","api.filters.read","api.filters.write","api.filters.delete","api.file-infos.read","api.webhooks.read","api.webhooks.write","api.webhooks.delete","api.connections.read","api.connections.write","api.connections.delete","api.connection-data-sources.read","api.connection-data-sources.write","api.connection-data-sources.delete","scim.user.read","scim.user.write","scim.user.delete","scim.user.schema"]}},"token":{"type":"string","description":"The API token.\n\n**Note:** The security of the API token is paramount. If compromised, contact your **App Admin** immediately."}},"required":["expiry","name","permissions","version"],"title":"API token creation response"},"ApiPageApiApiToken_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiApiToken_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiAnalysisType_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"string","description":"The name of the analysis type."},"interimName":{"type":"string","description":"The name of the analysis type when the analysis uses an interim time frame."},"description":{"type":"string","description":"The description of the analysis type."},"accountMappingRequired":{"type":"boolean","description":"Indicates whether or not account mapping must be performed."},"fundSupported":{"type":"boolean","description":"Indicates whether or not the analysis supports restricted and unrestricted funds."},"interimSupported":{"type":"boolean","description":"Indicates whether or not the analysis supports the interim time frame."},"periodicSupported":{"type":"boolean","description":"Indicates whether or not the analysis supports the periodic time frame."},"archived":{"type":"boolean","description":"Indicates whether or not the analysis type has been archived."},"maxPeriod":{"type":"integer","format":"int32","description":"A configuration value for the max analysis period."},"sourceConfigurations":{"type":"array","description":"A list of analysis source configurations that can be imported into the analysis, as determined by the analysis type.","items":{"$ref":"#/components/schemas/ApiSourceConfiguration_Read"}}},"required":["version"],"title":"Analysis Type"},"ApiPageApiAnalysisType_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysisType_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiSourceConfiguration_Read":{"type":"object","properties":{"sourceTypeId":{"type":"string","description":"The source type ID selected as part of this configuration."},"sourceScope":{"type":"string","description":"Indicates whether the source configuration applies to the current period, all of the prior periods, or the entire analysis.\n\n**Note**: Sources with an `ANALYSIS` scope should not provide an `analysisPeriodId`.","enum":["CURRENT_PERIOD","PRIOR_PERIOD","ANALYSIS"]},"required":{"type":"boolean","description":"When `true`, the analysis cannot be run until at least one analysis source with this source type in this source scope is present."},"postAnalysis":{"type":"boolean","description":"When `true`, this source configuration will be enabled after an analysis is run (not before)."},"interimOnly":{"type":"boolean","description":"When `true`, this source configuration only applies when the interim time frame is used (i.e., it has not been converted for use with a full time frame)."},"disableForInterim":{"type":"boolean","description":"When `true` and the interim time frame is used (i.e., it has not been converted for use with a full time frame), new analysis sources of this source type and source scope cannot be added."},"allowMultiple":{"type":"boolean","description":"When `true`, multiple versions of this analysis source type may be imported using this source scope."},"allowMultipleForPeriodic":{"type":"boolean","description":"When `true` and the periodic time frame is used, multiple versions of this analysis source type may be imported using this source scope."},"alternativeRequiredSourceTypes":{"type":"array","description":"A list of alternative analysis source types. If one of the alternatives is present for this source scope, then the `required` constraint is considered satisfied.","items":{"type":"string"},"uniqueItems":true},"tracksAdditionalDataEntries":{"type":"boolean","description":"When `true`, the `additionalDataColumnField` field is required upon importing an analysis source type."}},"title":"Source Configuration"},"ApiPageApiAnalysisTypeConfiguration_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysisTypeConfiguration_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiAnalysisSource_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisId":{"type":"string","description":"Identifies the associated analysis."},"analysisPeriodId":{"type":"string","description":"Identifies the analysis period within MindBridge."},"analysisSourceTypeId":{"type":"string","description":"Identifies the analysis source type."},"fileManagerFileId":{"type":"string","deprecated":true,"description":"Identifies the specific file manager file within MindBridge."},"additionalDataColumnField":{"type":"string","description":"When creating an additional data source type, this indicates which additional data column is being targeted."},"warningsIgnored":{"type":"boolean","description":"Indicates whether or not warnings should be ignored."},"targetWorkflowState":{"type":"string","description":"The state that the current workflow will advance to.","enum":["COMPLETED","CANCELLED","FAILED","STARTED","DETECTING_FORMAT","ANALYZING_COLUMNS","CHECKING_INTEGRITY","SCANNING_TRANSACTION_COMBINATIONS","PARSING","PARSING_ICEBERG","ANALYZING_EFFECTIVE_DATE_METRICS","FORMAT_DETECTION_COMPLETED","COLUMN_MAPPINGS_CONFIRMED","SETTINGS_CONFIRMED","PREPARING_ICEBERG","ANALYSIS_PERIOD_SELECTED","FUNDS_REVIEWED","RUNNING","UNPACK_COMPLETE","UPLOADED","FORMAT_DETECTED","COLUMNS_ANALYZED","INTEGRITY_CHECKED","PARSED","AUTHENTICATED","CONFIGURED","EFFECTIVE_DATE_METRICS_ANALYZED","DATA_VALIDATION_CONFIRMED"]},"applyDegrouper":{"type":"boolean","description":"Indicates whether or not the degrouper should be applied."},"proposedColumnMappings":{"type":"array","description":"Details about the proposed column mapping.","items":{"$ref":"#/components/schemas/ApiProposedColumnMapping_Create"}},"proposedVirtualColumns":{"type":"array","description":"Details about the proposed virtual columns added during the file import process.","items":{"oneOf":[{"$ref":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Create"},{"$ref":"#/components/schemas/ApiProposedJoinVirtualColumn_Create"},{"$ref":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Create"},{"$ref":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Create"}]}},"proposedAmbiguousColumnResolutions":{"type":"array","description":"Details about the virtual columns added during file ingestion.","items":{"$ref":"#/components/schemas/ApiProposedAmbiguousColumnResolution_Create"}},"proposedTransactionIdSelection":{"$ref":"#/components/schemas/ApiTransactionIdSelection_Create","description":"The proposed columns to include when selecting a transaction ID."}},"required":["analysisId","analysisSourceTypeId","engagementId","fileManagerFileId"],"title":"Analysis Source"},"ApiProposedAmbiguousColumnResolution_Create":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column with the proposed resolution.","minimum":0},"selectedFormat":{"type":"string","description":"The selected format of the proposed resolution."}},"required":["position","selectedFormat"],"title":"Proposed Ambiguous Column Resolution"},"ApiProposedColumnMapping_Create":{"type":"object","properties":{"columnPosition":{"type":"integer","format":"int32","description":"The position of the proposed column mapping in the original input file."},"virtualColumnIndex":{"type":"integer","format":"int32","description":"The position of the proposed virtual columns within the `proposedVirtualColumns` list."},"mindbridgeField":{"type":"string","description":"The MindBridge field that the data column should be mapped to."},"additionalColumnName":{"type":"string","description":"Proposed additional columns of data to be added to the analysis."}},"title":"Proposed Column Mapping"},"ApiProposedDuplicateVirtualColumn_Create":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Create"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be duplicated."}}}],"required":["columnIndex"],"title":"Proposed Duplicate Virtual Column"},"ApiProposedJoinVirtualColumn_Create":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Create"},{"type":"object","properties":{"columnIndices":{"type":"array","description":"The positions of the columns to be joined.","items":{"type":"integer","format":"int32"}},"delimiter":{"type":"string","description":"The character(s) that should be inserted to separate values."}}}],"required":["columnIndices","delimiter"],"title":"Proposed Join Virtual Column"},"ApiProposedSplitByDelimiterVirtualColumn_Create":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Create"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"delimiter":{"type":"string","description":"The character(s) that should be used to separate the string into parts."},"splitIndex":{"type":"integer","format":"int32","description":"The position of the part to be used as a virtual column."}}}],"required":["columnIndex","delimiter","splitIndex"],"title":"Proposed Split By Delimiter Virtual Column"},"ApiProposedSplitByPositionVirtualColumn_Create":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Create"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"startPosition":{"type":"integer","format":"int32","description":"The starting position of the substring to be used as the new column. **Inclusive**."},"endPosition":{"type":"integer","format":"int32","description":"The ending position of the substring to be used as the new column. **Exclusive**."}}}],"required":["columnIndex","endPosition","startPosition"],"title":"Proposed Split By Position Virtual Column"},"ApiProposedVirtualColumn_Create":{"type":"object","discriminator":{"propertyName":"type","mapping":{"DUPLICATE":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Create","JOIN":"#/components/schemas/ApiProposedJoinVirtualColumn_Create","SPLIT_BY_DELIMITER":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Create","SPLIT_BY_POSITION":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Create"}},"properties":{"name":{"type":"string","description":"The name of the proposed virtual column."},"type":{"type":"string","description":"The type of proposed virtual column.","enum":["DUPLICATE","SPLIT_BY_POSITION","SPLIT_BY_DELIMITER","JOIN"]}},"title":"Proposed Virtual Column"},"ApiTransactionIdSelection_Create":{"type":"object","properties":{"columnSelection":{"type":"array","description":"The columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"virtualColumnSelection":{"type":"array","description":"The virtual columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"type":{"type":"string","description":"The type used when selecting a transaction ID.","enum":["COMBINATION","RUNNING_TOTAL"]},"applySmartSplitter":{"type":"boolean","description":"Indicates whether or not the Smart Splitter was run when selecting a transaction ID."}},"required":["type"],"title":"Transaction ID Selection"},"ApiAmbiguousColumn_Read":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column with the resolution."},"ambiguousFormats":{"type":"array","description":"A list of ambiguous formats detected.","items":{"type":"string"}},"selectedFormat":{"type":"string","description":"The data format to be used in case of ambiguity."}},"title":"Ambiguous Column Resolution"},"ApiAnalysisSource_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisId":{"type":"string","description":"Identifies the associated analysis."},"analysisPeriodId":{"type":"string","description":"Identifies the analysis period within MindBridge."},"analysisSourceTypeId":{"type":"string","description":"Identifies the analysis source type."},"fileManagerFileId":{"type":"string","deprecated":true,"description":"Identifies the specific file manager file within MindBridge."},"additionalDataColumnField":{"type":"string","description":"When creating an additional data source type, this indicates which additional data column is being targeted."},"warningsIgnored":{"type":"boolean","description":"Indicates whether or not warnings should be ignored."},"warnings":{"type":"array","description":"Details about the warnings associated with the source.","items":{"$ref":"#/components/schemas/ApiMessage_Read"}},"errors":{"type":"array","description":"Details about the errors associated with the specific source.","items":{"$ref":"#/components/schemas/ApiMessage_Read"}},"workflowState":{"type":"string","description":"The current state of the workflow.","enum":["COMPLETED","CANCELLED","FAILED","STARTED","DETECTING_FORMAT","ANALYZING_COLUMNS","CHECKING_INTEGRITY","SCANNING_TRANSACTION_COMBINATIONS","PARSING","PARSING_ICEBERG","ANALYZING_EFFECTIVE_DATE_METRICS","FORMAT_DETECTION_COMPLETED","COLUMN_MAPPINGS_CONFIRMED","SETTINGS_CONFIRMED","PREPARING_ICEBERG","ANALYSIS_PERIOD_SELECTED","FUNDS_REVIEWED","RUNNING","UNPACK_COMPLETE","UPLOADED","FORMAT_DETECTED","COLUMNS_ANALYZED","INTEGRITY_CHECKED","PARSED","AUTHENTICATED","CONFIGURED","EFFECTIVE_DATE_METRICS_ANALYZED","DATA_VALIDATION_CONFIRMED"]},"targetWorkflowState":{"type":"string","description":"The state that the current workflow will advance to.","enum":["COMPLETED","CANCELLED","FAILED","STARTED","DETECTING_FORMAT","ANALYZING_COLUMNS","CHECKING_INTEGRITY","SCANNING_TRANSACTION_COMBINATIONS","PARSING","PARSING_ICEBERG","ANALYZING_EFFECTIVE_DATE_METRICS","FORMAT_DETECTION_COMPLETED","COLUMN_MAPPINGS_CONFIRMED","SETTINGS_CONFIRMED","PREPARING_ICEBERG","ANALYSIS_PERIOD_SELECTED","FUNDS_REVIEWED","RUNNING","UNPACK_COMPLETE","UPLOADED","FORMAT_DETECTED","COLUMNS_ANALYZED","INTEGRITY_CHECKED","PARSED","AUTHENTICATED","CONFIGURED","EFFECTIVE_DATE_METRICS_ANALYZED","DATA_VALIDATION_CONFIRMED"]},"detectedFormat":{"type":"string","description":"The data format that MindBridge detected.","enum":["QUICKBOOKS_JOURNAL","QUICKBOOKS_JOURNAL_2024","QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT","SAGE50_LEDGER","SAGE50_TRANSACTIONS","CCH_ACCOUNT_LIST","MS_DYNAMICS_JOURNAL","SAGE50_UK"]},"applyDegrouper":{"type":"boolean","description":"Indicates whether or not the degrouper should be applied."},"degrouperApplied":{"type":"boolean","description":"Indicates whether or not the degrouper was applied."},"fileInfo":{"description":"Details about the file being imported into MindBridge.","oneOf":[{"$ref":"#/components/schemas/ApiFileInfo_Read","deprecated":true},{"$ref":"#/components/schemas/ApiTabularFileInfo_Read"}]},"proposedColumnMappings":{"type":"array","description":"Details about the proposed column mapping.","items":{"$ref":"#/components/schemas/ApiProposedColumnMapping_Read"}},"columnMappings":{"type":"array","description":"Details about column mapping.","items":{"$ref":"#/components/schemas/ApiColumnMapping_Read"}},"proposedVirtualColumns":{"type":"array","description":"Details about the proposed virtual columns added during the file import process.","items":{"oneOf":[{"$ref":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiProposedJoinVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Read"}]}},"virtualColumns":{"type":"array","description":"Details about the virtual columns added during file ingestion. ","items":{"oneOf":[{"$ref":"#/components/schemas/ApiDuplicateVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiJoinVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiSplitByDelimiterVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiSplitByPositionVirtualColumn_Read"}]}},"proposedAmbiguousColumnResolutions":{"type":"array","description":"Details about the virtual columns added during file ingestion.","items":{"$ref":"#/components/schemas/ApiProposedAmbiguousColumnResolution_Read"}},"ambiguousColumnResolutions":{"type":"array","description":"Details about resolutions to ambiguity in a column.","items":{"$ref":"#/components/schemas/ApiAmbiguousColumn_Read"}},"proposedTransactionIdSelection":{"$ref":"#/components/schemas/ApiTransactionIdSelection_Read","description":"The proposed columns to include when selecting a transaction ID."},"transactionIdSelection":{"$ref":"#/components/schemas/ApiTransactionIdSelection_Read","description":"Details about transaction ID selection."},"fileInfoVersions":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of providing a set of file info IDs by their Analysis Source File Version."},"fileManagerFiles":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of providing a set of file manager file IDs by their Analysis Source File Version."}},"required":["analysisId","analysisSourceTypeId","engagementId","fileManagerFileId","version"],"title":"Analysis Source"},"ApiColumnMapping_Read":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column mapping."},"field":{"type":"string","description":"The column name."},"mindbridgeField":{"type":"string","description":"The MindBridge field that the data column was mapped to."},"mappingType":{"type":"string","description":"The method used to map the column.","enum":["AUTO","NOT_MAPPED","MANUAL"]},"additionalColumnName":{"type":"string","description":"Additional columns of data that were added to the analysis."}},"title":"Column Mapping"},"ApiDuplicateVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the duplicated column."}}}],"required":["columnIndex","name","type","version"],"title":"Duplicate Virtual Column"},"ApiJoinVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Read"},{"type":"object","properties":{"columnIndices":{"type":"array","description":"The position of the joined column.","items":{"type":"integer","format":"int32"}},"delimiter":{"type":"string","description":"The character(s) used to separate values."}}}],"required":["columnIndices","delimiter","name","type","version"],"title":"Join Virtual Column"},"ApiMessage_Read":{"type":"object","properties":{"code":{"type":"string","description":"Identifies the message type."},"defaultMessage":{"type":"string","description":"The message as it appears in MindBridge."}}},"ApiPageApiAnalysisSource_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysisSource_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiProposedAmbiguousColumnResolution_Read":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column with the proposed resolution.","minimum":0},"selectedFormat":{"type":"string","description":"The selected format of the proposed resolution."}},"required":["position","selectedFormat"],"title":"Proposed Ambiguous Column Resolution"},"ApiProposedColumnMapping_Read":{"type":"object","properties":{"columnPosition":{"type":"integer","format":"int32","description":"The position of the proposed column mapping in the original input file."},"virtualColumnIndex":{"type":"integer","format":"int32","description":"The position of the proposed virtual columns within the `proposedVirtualColumns` list."},"mindbridgeField":{"type":"string","description":"The MindBridge field that the data column should be mapped to."},"additionalColumnName":{"type":"string","description":"Proposed additional columns of data to be added to the analysis."}},"title":"Proposed Column Mapping"},"ApiProposedDuplicateVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be duplicated."}}}],"required":["columnIndex"],"title":"Proposed Duplicate Virtual Column"},"ApiProposedJoinVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Read"},{"type":"object","properties":{"columnIndices":{"type":"array","description":"The positions of the columns to be joined.","items":{"type":"integer","format":"int32"}},"delimiter":{"type":"string","description":"The character(s) that should be inserted to separate values."}}}],"required":["columnIndices","delimiter"],"title":"Proposed Join Virtual Column"},"ApiProposedSplitByDelimiterVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"delimiter":{"type":"string","description":"The character(s) that should be used to separate the string into parts."},"splitIndex":{"type":"integer","format":"int32","description":"The position of the part to be used as a virtual column."}}}],"required":["columnIndex","delimiter","splitIndex"],"title":"Proposed Split By Delimiter Virtual Column"},"ApiProposedSplitByPositionVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"startPosition":{"type":"integer","format":"int32","description":"The starting position of the substring to be used as the new column. **Inclusive**."},"endPosition":{"type":"integer","format":"int32","description":"The ending position of the substring to be used as the new column. **Exclusive**."}}}],"required":["columnIndex","endPosition","startPosition"],"title":"Proposed Split By Position Virtual Column"},"ApiProposedVirtualColumn_Read":{"type":"object","discriminator":{"propertyName":"type","mapping":{"DUPLICATE":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Read","JOIN":"#/components/schemas/ApiProposedJoinVirtualColumn_Read","SPLIT_BY_DELIMITER":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Read","SPLIT_BY_POSITION":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Read"}},"properties":{"name":{"type":"string","description":"The name of the proposed virtual column."},"type":{"type":"string","description":"The type of proposed virtual column.","enum":["DUPLICATE","SPLIT_BY_POSITION","SPLIT_BY_DELIMITER","JOIN"]}},"title":"Proposed Virtual Column"},"ApiSplitByDelimiterVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the split column."},"delimiter":{"type":"string","description":"The character(s) used to separate the string into parts."},"splitIndex":{"type":"integer","format":"int32","description":"The position of the part used as a virtual column."}}}],"required":["columnIndex","delimiter","name","splitIndex","type","version"],"title":"Split By Delimiter Virtual Column"},"ApiSplitByPositionVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the split column."},"startPosition":{"type":"integer","format":"int32","description":"The starting position of the substring in the new column. **Inclusive**."},"endPosition":{"type":"integer","format":"int32","description":"The ending position of the substring in the new column. **Exclusive**."}}}],"required":["columnIndex","endPosition","name","startPosition","type","version"],"title":"Split By Position Virtual Column"},"ApiTransactionIdSelection_Read":{"type":"object","properties":{"columnSelection":{"type":"array","description":"The columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"virtualColumnSelection":{"type":"array","description":"The virtual columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"type":{"type":"string","description":"The type used when selecting a transaction ID.","enum":["COMBINATION","RUNNING_TOTAL"]},"applySmartSplitter":{"type":"boolean","description":"Indicates whether or not the Smart Splitter was run when selecting a transaction ID."}},"required":["type"],"title":"Transaction ID Selection"},"ApiVirtualColumn_Read":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"index":{"type":"integer","format":"int32","description":"The position of the virtual column."},"name":{"type":"string","description":"The name of the virtual column."},"type":{"type":"string","description":"The type of virtual column.","enum":["DUPLICATE","SPLIT_BY_POSITION","SPLIT_BY_DELIMITER","JOIN"]}},"required":["name","type","version"],"title":"Virtual Column"},"ApiAnalysisSourceType_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"string","description":"The name of the analysis source type."},"interimName":{"type":"string","description":"The name of the analysis source type when the analysis uses an interim time frame."},"archived":{"type":"boolean","description":"Indicates whether or not the analysis source type is archived."},"features":{"type":"array","description":"A list of the features used when importing data for this analysis source type.","items":{"type":"string","enum":["FORMAT_DETECTION","DATA_VALIDATION","COLUMN_MAPPING","EFFECTIVE_DATE_METRICS","TRANSACTION_ID_SELECTION","PARSE","CONFIRM_SETTINGS","REVIEW_FUNDS"],"title":"Analysis Source Feature"},"uniqueItems":true},"columnDefinitions":{"type":"array","description":"A list of MindBridge column definitions that this analysis source type supports.","items":{"$ref":"#/components/schemas/ApiColumnDefinition_Read"}}},"required":["version"],"title":"Analysis Source Type"},"ApiColumnDefinition_Read":{"type":"object","properties":{"mindbridgeFieldName":{"type":"string","description":"The internal name of the analysis source type's column."},"mindbridgeFieldNameForNonMacGroupings":{"type":"string","description":"The alternative column name when a non-MAC based account grouping is used."},"type":{"type":"string","description":"The type of data this column accepts.","enum":["TEXT","NUMBER","DATE","UNKNOWN","FLOAT64"]},"required":{"type":"boolean","description":"Indicates whether or not this column is required."},"requiredForNonMacGroupings":{"type":"boolean","description":"Indicates whether or not this column is required when using a non-MAC based account grouping."},"allowBlanks":{"type":"boolean","description":"Indicates whether or not this column allows the source column to contain blank values."},"alternativeMappings":{"type":"array","description":"A list of alternative mappings, identified by their `mindbridgeFieldName`. If all of the alternatives are mapped, then this mapping's `required` constraint is considered satisfied. \n\n**Note**: This column may not be mapped if any alternative is also mapped.","items":{"type":"string"}},"defaultValue":{"type":"string","description":"A value that is substituted for blank values when `allowBlanks` is false."}},"title":"Column Definition"},"ApiPageApiAnalysisSourceType_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysisSourceType_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiAnalysisResult_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"analysisId":{"type":"string","description":"Identifies the associated analysis."},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisTypeId":{"type":"string","description":"Identifies the type of analysis."},"interim":{"type":"boolean","description":"Indicates whether or not the analysis is using an interim time frame."},"analysisPeriods":{"type":"array","description":"Details about the specific analysis periods under audit.","items":{"$ref":"#/components/schemas/ApiAnalysisPeriod_Read"}},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period."}},"required":["version"],"title":"Analysis Result"},"PageApiAnalysisResult_Read":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/Pageablenull_Read"},"numberOfElements":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysisResult_Read"}},"number":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/Sortnull_Read"},"empty":{"type":"boolean"}}},"Pageablenull_Read":{"type":"object","properties":{"paged":{"type":"boolean"},"pageNumber":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"unpaged":{"type":"boolean"},"offset":{"type":"integer","format":"int64"},"sort":{"$ref":"#/components/schemas/Sortnull_Read"}}},"ApiAnalysisPeriod_Create":{"type":"object","properties":{"startDate":{"type":"string","format":"date","description":"The first day of the period under analysis."},"interimAsAtDate":{"type":"string","format":"date","description":"The last day of the interim period under analysis."},"endDate":{"type":"string","format":"date","description":"The last day of the period under analysis."}},"required":["endDate","startDate"]},"ApiAnalysis_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisTypeId":{"type":"string","description":"Identifies the type of analysis."},"name":{"type":"string","description":"The name of the analysis.","maxLength":80,"minLength":0},"interim":{"type":"boolean","description":"Indicates whether or not the analysis is using an interim time frame."},"periodic":{"type":"boolean","description":"Indicates whether or not the analysis is using a periodic time frame."},"analysisPeriods":{"type":"array","description":"Details about the specific analysis periods under audit.","items":{"$ref":"#/components/schemas/ApiAnalysisPeriod_Create"}},"currencyCode":{"type":"string","description":"The currency to be displayed across the analysis results."},"referenceId":{"type":"string","description":"A reference ID to identify the analysis.","maxLength":256,"minLength":0}},"required":["analysisPeriods","analysisTypeId","currencyCode","engagementId","name"],"title":"Analysis"},"ApiPageApiAnalysis_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysis_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiEngagementRollForwardRequest":{"type":"object","properties":{"analysisId":{"type":"string","description":"Identifies the analysis to roll forward."},"targetEngagementId":{"type":"string","description":"Identifies the engagement that the analysis will be rolled forward into."},"interim":{"type":"boolean","description":"When `true`, the new analysis period will use an interim time frame."}},"required":["analysisId","targetEngagementId"],"title":"Engagement Roll Forward Request"},"RunAdminReportRequest_Create":{"type":"object","properties":{"start":{"type":"string","format":"date-time","description":"The first date in the reporting timeframe."},"end":{"type":"string","format":"date-time","description":"The last date in the reporting timeframe."}},"required":["end","start"],"title":"Run Admin Report Request"},"RunAnalysisOverviewReportRequest_Create":{"type":"object","properties":{"includeAmountValue":{"type":"boolean","description":"Indicates whether to include amount value. Defaults to `false` if not specified."},"includeEntriesPercentageValue":{"type":"boolean","description":"Indicates whether to include entries percentage value. Defaults to `false` if not specified."},"includeAmountPercentageValue":{"type":"boolean","description":"Indicates whether to include amount percentage value. Defaults to `false` if not specified."},"includeControlPointAndWeights":{"type":"boolean","description":"Indicates whether to include control point and weights. Defaults to `false` if not specified."},"userTimeZone":{"type":"string","description":"Time zone to use for certain times in the export. Defaults to `UTC` if not specified or if the provided timezone string value is unable to be determined."},"csvExport":{"type":"boolean","description":"Indicates to export as a CSV file format instead of Excel. Defaults to `true` if not specified."},"analysisIds":{"type":"array","description":"The analysis ids to include. If not provided or empty, all will be included.","items":{"type":"string"}},"riskScoreIds":{"type":"array","description":"The risk score ids being filtered. If not provided, all will be included.","items":{"type":"string"},"uniqueItems":true}},"title":"Run Analysis Overview Report Request"},"RunActivityReportRequest_Create":{"type":"object","properties":{"start":{"type":"string","format":"date-time","description":"The first date in the reporting timeframe."},"end":{"type":"string","format":"date-time","description":"The last date in the reporting timeframe."},"userIds":{"type":"array","description":"The users to include in the report. If empty, all users will be included.","items":{"type":"string"}},"categories":{"type":"array","description":"The categories to include in the report. If empty, all categories will be included.","items":{"type":"string","enum":["ACCOUNT_GROUPING","ACCOUNT_MAPPING","ADMIN_REPORT","ANALYSIS","ANALYSIS_SETTINGS","ANALYSIS_TYPE","API_TOKEN","AUDIT_ANNOTATION","COLLECTION_ASSIGNMENT","CUSTOM_CONTROL_POINT","ENGAGEMENT","ENGAGEMENT_ACCOUNT_GROUP","FILE_LOCKER","FILE_MANAGER","FILTER","GDPDU","INGESTION","INTEGRATIONS","LIBRARY","MIGRATION","ORGANIZATION","POPULATION","QUERY","RATIO","REPORT_BUILDER","REPORT","RESULTS_EXPORT","RISK_RANGES","RISK_SEGMENTATION_DASHBOARD","SCIM_API","SUPPORT_ACCESS","TASK","USER","WORKFLOW","PAGE_VIEW","ANALYSIS_SOURCE","WEBHOOK","PROCEDURE_INSTANCE","CLOUD_ELEMENTS","ENGAGEMENT_ACCOUNT_GROUPING_NODE"]}},"onlyCompletedAnalyses":{"type":"boolean","description":"Restrict entries to analysis complete events."}},"required":["end","start"],"title":"Run Activity Report Request"},"ApiVerifyAccountsRequest":{"type":"object","properties":{"engagementId":{"type":"string","description":"The unique identifier of the engagement to verify accounts for."}},"required":["engagementId"],"title":"Verify Accounts Request"},"ApiPageApiAccountMapping_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAccountMapping_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiExportAccountsRequest":{"type":"object","properties":{"engagementId":{"type":"string"}},"required":["engagementId"],"title":"Export Accounts Request"},"ApiDeleteUnusedAccountMappingsRequest":{"type":"object","properties":{"engagementId":{"type":"string","description":"The unique identifier of the engagement to delete unused account mappings for."}},"required":["engagementId"],"title":"Delete Unused Account Mappings Request"},"ApiPageApiAccountGroup_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAccountGroup_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiImportAccountGroupingParams_Update":{"type":"object","properties":{"chunkedFileId":{"type":"string","description":"The unique identifier of the chunked file that contains the account grouping data."}},"required":["chunkedFileId"],"title":"Import Account Grouping Parameters"},"ApiAccountGrouping":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account grouping."},"codeDisplayName":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account code hierarchy system used within the dataset."},"delimiter":{"type":"string","description":"The delimiter character used to separate each category level in an account grouping code."},"mac":{"type":"boolean","description":"When `true`, the account grouping is based on the MAC code system."},"system":{"type":"boolean","description":"When `true`, the account grouping is a system account grouping and cannot be modified."},"archived":{"type":"boolean","description":"When `true`, the account grouping is archived."},"publishedDate":{"type":"string","format":"date-time","description":"The date that the account grouping was published."},"publishStatus":{"type":"string","description":"The current status of the account grouping.","enum":["DRAFT","UNPUBLISHED_CHANGES","PUBLISHED"]}},"required":["codeDisplayName","delimiter","name","publishStatus","version"],"title":"Account Grouping"},"ApiPageApiAccountGrouping_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAccountGrouping_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiImportAccountGroupingParams_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the new account grouping."},"type":{"type":"string","description":"The type of account grouping file being imported.","enum":["MINDBRIDGE_TEMPLATE","CCH_GROUP_TRIAL_BALANCE"]},"chunkedFileId":{"type":"string","description":"The unique identifier of the chunked file that contains the account grouping data."}},"required":["chunkedFileId","name","type"],"title":"Import Account Grouping Parameters"},"ApiBasicMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}}},"title":"Table Metadata Basic Metrics"},"ApiColumnData":{"type":"object","properties":{"columnName":{"type":"string","description":"The name of the column."},"position":{"type":"integer","format":"int32","description":"The index of the column."},"synthetic":{"type":"boolean","description":"If `true` this column was generated, as opposed to being a part of the original data."},"rowSample":{"type":"array","description":"A list of values from this column across multiple rows. All values are distinct.","items":{"type":"string"}},"columnMetadata":{"$ref":"#/components/schemas/ApiColumnMetadata","description":"A collection of metrics."}},"title":"Column Metadata"},"ApiColumnDateTimeFormat":{"type":"object","properties":{"selected":{"type":"boolean","description":"If true, this format was selected during column mapping as the correct format for this column."},"customFormatPattern":{"type":"string","description":"The pattern of this date format."},"sampleRawValues":{"type":"array","description":"A list of values in this column.","items":{"type":"string"}},"sampleConvertedValues":{"type":"array","description":"A list of date time values derived by parsing the text using this format.","items":{"type":"string","format":"date-time"}}},"title":"Table Metadata Date Time Format"},"ApiColumnMetadata":{"type":"object","properties":{"cellLengthMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding cells that are larger than 2000 characters in the column."},"dataTypeMetrics":{"$ref":"#/components/schemas/ApiDataTypeMetrics","description":"Metrics regarding the data types of column values."},"densityMetrics":{"$ref":"#/components/schemas/ApiDensityMetrics","description":"Metrics regarding the density of column values."},"distinctValueMetrics":{"$ref":"#/components/schemas/ApiDistinctValueMetrics","description":"Metrics regarding the uniqueness of column values."},"nullValueMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding “null” values in the column."},"scientificNotationMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding the use of scientific notation in the column."},"specialCharacterMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding the use of special characters in the column."}},"title":"Column Metadata Metrics"},"ApiCountMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."}},"title":"Table Metadata Count Metrics"},"ApiCurrencyFormat":{"type":"object","properties":{"decimalCharacter":{"type":"string","description":"The character used as a decimal separator."},"nonDecimalDelimiters":{"type":"array","description":"Non decimal separator special characters, including currency and grouping characters.","items":{"type":"string"},"uniqueItems":true},"ambiguousDelimiters":{"type":"array","description":"A list of possible delimiter characters, if multiple possible candidates are available.","items":{"type":"string"},"uniqueItems":true},"example":{"type":"string","description":"An example value."}},"title":"Table Metadata Currency Format"},"ApiDataPreview":{"type":"object","properties":{"row":{"type":"integer","format":"int64","description":"The row number within the table."},"column":{"type":"integer","format":"int32","description":"The column index within the row."},"data":{"type":"string","description":"The value within the target row."}},"title":"Table Metadata Data Preview"},"ApiDataTypeMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"nonNullValueCount":{"type":"integer","format":"int64","description":"The number of non-null values in this column."},"typeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of column type to number of occurrences. A single column value can match multiple types."},"textTypeDetails":{"$ref":"#/components/schemas/ApiTextTypeDetails","description":"Metrics regarding the text type values in this column."},"numericTypeDetails":{"$ref":"#/components/schemas/ApiNumericTypeDetails","description":"Metrics regarding the number type values in this column."},"dateTypeDetails":{"$ref":"#/components/schemas/ApiDateTypeDetails","description":"Metrics regarding the date type values in this column."},"detectedTypes":{"type":"array","description":"A list of all detected types in this column.","items":{"type":"string","enum":["TEXT","NUMBER","DATE","UNKNOWN","FLOAT64"]}},"dominantType":{"type":"string","description":"The type determined to be the most prevalent in this column.","enum":["TEXT","NUMBER","DATE","UNKNOWN","FLOAT64"]}},"title":"Table Metadata Data Type Metrics"},"ApiDateTypeDetails":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeZonedDateTime","description":"A pair of values representing the earliest and latest values within this column."},"ambiguousDateTimeFormats":{"type":"array","description":"A list of possible date time formats, if multiple possible candidates are available.","items":{"$ref":"#/components/schemas/ApiColumnDateTimeFormat"}},"unambiguousDateTimeFormats":{"type":"array","description":"A list of possible date time formats, if multiple possible candidates are available.","items":{"$ref":"#/components/schemas/ApiColumnDateTimeFormat"}}},"title":"Table Metadata Date Type Details"},"ApiDensityMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"density":{"type":"number","format":"float","description":"The percentage density of values against blanks, represented as decimal between 1 and 0."},"blanks":{"type":"integer","format":"int64","description":"The number of blank values."}},"title":"Table Metadata Density Metrics"},"ApiDistinctValueMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."}},"title":"Table Metadata Distinct Metrics"},"ApiHistogramMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"histogram":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of the number of columns to the number of rows with that many columns, in the case of unevenColumnsMetrics."}},"title":"Table Metadata Histogram Metrics"},"ApiNumericTypeDetails":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeBigDecimal","description":"A pair of values representing the min and max values within this column."},"currencyFormat":{"$ref":"#/components/schemas/ApiCurrencyFormat","description":"Metadata on the detected number format of this column."},"examplePairFromCurrencyFormatter":{"type":"array","description":"A pair of values as examples in the event that two or more unambiguous number formats are detected in the same column.","items":{"type":"string"}},"sum":{"type":"number","description":"The sum of all values in this column, up to a maximum of 10e50. Values smaller than 10e-50 will be rounded up."},"cappedSum":{"type":"boolean","description":"If `true` then the sum is larger than 10e50."},"cappedMax":{"type":"boolean","description":"If `true` then at least one individual value is larger than 10e50."}},"title":"Table Metadata Numeric Type Details"},"ApiOverallDataTypeMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"cellTypeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of data types to the number of cells in the table of that data type."},"columnTypeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"A map of data types to the number of columns in the table of that data type."},"totalRecords":{"type":"integer","format":"int64","description":"The total number of values."},"blankRecords":{"type":"integer","format":"int64","description":"The number of blank values."},"columnCount":{"type":"integer","format":"int32","description":"The number of columns."},"totalRows":{"type":"integer","format":"int64","description":"The total number of rows."}},"title":"Table Metadata Overall Data Type Metrics"},"ApiSheetMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"sheetNames":{"type":"array","description":"A list of sheet names within the underlying Excel file.","items":{"type":"string"}},"validSheets":{"type":"array","description":"A list of usable sheet names within the underlying Excel file.","items":{"type":"string"}}},"title":"Table Metadata Sheet Metrics"},"ApiTableMetadata":{"type":"object","properties":{"cellLengthMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding cells that are larger than 2000 characters in the table."},"densityMetrics":{"$ref":"#/components/schemas/ApiDensityMetrics","description":"Metrics regarding whole table density."},"inconsistentDateMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding inconsistent date formats within columns for the entire table."},"nullValueMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding “null” values across the entire table."},"numericColumnMetrics":{"$ref":"#/components/schemas/ApiBasicMetrics","description":"Metrics regarding numeric columns within the table."},"overallDataTypeMetrics":{"$ref":"#/components/schemas/ApiOverallDataTypeMetrics","description":"Metrics regarding detected data types across the entire table."},"scientificNotationMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding scientific notation across the entire table."},"sheetMetrics":{"$ref":"#/components/schemas/ApiSheetMetrics","description":"Metrics regarding excel sheets within the underlying excel file."},"specialCharacterMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding special characters across the entire table."},"unevenColumnsMetrics":{"$ref":"#/components/schemas/ApiHistogramMetrics","description":"Metrics regarding column length by row."}},"title":"Table Metadata"},"ApiTabularFileInfo":{"allOf":[{"$ref":"#/components/schemas/ApiFileInfo"},{"type":"object","properties":{"headerRowIndex":{"type":"integer","format":"int32","description":"The row number of the first detected header."},"firstLine":{"type":"string","description":"The first line of the table."},"delimiter":{"type":"string","description":"The delimiter character used to separate cells. Only populated when the underlying file is a CSV file."},"lastNonBlankRowIndex":{"type":"integer","format":"int64","description":"The row number of the last row that isn't blank."},"tableMetadata":{"$ref":"#/components/schemas/ApiTableMetadata","description":"A collection of metadata describing the table as a whole."},"columnData":{"type":"array","description":"A list of column metadata entities, describing each column.","items":{"$ref":"#/components/schemas/ApiColumnData"}},"rowContentSnippets":{"type":"array","description":"A list of sample rows from the underlying file.","items":{"type":"array","items":{"type":"string"}}}}}],"required":["version"],"title":"Tabular File Info"},"ApiTextTypeDetails":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeInteger","description":"A pair of values representing the min and max length of text values within this column."}},"title":"Table Metadata Text Type Details"},"RangeBigDecimal":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}}},"RangeInteger":{"type":"object","properties":{"min":{"type":"integer","format":"int32"},"max":{"type":"integer","format":"int32"}}},"RangeZonedDateTime":{"type":"object","properties":{"min":{"type":"string","format":"date-time"},"max":{"type":"string","format":"date-time"}}},"ApiEffectiveDateMetrics_Read":{"type":"object","properties":{"periodType":{"type":"string","description":"Indicates the time period by which the histogram has been broken down.","enum":["DAY","WEEK","MONTH"]},"entriesInPeriod":{"type":"integer","format":"int64","description":"The number of entries that occurred within the source period's date range."},"entriesOutOfPeriod":{"type":"integer","format":"int64","description":"The number of entries that occurred outside of the source period's date range."},"debitsInPeriod":{"type":"number","description":"The total debit amount that occurred within the source period's date range."},"creditsInPeriod":{"type":"number","description":"The total credit amount that occurred within the source period's date range."},"inPeriodCountHistogram":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map showing the total number of entries that occurred within each indicated date period."},"outOfPeriodCountHistogram":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map showing the total number of entries that occurred outside of each indicated date period."}}},"ApiAnalysisSourceStatus_Read":{"type":"object","properties":{"sourceId":{"type":"string","description":"Identifies the analysis source object."},"analysisSourceTypeId":{"type":"string","description":"Identifies the analysis source type."},"status":{"type":"string","description":"The current state of the analysis source.","enum":["IMPORTING","UPLOADING","IN_PROGRESS","COMPLETED","CANCELLED","FAILED"]},"periodId":{"type":"string","description":"Identifies the analysis period within the analysis."}}},"ApiAnalysisStatus_Read":{"type":"object","properties":{"analysisId":{"type":"string","description":"Identifies the associated analysis."},"analysisTypeId":{"type":"string","description":"Identifies the type of analysis."},"preflightErrors":{"type":"array","description":"The errors that occurred before the analysis was run.","items":{"type":"string","enum":["IN_PROGRESS","NOT_READY","ARCHIVED","REQUIRED_FILES_MISSING","SOURCES_NOT_READY","SOURCE_ERROR","UNVERIFIED_ACCOUNT_MAPPINGS","ANALYSIS_PERIOD_OVERLAP","SOURCE_WARNINGS_PRESENT"]}},"sourceStatuses":{"type":"array","description":"Details about the state of each analysis source.","items":{"$ref":"#/components/schemas/ApiAnalysisSourceStatus_Read"}},"availableFeatures":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Details about the various analysis capabilities available in MindBridge. [Learn more](https://support.mindbridge.ai/hc/en-us/articles/360056395234)"},"status":{"type":"string","description":"The current state of the analysis.","enum":["NOT_STARTED","IMPORTING_FILE","PREPARING_DATA","PROCESSING","CONSOLIDATING_RESULTS","COMPLETED","FAILED"]},"ready":{"type":"boolean","description":"Indicates whether or not the analysis is ready to be run."},"mappedAccountMappingCount":{"type":"integer","format":"int64","description":"The number of mapped accounts."},"unmappedAccountMappingCount":{"type":"integer","format":"int64","description":"The number of unmapped accounts."},"inferredAccountMappingCount":{"type":"integer","format":"int64","description":"The number of inferred account mapping; this can be considered a warning on partial matches."},"reRunReady":{"type":"boolean","description":"Indicates whether or not the analysis is ready to be run again."}},"title":"Analysis Status"},"MindBridgeQueryTerm":{"type":"object","anyOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}},{"type":"object","additionalProperties":{"type":"object","properties":{"$eq":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$ne":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$gt":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$gte":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$lt":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$lte":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$contains":{"type":"array","items":{"type":"string"}}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$contains":{"type":"array","items":{"type":"string"}}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$in":{"type":"array","items":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$nin":{"type":"array","items":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$flags":{"type":"object","additionalProperties":{"type":"boolean"}}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$isubstr":{"type":"string"}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$iprefix":{"type":"string"}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$niprefix":{"type":"string"}}}},{"type":"object","properties":{"$and":{"type":"array","items":{"$ref":"#/components/schemas/MindBridgeQueryTerm"}}}},{"type":"object","properties":{"$or":{"type":"array","items":{"$ref":"#/components/schemas/MindBridgeQueryTerm"}}}},{"type":"object","properties":{"$keyword_prefix":{"type":"string"}}},{"type":"object","properties":{"$keyword_prefix_not":{"type":"string"}}},{"type":"object"}]},"JsonTableBody":{"type":"array","example":[{"Amount":"100.00$","Account":"Accounts Receivable"},{"Amount":"100.00$","Account":"Accounts Payable"}],"items":{"type":"object","items":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}},"securitySchemes":{"mindbridge-api":{"type":"http","scheme":"bearer","bearerFormat":"opaque"}}},"webhooks":{"webhooks":{"post":{"tags":["Webhooks"],"description":"Webhooks\n------\n\nWebhooks provide a lightweight, event driven method of notifying external systems of events within the MindBridge platform, enabling internal events to\ncommunicate data with external systems via HTTPS requests originating from our platform, allowing for a more robust automation potential, without the need to\npoll for status. In order to leverage webhook functionality, a URL must be provided, and a selection of events that you would like to receive notifications for\nassociated with that URL.\n\n## URL Restrictions\n\n- URL defined must be unique.\n- Protocols are limited to https.\n- IP addresses are not permitted.\n- Domains that resolve to local ip addresses.\n- Unqualified hosts are not permitted (domains without a `.` in them).\n- Domains ending in `.local`, `.azure.com`, `microsoft.net`, `mindbridge.ai`, `mindbridge.com` are not allowed (this list is subject to change, as additional\n restrictions may be introduced in the future).\n\n## Outbound Request\n\nEach outbound request is sent as an HTTPS POST. The post will contain a JSON payload in the body of the message. As well as the JSON payload, there are a number\nof important HTTPS headers that are attached to each message. Using this information, combined with the public key associated with the configured webhook,\nallows the verification of a digital signature. The method of authenticating the payload will be covered in a separate section.\n\n| **HTTPS Header** | **Description** |\n|---------------------|------------------------------------------------------------------------------------------|\n| `webhook-id` | A unique event ID for the event that triggered the outbound webhook request. |\n| `webhook-timestamp` | Timestamp associated with the outbound HTTPS request. |\n| `webhook-signature` | The digital signature that can be used to validate the authenticity of the webhook data. |\n\n## Security\n\nWebhooks operate by communicating with user provided HTTPS URLs. This can lead to potential security risks from malicious actors. In order to provide a way to\nauthenticate the validity of the webhook on the client side, we have implemented an asymmetric digital signature scheme that can be used to check that the\npayload is from us, and has not been modified. When a webhook is registered within our system, clients are provided with a public key, which utilizes the\n`Ed25519`algorithm. There are a number of measures used to avoid common attack scenarios within the digital signing scheme, which will be covered below.\n\n## Configuring your Server\n\nIn order to listen to webhook events, you must have a publicly accessible server that can accept HTTPS POST requests from the MindBridge system. This server\nmust not implement any authentication protocols in order to receive data. The data signature scheme implemented provides a mechanism to ensure data integrity,\nand while this is optional\nto [authenticate the received payload,](https://mindbridge-ai.atlassian.net/wiki/spaces/SBE/pages/4921327617/API+Content+-+Webhooks#Authenticating-a-Payload\n\"https://mindbridge-ai.atlassian.net/wiki/spaces/SBE/pages/4921327617/API+Content+-+Webhooks#Authenticating-a-Payload\")\nit is highly recommended to utilize this data integrity check in your workflow.\n\n## Responding to Webhook Requests\n\nHow you respond to a webhook event has implications on the status of the webhook configured within the MindBridge system. We look at the HTTP response code, and\nin some cases the HTTP headers in order to determine actions we may take within our system.\n\n| **HTTP Code** | **Result** |\n|---------------------|---------------------------------------|\n| 200 series response | Successfully received webhook payload |\n\n## Authenticating a Payload\n\nUtilizing the data from the payload, as well as the headers in the HTTP post, as well as the public key associated with your webhook configuration, you will be\nable to validate the digital signature that is attached in the HTTP header. In order to accomplish this, you need to format a string with the following format:\n\n`..`\n\nValues with `< >` surrounding them are variables to insert into the template above.\n\n| **Variable** | **Description** |\n|-------------------|--------------------------------------------------|\n| webhook-id | Found in the HTTP header |\n| webhook-timestamp | Found in the HTTP header |\n| payload | The unmodified contents of the HTTP POST request |\n\nWith this string generated, and using the public key from the webhook configuration, and the algorithm `Ed25519`, you can create a digital signature of the\nformatted string created above, and compare it against the digital signature provided in the HTTP header, under the key `webhook-signature`. The creation of\nthis formatted payload helps to mitigate common attack patterns, such as replay attacks, which is why the timestamp of the outbound request is part of the\nsigned message.\n\n## Events\n\n| **Name** | **Description** | **Event Type** | **Payload Model** |\n|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|------------------------------|\n| Analysis Created | Notify the registered webhook URL that an Analysis has been created. | analysis.created | AnalysisWebhookPayload |\n| Analysis Updated | Notify the registered webhook URL that an Analysis has been updated. | analysis.updated | AnalysisWebhookPayload |\n| Analysis Deleted | Notify the registered webhook URL that an Analysis has been deleted. | analysis.deleted | AnalysisWebhookPayload |\n| Analysis Archived | Notify the registered webhook URL that an Analysis has been archived. | analysis.archived | AnalysisWebhookPayload |\n| Analysis Unarchived | Notify the registered webhook URL that an Analysis has been unarchived. | analysis.unarchived | AnalysisWebhookPayload |\n| Analysis Complete | Notify the registered webhook URL that an analysis has been completed. | analysis.complete | AnalysisWebhookPayload |\n| Analysis Failed | Notify the registered webhook URL that the Analysis has failed. | analysis.failed | AnalysisWebhookPayload |\n| Engagement Created | Notify the registered webhook URL that an Engagement has been created. | engagement.created | EngagementWebhookPayload |\n| Engagement Updated | Notify the registered webhook URL that an Engagement has been updated. | engagement.updated | EngagementWebhookPayload |\n| Engagement Deleted | Notify the registered webhook URL that an Engagement has been deleted. | engagement.deleted | EngagementWebhookPayload |\n| Unmapped Accounts | Notify the registered webhook URL that an engagement has unresolved account mappings that exist, which is the result of new accounts discovered during a data ingestion workflow. | unmapped.accounts | EngagementWebhookPayload |\n| Ingestion Complete | Notify the registered webhook URL that a data ingestion workflow has been completed. | ingestion.complete | AnalysisSourceWebhookPayload |\n| Ingestion Failed | Notify the registered webhook URL that a data ingestion workflow has been completed. | ingestion.failed | AnalysisSourceWebhookPayload |\n| Data Added | Notify the registered webhook URL that new data has been added to an engagement. | data.added | FileManagerWebhookPayload |\n| Export Ready | Notify the registered webhook URL that a requested file export has been completed. | export.ready | FileManagerWebhookPayload |\n| User Invited | Notify the registered webhook URL that a User has been invited to the tenant. | user.invited | UserRoleWebhookPayload |\n| User Role Updated | Notify the registered webhook URL that a User's role has been updated. | user.role | UserRoleWebhookPayload |\n| User Deleted | Notify the registered webhook URL that a User has been deleted. | user.deleted | UserWebhookPayload |\n| User Login | Notify the registered webhook URL that a User has logged in. | user.login | UserLoginWebhookPayload |\n| User Status Updated | Notify the registered webhook URL that a User has been enabled or disabled. | user.status | UserStatusWebhookPayload |\n","parameters":[{"name":"webhook-id","in":"header","description":"A unique event ID for the event that triggered the outbound webhook request.","required":true,"schema":{"type":"string"}},{"name":"webhook-timestamp","in":"header","description":"Timestamp associated with the outbound HTTPS request.","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"webhook-signature","in":"header","description":"The digital signature that can be used to validate the authenticity of the webhook data.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AnalysisResultWebhookPayload"},{"$ref":"#/components/schemas/AnalysisResultWebhookPayload"},{"$ref":"#/components/schemas/AnalysisSourceWebhookPayload"},{"$ref":"#/components/schemas/EngagementSubscriptionWebhookPayload"},{"$ref":"#/components/schemas/EngagementWebhookPayload"},{"$ref":"#/components/schemas/FileManagerWebhookPayload"},{"$ref":"#/components/schemas/UserWebhookPayload"},{"$ref":"#/components/schemas/UserRoleWebhookPayload"},{"$ref":"#/components/schemas/UserLoginWebhookPayload"},{"$ref":"#/components/schemas/UserStatusWebhookPayload"}],"discriminator":{"propertyName":"type","mapping":{"user.status":"UserStatusWebhookPayload","analysis.updated":"AnalysisResultWebhookPayload","analysis.failed":"AnalysisResultWebhookPayload","analysis.created":"AnalysisResultWebhookPayload","analysis.unarchived":"AnalysisResultWebhookPayload","analysis.deleted":"AnalysisResultWebhookPayload","export.ready":"FileManagerWebhookPayload","unmapped.accounts":"EngagementSubscriptionWebhookPayload","analysis.completed":"AnalysisResultWebhookPayload","analysis.archived":"AnalysisResultWebhookPayload","user.role":"UserRoleWebhookPayload","engagement.deleted":"EngagementWebhookPayload","user.invited":"UserRoleWebhookPayload","engagement.updated":"EngagementWebhookPayload","user.deleted":"UserWebhookPayload","user.login":"UserLoginWebhookPayload","ingestion.complete":"AnalysisSourceWebhookPayload","engagement.created":"EngagementWebhookPayload","data.added":"FileManagerWebhookPayload","ingestion.failed":"AnalysisSourceWebhookPayload"}}}}}}}}}} \ No newline at end of file diff --git a/tests/main/openapi/test_main_openapi.py b/tests/main/openapi/test_main_openapi.py index 65121180d..79e9eb8a4 100644 --- a/tests/main/openapi/test_main_openapi.py +++ b/tests/main/openapi/test_main_openapi.py @@ -5316,3 +5316,11 @@ def test_main_reuse_model_with_type_alias(output_file: Path) -> None: "--use-type-alias", ], ) + +def test_main_to_be_renamed_later(output_file: Path) -> None: + run_main_and_assert( + input_path=OPEN_API_DATA_PATH / "to_be_renamed_later.json", + output_path=output_file, + input_file_type="openapi", + assert_func=assert_file_content, + ) From f9da08d5f0269229ba2e6fd33b6641063a097120 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Thu, 16 Apr 2026 10:22:26 -0400 Subject: [PATCH 11/23] Add test timeout --- pyproject.toml | 3 +-- tests/main/openapi/test_main_openapi.py | 1 + uv.lock | 24 ++++++++++++++++++------ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 01711eed5..a66df1df7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -86,11 +86,10 @@ dev = [ test = [ "inline-snapshot>=0.31.1", "msgspec>=0.18", - "pytest>=6.1", "pytest>=8.3.4", - "pytest-cov>=2.12.1", "pytest-cov>=5", "pytest-mock>=3.14", + "pytest-timeout>=2.4.0", "pytest-xdist>=3.3.1", "time-machine>=3.1", "watchfiles>=1.1", diff --git a/tests/main/openapi/test_main_openapi.py b/tests/main/openapi/test_main_openapi.py index 79e9eb8a4..811ae9d6b 100644 --- a/tests/main/openapi/test_main_openapi.py +++ b/tests/main/openapi/test_main_openapi.py @@ -5317,6 +5317,7 @@ def test_main_reuse_model_with_type_alias(output_file: Path) -> None: ], ) +@pytest.mark.timeout(30) def test_main_to_be_renamed_later(output_file: Path) -> None: run_main_and_assert( input_path=OPEN_API_DATA_PATH / "to_be_renamed_later.json", diff --git a/uv.lock b/uv.lock index 55a81c343..8d3ce5252 100644 --- a/uv.lock +++ b/uv.lock @@ -857,6 +857,7 @@ dev = [ { name = "pytest" }, { name = "pytest-cov" }, { name = "pytest-mock" }, + { name = "pytest-timeout" }, { name = "pytest-xdist" }, { name = "time-machine" }, { name = "twine" }, @@ -901,6 +902,7 @@ test = [ { name = "pytest" }, { name = "pytest-cov" }, { name = "pytest-mock" }, + { name = "pytest-timeout" }, { name = "pytest-xdist" }, { name = "time-machine" }, { name = "watchfiles" }, @@ -914,6 +916,7 @@ type = [ { name = "pytest" }, { name = "pytest-cov" }, { name = "pytest-mock" }, + { name = "pytest-timeout" }, { name = "pytest-xdist" }, { name = "time-machine" }, { name = "ty" }, @@ -975,11 +978,10 @@ dev = [ { name = "inline-snapshot", specifier = ">=0.31.1" }, { name = "msgspec", specifier = ">=0.18" }, { name = "prek", specifier = ">=0.2.22" }, - { name = "pytest", specifier = ">=6.1" }, { name = "pytest", specifier = ">=8.3.4" }, - { name = "pytest-cov", specifier = ">=2.12.1" }, { name = "pytest-cov", specifier = ">=5" }, { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-timeout", specifier = ">=2.4.0" }, { name = "pytest-xdist", specifier = ">=3.3.1" }, { name = "time-machine", specifier = ">=3.1" }, { name = "twine", specifier = ">=6.1" }, @@ -1009,11 +1011,10 @@ test = [ { name = "diff-cover", specifier = ">=9.7.2" }, { name = "inline-snapshot", specifier = ">=0.31.1" }, { name = "msgspec", specifier = ">=0.18" }, - { name = "pytest", specifier = ">=6.1" }, { name = "pytest", specifier = ">=8.3.4" }, - { name = "pytest-cov", specifier = ">=2.12.1" }, { name = "pytest-cov", specifier = ">=5" }, { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-timeout", specifier = ">=2.4.0" }, { name = "pytest-xdist", specifier = ">=3.3.1" }, { name = "time-machine", specifier = ">=3.1" }, { name = "watchfiles", specifier = ">=1.1" }, @@ -1024,11 +1025,10 @@ type = [ { name = "diff-cover", specifier = ">=9.7.2" }, { name = "inline-snapshot", specifier = ">=0.31.1" }, { name = "msgspec", specifier = ">=0.18" }, - { name = "pytest", specifier = ">=6.1" }, { name = "pytest", specifier = ">=8.3.4" }, - { name = "pytest-cov", specifier = ">=2.12.1" }, { name = "pytest-cov", specifier = ">=5" }, { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-timeout", specifier = ">=2.4.0" }, { name = "pytest-xdist", specifier = ">=3.3.1" }, { name = "time-machine", specifier = ">=3.1" }, { name = "ty", specifier = ">=0.0.8" }, @@ -2417,6 +2417,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5a/cc/06253936f4a7fa2e0f48dfe6d851d9c56df896a9ab09ac019d70b760619c/pytest_mock-3.15.1-py3-none-any.whl", hash = "sha256:0a25e2eb88fe5168d535041d09a4529a188176ae608a6d249ee65abc0949630d", size = 10095, upload-time = "2025-09-16T16:37:25.734Z" }, ] +[[package]] +name = "pytest-timeout" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/82/4c9ecabab13363e72d880f2fb504c5f750433b2b6f16e99f4ec21ada284c/pytest_timeout-2.4.0.tar.gz", hash = "sha256:7e68e90b01f9eff71332b25001f85c75495fc4e3a836701876183c4bcfd0540a", size = 17973, upload-time = "2025-05-05T19:44:34.99Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/b6/3127540ecdf1464a00e5a01ee60a1b09175f6913f0644ac748494d9c4b21/pytest_timeout-2.4.0-py3-none-any.whl", hash = "sha256:c42667e5cdadb151aeb5b26d114aff6bdf5a907f176a007a30b940d3d865b5c2", size = 14382, upload-time = "2025-05-05T19:44:33.502Z" }, +] + [[package]] name = "pytest-xdist" version = "3.8.0" From 670f35d3a799f2a54a9c35c5ca2ed0ad9d3ad7d9 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Thu, 16 Apr 2026 12:25:39 -0400 Subject: [PATCH 12/23] Code format mostly --- model.py | 19614 ---------------------- pyproject.toml | 2 +- tests/main/openapi/test_main_openapi.py | 5 +- 3 files changed, 5 insertions(+), 19616 deletions(-) delete mode 100644 model.py diff --git a/model.py b/model.py deleted file mode 100644 index c76d9292b..000000000 --- a/model.py +++ /dev/null @@ -1,19614 +0,0 @@ -# -# Copyright MindBridge Analytics Inc. all rights reserved. -# -# This material is confidential and may not be copied, distributed, -# reversed engineered, decompiled or otherwise disseminated without -# the prior written consent of MindBridge Analytics Inc. -# - -from __future__ import annotations -from datetime import date -from enum import Enum -from typing import Annotated, Any, Literal, Union -from pydantic import AwareDatetime, Field, RootModel -from mindbridgeapi.base_item import BaseItem - -ObjectId = RootModel[str | None] - - -class WebhookPayloadType(str, Enum): - """The event type that triggered the webhook.""" - - EXPORT_READY = "export.ready" - DATA_ADDED = "data.added" - INGESTION_COMPLETE = "ingestion.complete" - INGESTION_FAILED = "ingestion.failed" - ANALYSIS_COMPLETED = "analysis.completed" - ANALYSIS_FAILED = "analysis.failed" - UNMAPPED_ACCOUNTS = "unmapped.accounts" - ENGAGEMENT_CREATED = "engagement.created" - ENGAGEMENT_UPDATED = "engagement.updated" - ENGAGEMENT_DELETED = "engagement.deleted" - ANALYSIS_CREATED = "analysis.created" - ANALYSIS_UPDATED = "analysis.updated" - ANALYSIS_DELETED = "analysis.deleted" - ANALYSIS_ARCHIVED = "analysis.archived" - ANALYSIS_UNARCHIVED = "analysis.unarchived" - USER_INVITED = "user.invited" - USER_STATUS = "user.status" - USER_ROLE = "user.role" - USER_DELETED = "user.deleted" - USER_LOGIN = "user.login" - - -class WebhookPayload(BaseItem): - type: Annotated[ - WebhookPayloadType | None, - Field(description="The event type that triggered the webhook."), - ] = None - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - timestamp: Annotated[ - AwareDatetime | None, - Field(description="The time that the webhook was triggered."), - ] = None - sender_id: Annotated[ - ObjectId | None, - Field( - alias="senderId", - description="The ID of the registered webhook configuration that initiated the outbound request.", - ), - ] = None - tenant_id: Annotated[ - str | None, - Field( - alias="tenantId", - description="The name of the tenant that triggered the webhook.", - ), - ] = None - user_id: Annotated[ - ObjectId | None, - Field( - alias="userId", - description="The ID of the user that initiated the event that triggered the webhook.", - ), - ] = None - - -class AnalysisResultWebhookPayloadType(str, Enum): - """The event type that triggered the webhook.""" - - ANALYSIS_COMPLETED = "analysis.completed" - ANALYSIS_FAILED = "analysis.failed" - - -class AnalysisWebhookData(BaseItem): - engagement_id: Annotated[ - ObjectId | None, - Field( - alias="engagementId", - description="The ID of the Engagement associated with the webhook event.", - ), - ] = None - analysis_id: Annotated[ - ObjectId | None, - Field( - alias="analysisId", - description="The ID of the Analysis associated with the webhook event.", - ), - ] = None - - -class AnalysisSourceWebhookPayloadType(str, Enum): - """The event type that triggered the webhook.""" - - INGESTION_COMPLETE = "ingestion.complete" - INGESTION_FAILED = "ingestion.failed" - - -class AnalysisSourceWebhookData(BaseItem): - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - analysis_source_id: Annotated[ - ObjectId | None, - Field( - alias="analysisSourceId", - description="The ID of the Analysis Source associated with the event.", - ), - ] = None - analysis_id: Annotated[ - ObjectId | None, - Field( - alias="analysisId", - description="The ID of the Analysis associated with the webhook event.", - ), - ] = None - engagement_id: Annotated[ - ObjectId | None, - Field( - alias="engagementId", - description="The ID of the Engagement associated with the webhook event.", - ), - ] = None - - -class AnalysisResultWebhookData(BaseItem): - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - analysis_id: Annotated[ - ObjectId | None, - Field( - alias="analysisId", - description="The ID of the Analysis associated with the webhook event.", - ), - ] = None - analysis_result_id: Annotated[ - ObjectId | None, - Field( - alias="analysisResultId", - description="The ID of the Analysis Result associated with the webhook event.", - ), - ] = None - engagement_id: Annotated[ - ObjectId | None, - Field( - alias="engagementId", - description="The ID of the Engagement associated with the webhook event.", - ), - ] = None - - -class EngagementSubscriptionWebhookData(BaseItem): - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - engagement_id: Annotated[ - ObjectId | None, - Field( - alias="engagementId", - description="The ID of the Engagement associated with the webhook event.", - ), - ] = None - target_user_id: Annotated[ - ObjectId | None, - Field( - alias="targetUserId", - description="The ID of the user associated with the webhook event.", - ), - ] = None - - -class EngagementWebhookPayloadType(str, Enum): - """The event type that triggered the webhook.""" - - ENGAGEMENT_CREATED = "engagement.created" - ENGAGEMENT_UPDATED = "engagement.updated" - ENGAGEMENT_DELETED = "engagement.deleted" - - -class EngagementWebhookData(BaseItem): - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - engagement_id: Annotated[ - ObjectId | None, - Field( - alias="engagementId", - description="The ID of the Engagement associated with the webhook event.", - ), - ] = None - - -class FileManagerWebhookPayloadType(str, Enum): - """The event type that triggered the webhook.""" - - DATA_ADDED = "data.added" - EXPORT_READY = "export.ready" - - -class FileManagerWebhookData(BaseItem): - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - file_manager_file_id: Annotated[ - ObjectId | None, - Field( - alias="fileManagerFileId", - description="The ID of the data associated with the webhook event.", - ), - ] = None - file_export_id: Annotated[ - ObjectId | None, - Field( - alias="fileExportId", - description="The ID of the file export associated with the webhook event.", - ), - ] = None - - -class UserWebhookData(BaseItem): - target_user_id: Annotated[ - ObjectId | None, - Field( - alias="targetUserId", - description="The ID of the data associated with the webhook event.", - ), - ] = None - - -class UserRoleWebhookPayloadType(str, Enum): - """The event type that triggered the webhook.""" - - USER_INVITED = "user.invited" - USER_ROLE = "user.role" - - -class UserRoleWebhookDataRole(str, Enum): - """The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)""" - - ROLE_ADMIN = "ROLE_ADMIN" - ROLE_ORGANIZATION_ADMIN = "ROLE_ORGANIZATION_ADMIN" - ROLE_USER = "ROLE_USER" - ROLE_CLIENT = "ROLE_CLIENT" - ROLE_MINDBRIDGE_SUPPORT = "ROLE_MINDBRIDGE_SUPPORT" - ROLE_USER_ADMIN = "ROLE_USER_ADMIN" - - -class UserRoleWebhookData(BaseItem): - role: Annotated[ - UserRoleWebhookDataRole | None, - Field( - description="The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)" - ), - ] = None - target_user_id: Annotated[ - ObjectId | None, - Field( - alias="targetUserId", - description="The ID of the data associated with the webhook event.", - ), - ] = None - - -UserLoginWebhookData = RootModel[Any | None] - - -class UserStatusWebhookData(BaseItem): - target_user_id: Annotated[ - ObjectId | None, - Field( - alias="targetUserId", - description="The ID of the data associated with the webhook event.", - ), - ] = None - status: Annotated[ - str | None, - Field( - description="Identifies the status change that triggered the webhook event." - ), - ] = None - - -class ApiWebhookUpdateEvent(str, Enum): - EXPORT_READY = "EXPORT_READY" - FILE_MANAGER_FILE_ADDED = "FILE_MANAGER_FILE_ADDED" - INGESTION_COMPLETE = "INGESTION_COMPLETE" - INGESTION_FAILED = "INGESTION_FAILED" - INGESTION_ANALYSIS_COMPLETE = "INGESTION_ANALYSIS_COMPLETE" - INGESTION_ANALYSIS_FAILED = "INGESTION_ANALYSIS_FAILED" - UNMAPPED_ACCOUNTS_DETECTED = "UNMAPPED_ACCOUNTS_DETECTED" - ENGAGEMENT_CREATED = "ENGAGEMENT_CREATED" - ENGAGEMENT_UPDATED = "ENGAGEMENT_UPDATED" - ENGAGEMENT_DELETED = "ENGAGEMENT_DELETED" - ANALYSIS_CREATED = "ANALYSIS_CREATED" - ANALYSIS_UPDATED = "ANALYSIS_UPDATED" - ANALYSIS_DELETED = "ANALYSIS_DELETED" - ANALYSIS_ARCHIVED = "ANALYSIS_ARCHIVED" - ANALYSIS_UNARCHIVED = "ANALYSIS_UNARCHIVED" - USER_INVITED = "USER_INVITED" - USER_STATUS_UPDATED = "USER_STATUS_UPDATED" - USER_ROLE_UPDATED = "USER_ROLE_UPDATED" - USER_DELETED = "USER_DELETED" - USER_LOGIN = "USER_LOGIN" - - -class ApiWebhookUpdateStatus(str, Enum): - """The current status of the webhook.""" - - ACTIVE = "ACTIVE" - INACTIVE = "INACTIVE" - - -class ApiWebhookUpdate(BaseItem): - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - name: Annotated[str | None, Field(description="The name of the webhook.")] = None - url: Annotated[ - str | None, - Field(description="The URL to which the webhook will send notifications."), - ] = None - technical_contact_id: Annotated[ - str | None, - Field( - alias="technicalContactId", - description="A reference to an administrative user used to inform system administrators of issues with the webhooks.", - ), - ] = None - events: Annotated[ - list[ApiWebhookUpdateEvent] | None, - Field( - description="A list of events that will trigger this webhook.", - max_length=2147483647, - min_length=1, - ), - ] = None - status: Annotated[ - ApiWebhookUpdateStatus | None, - Field(description="The current status of the webhook."), - ] = None - - -class ApiUserInfoRead(BaseItem): - user_id: Annotated[ - str | None, Field(alias="userId", description="Identifies the user.") - ] = None - user_name: Annotated[ - str | None, Field(alias="userName", description="The name of the user.") - ] = None - - -class ApiWebhookReadEvent(str, Enum): - EXPORT_READY = "EXPORT_READY" - FILE_MANAGER_FILE_ADDED = "FILE_MANAGER_FILE_ADDED" - INGESTION_COMPLETE = "INGESTION_COMPLETE" - INGESTION_FAILED = "INGESTION_FAILED" - INGESTION_ANALYSIS_COMPLETE = "INGESTION_ANALYSIS_COMPLETE" - INGESTION_ANALYSIS_FAILED = "INGESTION_ANALYSIS_FAILED" - UNMAPPED_ACCOUNTS_DETECTED = "UNMAPPED_ACCOUNTS_DETECTED" - ENGAGEMENT_CREATED = "ENGAGEMENT_CREATED" - ENGAGEMENT_UPDATED = "ENGAGEMENT_UPDATED" - ENGAGEMENT_DELETED = "ENGAGEMENT_DELETED" - ANALYSIS_CREATED = "ANALYSIS_CREATED" - ANALYSIS_UPDATED = "ANALYSIS_UPDATED" - ANALYSIS_DELETED = "ANALYSIS_DELETED" - ANALYSIS_ARCHIVED = "ANALYSIS_ARCHIVED" - ANALYSIS_UNARCHIVED = "ANALYSIS_UNARCHIVED" - USER_INVITED = "USER_INVITED" - USER_STATUS_UPDATED = "USER_STATUS_UPDATED" - USER_ROLE_UPDATED = "USER_ROLE_UPDATED" - USER_DELETED = "USER_DELETED" - USER_LOGIN = "USER_LOGIN" - - -class ApiWebhookReadStatus(str, Enum): - """The current status of the webhook.""" - - ACTIVE = "ACTIVE" - INACTIVE = "INACTIVE" - - -class ApiWebhookRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[AwareDatetime | None, Field(alias="creationDate")] = None - last_modified_date: Annotated[ - AwareDatetime | None, Field(alias="lastModifiedDate") - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, Field(alias="createdUserInfo") - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, Field(alias="lastModifiedUserInfo") - ] = None - name: Annotated[str | None, Field(description="The name of the webhook.")] = None - url: Annotated[ - str | None, - Field(description="The URL to which the webhook will send notifications."), - ] = None - technical_contact_id: Annotated[ - str | None, - Field( - alias="technicalContactId", - description="A reference to an administrative user used to inform system administrators of issues with the webhooks.", - ), - ] = None - events: Annotated[ - list[ApiWebhookReadEvent] | None, - Field( - description="A list of events that will trigger this webhook.", - max_length=2147483647, - min_length=1, - ), - ] = None - public_key: Annotated[ - str | None, - Field( - alias="publicKey", - description="The public key used to verify the webhook signature.", - ), - ] = None - status: Annotated[ - ApiWebhookReadStatus | None, - Field(description="The current status of the webhook."), - ] = None - key_generation_timestamp: Annotated[ - AwareDatetime | None, Field(alias="keyGenerationTimestamp") - ] = None - - -class ApiUserUpdateRole(str, Enum): - """The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)""" - - ROLE_ADMIN = "ROLE_ADMIN" - ROLE_ORGANIZATION_ADMIN = "ROLE_ORGANIZATION_ADMIN" - ROLE_USER = "ROLE_USER" - ROLE_CLIENT = "ROLE_CLIENT" - ROLE_MINDBRIDGE_SUPPORT = "ROLE_MINDBRIDGE_SUPPORT" - ROLE_USER_ADMIN = "ROLE_USER_ADMIN" - - -class ApiUserUpdate(BaseItem): - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - role: Annotated[ - ApiUserUpdateRole | None, - Field( - description="The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)" - ), - ] = None - enabled: Annotated[ - bool | None, - Field( - description="Indicates whether or not the user is enabled within this tenant." - ), - ] = None - - -class ApiLoginRecordRead(BaseItem): - timestamp: Annotated[ - AwareDatetime | None, - Field( - description="The time when the user logged in or the API token was used." - ), - ] = None - ip_address: Annotated[ - str | None, - Field( - alias="ipAddress", - description="The IP address used when logging in or when making a request with an API token.", - ), - ] = None - - -class ApiUserReadRole(str, Enum): - """The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)""" - - ROLE_ADMIN = "ROLE_ADMIN" - ROLE_ORGANIZATION_ADMIN = "ROLE_ORGANIZATION_ADMIN" - ROLE_USER = "ROLE_USER" - ROLE_CLIENT = "ROLE_CLIENT" - ROLE_MINDBRIDGE_SUPPORT = "ROLE_MINDBRIDGE_SUPPORT" - ROLE_USER_ADMIN = "ROLE_USER_ADMIN" - - -class ApiUserRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - first_name: Annotated[ - str | None, Field(alias="firstName", description="The user's first name.") - ] = None - last_name: Annotated[ - str | None, Field(alias="lastName", description="The user's last name.") - ] = None - email: Annotated[str | None, Field(description="The user's email address.")] = None - role: Annotated[ - ApiUserReadRole | None, - Field( - description="The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)" - ), - ] = None - enabled: Annotated[ - bool | None, - Field( - description="Indicates whether or not the user is enabled within this tenant." - ), - ] = None - validated: Annotated[ - bool | None, - Field( - description="Indicates whether or not the user has opened the account activation link after being created." - ), - ] = None - service_account: Annotated[ - bool | None, - Field( - alias="serviceAccount", - description="Indicates whether or not this account is used as part of an API token.", - ), - ] = None - recent_logins: Annotated[ - list[ApiLoginRecordRead] | None, - Field( - alias="recentLogins", - description="A list of the latest successful logins or token usage events by IP address.", - ), - ] = None - - -class ApiTaskUpdateStatus(str, Enum): - """The current state of the task.""" - - OPEN = "OPEN" - NORMAL = "NORMAL" - COMPLETED = "COMPLETED" - DISMISSED = "DISMISSED" - RESOLVED = "RESOLVED" - - -class ApiTaskUpdateTaskApprovalStatus(str, Enum): - PENDING = "PENDING" - REJECTED = "REJECTED" - APPROVED = "APPROVED" - - -class ApiTaskUpdate(BaseItem): - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - status: Annotated[ - ApiTaskUpdateStatus | None, - Field(description="The current state of the task.", title="Task Status"), - ] = None - assigned_id: Annotated[ - str | None, - Field( - alias="assignedId", description="Identifies the user assigned to this task." - ), - ] = None - description: Annotated[ - str | None, Field(description="A description of the task.") - ] = None - sample: Annotated[ - str | None, Field(description="Which sample this task is a part of.") - ] = None - audit_areas: Annotated[ - list[str] | None, - Field( - alias="auditAreas", - description="Which audit areas this task is associated with.", - ), - ] = None - assertions: Annotated[ - list[str] | None, - Field(description="Which assertions this task is associated with."), - ] = None - task_approval_status: Annotated[ - ApiTaskUpdateTaskApprovalStatus | None, - Field(alias="taskApprovalStatus", title="Task Approval Status"), - ] = None - due_date: Annotated[date | None, Field(alias="dueDate")] = None - approver_id: Annotated[str | None, Field(alias="approverId")] = None - tags: list[str] | None = None - - -class ApiTaskCommentRead(BaseItem): - comment_text: Annotated[ - str | None, Field(alias="commentText", description="The text of the comment.") - ] = None - captured: Annotated[ - AwareDatetime | None, - Field(description="The timestamp when this comment was made."), - ] = None - author_id: Annotated[ - str | None, - Field( - alias="authorId", - description="The unique identifier of the user who created this comment.", - ), - ] = None - - -class ApiTaskReadStatus(str, Enum): - """The current state of the task.""" - - OPEN = "OPEN" - NORMAL = "NORMAL" - COMPLETED = "COMPLETED" - DISMISSED = "DISMISSED" - RESOLVED = "RESOLVED" - - -class ApiTaskReadType(str, Enum): - """The type of entry this task is associated with.""" - - ENTRY = "ENTRY" - TRANSACTION = "TRANSACTION" - AP_ENTRY = "AP_ENTRY" - AR_ENTRY = "AR_ENTRY" - AP_OUTSTANDING_ENTRY = "AP_OUTSTANDING_ENTRY" - AR_OUTSTANDING_ENTRY = "AR_OUTSTANDING_ENTRY" - TRA_ENTRY = "TRA_ENTRY" - SUBLEDGER_ENTRY = "SUBLEDGER_ENTRY" - - -class ApiTaskReadSampleType(str, Enum): - """The sampling method used to create this task.""" - - RISK_BASED = "RISK_BASED" - RANDOM = "RANDOM" - MANUAL = "MANUAL" - MONETARY_UNIT_SAMPLING = "MONETARY_UNIT_SAMPLING" - - -class ApiTaskReadTaskApprovalStatus(str, Enum): - PENDING = "PENDING" - REJECTED = "REJECTED" - APPROVED = "APPROVED" - - -class MoneyRead(BaseItem): - amount: int | None = None - currency: str | None = None - - -class ApiFilterAccountConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterAccountSelection(BaseItem): - name: Annotated[ - str | None, Field(description="The display name of the account being selected.") - ] = None - code: Annotated[ - str | None, - Field( - description="The account grouping code or account ID of the selected account." - ), - ] = None - use_account_id: Annotated[ - bool | None, - Field( - alias="useAccountId", - description="If `true` then the selected account will be identified by the account ID rather than the grouping code.", - ), - ] = None - - -class ApiFilterComplexMonetaryFlowConditionApiFilterComplexMonetaryFlowCondition( - BaseItem -): - type: Annotated[ - Literal["MONETARY_FLOW"] | None, Field(title="Filter Condition Type") - ] = "MONETARY_FLOW" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - monetary_flow_type: Annotated[ - Literal["COMPLEX_FLOW"] | None, - Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), - ] = "COMPLEX_FLOW" - - -class ApiFilterConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterConditionUpdateType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterControlPointConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterControlPointConditionRiskLevel(str, Enum): - """The risk level of the selected control points.""" - - HIGH_RISK = "HIGH_RISK" - MEDIUM_RISK = "MEDIUM_RISK" - LOW_RISK = "LOW_RISK" - - -class ApiFilterControlPointSelection(BaseItem): - id: Annotated[ - str | None, Field(description="The ID of the selected control point.") - ] = None - name: Annotated[ - str | None, Field(description="The display name of the control point.") - ] = None - symbolic_name: Annotated[ - str | None, - Field( - alias="symbolicName", - description="The symbolic name of the target control point. For custom control points this is the symbolic name of the control point it is based on.", - ), - ] = None - rules_based: Annotated[bool | None, Field(alias="rulesBased")] = None - - -class ApiFilterDateConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterDateConditionDateType(str, Enum): - """The type of date condition.""" - - BEFORE = "BEFORE" - AFTER = "AFTER" - SPECIFIC_VALUE = "SPECIFIC_VALUE" - BETWEEN = "BETWEEN" - - -class ApiFilterDateConditionApiFilterDateCondition13(BaseItem): - type: Annotated[ - Literal["DATE"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "DATE" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - date_type: Annotated[ - ApiFilterDateConditionDateType | None, - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] = None - - -class ApiFilterDateRangeConditionApiFilterDateRangeCondition(BaseItem): - type: Annotated[Literal["DATE"] | None, Field(title="Filter Condition Type")] = ( - "DATE" - ) - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - date_type: Annotated[ - Literal["BETWEEN"] | None, Field(alias="dateType", title="Filter Date Type") - ] = "BETWEEN" - range_start: Annotated[ - date | None, - Field( - alias="rangeStart", - description="The start of an ISO date range to compare entries to.", - ), - ] = None - range_end: Annotated[ - date | None, - Field( - alias="rangeEnd", - description="The end of an ISO date range to compare entries to.", - ), - ] = None - - -class ApiFilterDateValueConditionDateType(str, Enum): - AFTER = "AFTER" - BEFORE = "BEFORE" - SPECIFIC_VALUE = "SPECIFIC_VALUE" - - -class ApiFilterDateValueConditionApiFilterDateValueCondition(BaseItem): - type: Annotated[Literal["DATE"] | None, Field(title="Filter Condition Type")] = ( - "DATE" - ) - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - date_type: Annotated[ - ApiFilterDateValueConditionDateType | None, - Field(alias="dateType", title="Filter Date Type"), - ] = None - value: Annotated[ - date | None, Field(description="An ISO date value to compare entries to.") - ] = None - - -class ApiFilterGroupConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterGroupConditionOperator(str, Enum): - """The operator to be applied to conditions within this group.""" - - AND = "AND" - OR = "OR" - - -class ApiFilterGroupConditionUpdateType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterGroupConditionUpdateOperator(str, Enum): - """The operator to be applied to conditions within this group.""" - - AND = "AND" - OR = "OR" - - -class ApiFilterMaterialityConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterMaterialityConditionMaterialityOption(str, Enum): - """The type of materiality comparison.""" - - ABOVE = "ABOVE" - BELOW = "BELOW" - PERCENTAGE = "PERCENTAGE" - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition13(BaseItem): - type: Annotated[ - Literal["MATERIALITY"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "MATERIALITY" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - materiality_option: Annotated[ - ApiFilterMaterialityConditionMaterialityOption | None, - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] = None - - -class ApiFilterMaterialityOptionConditionMaterialityOption(str, Enum): - ABOVE = "ABOVE" - BELOW = "BELOW" - - -class ApiFilterMaterialityOptionConditionApiFilterMaterialityOptionCondition(BaseItem): - type: Annotated[ - Literal["MATERIALITY"] | None, Field(title="Filter Condition Type") - ] = "MATERIALITY" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - materiality_option: Annotated[ - ApiFilterMaterialityOptionConditionMaterialityOption | None, - Field(alias="materialityOption", title="Filter Materiality Value Options"), - ] = None - - -class ApiFilterMaterialityValueConditionApiFilterMaterialityValueCondition(BaseItem): - type: Annotated[ - Literal["MATERIALITY"] | None, Field(title="Filter Condition Type") - ] = "MATERIALITY" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - materiality_option: Annotated[ - Literal["PERCENTAGE"] | None, - Field(alias="materialityOption", title="Filter Materiality Value Options"), - ] = "PERCENTAGE" - value: Annotated[ - float | None, - Field( - description="The percentage value, as a decimal number, with 100.00 being 100%." - ), - ] = None - - -class ApiFilterMonetaryFlowConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterMonetaryFlowConditionMonetaryFlowType(str, Enum): - """The type of monetary flow this filter will match.""" - - SIMPLE_FLOW = "SIMPLE_FLOW" - COMPLEX_FLOW = "COMPLEX_FLOW" - SPECIFIC_FLOW = "SPECIFIC_FLOW" - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13(BaseItem): - type: Annotated[ - Literal["MONETARY_FLOW"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "MONETARY_FLOW" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - monetary_flow_type: Annotated[ - ApiFilterMonetaryFlowConditionMonetaryFlowType | None, - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] = None - - -class ApiFilterMonetaryValueConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterMonetaryValueConditionMonetaryValueType(str, Enum): - """The type of monetary value condition.""" - - MORE_THAN = "MORE_THAN" - LESS_THAN = "LESS_THAN" - SPECIFIC_VALUE = "SPECIFIC_VALUE" - BETWEEN = "BETWEEN" - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13(BaseItem): - type: Annotated[ - Literal["MONEY"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "MONEY" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - monetary_value_type: Annotated[ - ApiFilterMonetaryValueConditionMonetaryValueType | None, - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] = None - - -class ApiFilterMonetaryValueRangeConditionApiFilterMonetaryValueRangeCondition( - BaseItem -): - type: Annotated[Literal["MONEY"] | None, Field(title="Filter Condition Type")] = ( - "MONEY" - ) - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - monetary_value_type: Annotated[ - Literal["BETWEEN"] | None, - Field(alias="monetaryValueType", title="Filter Monetary Type"), - ] = "BETWEEN" - range_start: Annotated[ - int | None, - Field( - alias="rangeStart", - description="The start of the range, as a MONEY_100 formatted number to compare with entries.", - ), - ] = None - range_end: Annotated[ - int | None, - Field( - alias="rangeEnd", - description="The end of the range, as a MONEY_100 formatted number to compare with entries.", - ), - ] = None - - -class ApiFilterMonetaryValueValueConditionMonetaryValueType(str, Enum): - MORE_THAN = "MORE_THAN" - SPECIFIC_VALUE = "SPECIFIC_VALUE" - LESS_THAN = "LESS_THAN" - - -class ApiFilterMonetaryValueValueConditionApiFilterMonetaryValueValueCondition( - BaseItem -): - type: Annotated[Literal["MONEY"] | None, Field(title="Filter Condition Type")] = ( - "MONEY" - ) - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - monetary_value_type: Annotated[ - ApiFilterMonetaryValueValueConditionMonetaryValueType | None, - Field(alias="monetaryValueType", title="Filter Monetary Type"), - ] = None - value: Annotated[ - int | None, - Field(description="The MONEY_100 formatted number to compare with entries."), - ] = None - - -class ApiFilterNumericalValueConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterNumericalValueConditionNumericalValueType(str, Enum): - """The type of numerical value condition.""" - - MORE_THAN = "MORE_THAN" - LESS_THAN = "LESS_THAN" - SPECIFIC_VALUE = "SPECIFIC_VALUE" - BETWEEN = "BETWEEN" - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13(BaseItem): - type: Annotated[ - Literal["NUMERICAL"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "NUMERICAL" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - numerical_value_type: Annotated[ - ApiFilterNumericalValueConditionNumericalValueType | None, - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] = None - - -class ApiFilterNumericalValueRangeConditionApiFilterNumericalValueRangeCondition( - BaseItem -): - type: Annotated[ - Literal["NUMERICAL"] | None, Field(title="Filter Condition Type") - ] = "NUMERICAL" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - numerical_value_type: Annotated[ - Literal["BETWEEN"] | None, - Field(alias="numericalValueType", title="Filter Numerical Value Type"), - ] = "BETWEEN" - range_start: Annotated[ - int | None, - Field( - alias="rangeStart", - description="The start value of a range to compare entries to.", - ), - ] = None - range_end: Annotated[ - int | None, - Field( - alias="rangeEnd", - description="The end value of a range to compare entries to.", - ), - ] = None - - -class ApiFilterNumericalValueValueConditionNumericalValueType(str, Enum): - MORE_THAN = "MORE_THAN" - SPECIFIC_VALUE = "SPECIFIC_VALUE" - LESS_THAN = "LESS_THAN" - - -class ApiFilterNumericalValueValueConditionApiFilterNumericalValueValueCondition( - BaseItem -): - type: Annotated[ - Literal["NUMERICAL"] | None, Field(title="Filter Condition Type") - ] = "NUMERICAL" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - numerical_value_type: Annotated[ - ApiFilterNumericalValueValueConditionNumericalValueType | None, - Field(alias="numericalValueType", title="Filter Numerical Value Type"), - ] = None - value: Annotated[ - int | None, Field(description="A value to compare entries to.") - ] = None - - -class ApiFilterPopulationsConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition13(BaseItem): - type: Annotated[ - Literal["POPULATIONS"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "POPULATIONS" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - population_ids: Annotated[ - list[str] | None, - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] = None - - -class ApiFilterRiskScoreConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterRiskScoreConditionRiskScoreType(str, Enum): - """Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.""" - - PERCENT = "PERCENT" - HML = "HML" - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13(BaseItem): - type: Annotated[ - Literal["RISK_SCORE"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "RISK_SCORE" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - risk_score_type: Annotated[ - ApiFilterRiskScoreConditionRiskScoreType | None, - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] = None - risk_score_id: Annotated[ - str | None, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] = None - risk_score_label: Annotated[ - str | None, - Field( - alias="riskScoreLabel", - description="The display name of the risk score being filtered.", - ), - ] = None - - -class ApiFilterRiskScoreHMLConditionValue(str, Enum): - HIGH = "HIGH" - MEDIUM = "MEDIUM" - LOW = "LOW" - UNSCORED = "UNSCORED" - - -class ApiFilterRiskScoreHMLConditionApiFilterRiskScoreHMLCondition(BaseItem): - type: Annotated[ - Literal["RISK_SCORE"] | None, Field(title="Filter Condition Type") - ] = "RISK_SCORE" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - risk_score_type: Annotated[ - Literal["HML"] | None, - Field(alias="riskScoreType", title="Filter Risk Score Type"), - ] = "HML" - risk_score_id: Annotated[str | None, Field(alias="riskScoreId")] = None - risk_score_label: Annotated[str | None, Field(alias="riskScoreLabel")] = None - values: Annotated[ - list[ApiFilterRiskScoreHMLConditionValue] | None, - Field(description="A list of HML options to include in the filter."), - ] = None - - -class ApiFilterRiskScorePercentConditionRiskScorePercentType(str, Enum): - """Determines the type of risk score percent condition to filter.""" - - MORE_THAN = "MORE_THAN" - LESS_THAN = "LESS_THAN" - BETWEEN = "BETWEEN" - CUSTOM_RANGE = "CUSTOM_RANGE" - UNSCORED = "UNSCORED" - - -class ApiFilterRiskScorePercentConditionApiFilterRiskScorePercentCondition(BaseItem): - type: Annotated[ - Literal["RISK_SCORE"] | None, Field(title="Filter Condition Type") - ] = "RISK_SCORE" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - risk_score_type: Annotated[ - Literal["PERCENT"] | None, - Field(alias="riskScoreType", title="Filter Risk Score Type"), - ] = "PERCENT" - risk_score_id: Annotated[str | None, Field(alias="riskScoreId")] = None - risk_score_label: Annotated[str | None, Field(alias="riskScoreLabel")] = None - risk_score_percent_type: Annotated[ - ApiFilterRiskScorePercentConditionRiskScorePercentType | None, - Field( - alias="riskScorePercentType", - description="Determines the type of risk score percent condition to filter.", - title="Filter Risk Score Percent Type", - ), - ] = None - - -class ApiFilterRiskScorePercentRangeConditionRiskScorePercentType(str, Enum): - BETWEEN = "BETWEEN" - CUSTOM_RANGE = "CUSTOM_RANGE" - - -class ApiFilterRiskScorePercentRangeConditionApiFilterRiskScorePercentRangeCondition( - BaseItem -): - type: Annotated[ - Literal["RISK_SCORE"] | None, Field(title="Filter Condition Type") - ] = "RISK_SCORE" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - risk_score_type: Annotated[ - Literal["PERCENT"] | None, - Field(alias="riskScoreType", title="Filter Risk Score Type"), - ] = "PERCENT" - risk_score_id: Annotated[str | None, Field(alias="riskScoreId")] = None - risk_score_label: Annotated[str | None, Field(alias="riskScoreLabel")] = None - risk_score_percent_type: Annotated[ - ApiFilterRiskScorePercentRangeConditionRiskScorePercentType | None, - Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), - ] = None - range_start: Annotated[ - int | None, - Field( - alias="rangeStart", - description="The start of the number range between 0 and 10,000.", - ), - ] = None - range_end: Annotated[ - int | None, - Field( - alias="rangeEnd", - description="The end of the number range between 0 and 10,000.", - ), - ] = None - - -class ApiFilterRiskScorePercentUnscoredConditionApiFilterRiskScorePercentUnscoredCondition( - BaseItem -): - type: Annotated[ - Literal["RISK_SCORE"] | None, Field(title="Filter Condition Type") - ] = "RISK_SCORE" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - risk_score_type: Annotated[ - Literal["PERCENT"] | None, - Field(alias="riskScoreType", title="Filter Risk Score Type"), - ] = "PERCENT" - risk_score_id: Annotated[str | None, Field(alias="riskScoreId")] = None - risk_score_label: Annotated[str | None, Field(alias="riskScoreLabel")] = None - risk_score_percent_type: Annotated[ - Literal["UNSCORED"] | None, - Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), - ] = "UNSCORED" - - -class ApiFilterRiskScorePercentValueConditionRiskScorePercentType(str, Enum): - MORE_THAN = "MORE_THAN" - LESS_THAN = "LESS_THAN" - - -class ApiFilterRiskScorePercentValueConditionApiFilterRiskScorePercentValueCondition( - BaseItem -): - type: Annotated[ - Literal["RISK_SCORE"] | None, Field(title="Filter Condition Type") - ] = "RISK_SCORE" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - risk_score_type: Annotated[ - Literal["PERCENT"] | None, - Field(alias="riskScoreType", title="Filter Risk Score Type"), - ] = "PERCENT" - risk_score_id: Annotated[str | None, Field(alias="riskScoreId")] = None - risk_score_label: Annotated[str | None, Field(alias="riskScoreLabel")] = None - risk_score_percent_type: Annotated[ - ApiFilterRiskScorePercentValueConditionRiskScorePercentType | None, - Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), - ] = None - value: Annotated[ - int | None, - Field( - description="A number between 0 and 10,000 used as part of a more than, or less than filter." - ), - ] = None - - -class ApiFilterSimpleMonetaryFlowConditionApiFilterSimpleMonetaryFlowCondition( - BaseItem -): - type: Annotated[ - Literal["MONETARY_FLOW"] | None, Field(title="Filter Condition Type") - ] = "MONETARY_FLOW" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - monetary_flow_type: Annotated[ - Literal["SIMPLE_FLOW"] | None, - Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), - ] = "SIMPLE_FLOW" - - -class ApiFilterSpecificMonetaryFlowConditionSpecificMonetaryFlowType(str, Enum): - """The type of specific monetary flow.""" - - SPECIFIC_VALUE = "SPECIFIC_VALUE" - MORE_THAN = "MORE_THAN" - BETWEEN = "BETWEEN" - - -class ApiFilterSpecificMonetaryFlowConditionApiFilterSpecificMonetaryFlowCondition( - BaseItem -): - type: Annotated[ - Literal["MONETARY_FLOW"] | None, Field(title="Filter Condition Type") - ] = "MONETARY_FLOW" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - monetary_flow_type: Annotated[ - Literal["SPECIFIC_FLOW"] | None, - Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), - ] = "SPECIFIC_FLOW" - credit_account: Annotated[ - ApiFilterAccountSelection | None, - Field( - alias="creditAccount", - description="The selected credit account in the monetary flow.", - ), - ] = None - debit_account: Annotated[ - ApiFilterAccountSelection | None, - Field( - alias="debitAccount", - description="The selected debit account in the monetary flow.", - ), - ] = None - specific_monetary_flow_type: Annotated[ - ApiFilterSpecificMonetaryFlowConditionSpecificMonetaryFlowType | None, - Field( - alias="specificMonetaryFlowType", - description="The type of specific monetary flow.", - title="Filter Specific Monetary Flow Type", - ), - ] = None - - -class ApiFilterSpecificMonetaryFlowRangeConditionApiFilterSpecificMonetaryFlowRangeCondition( - BaseItem -): - type: Annotated[ - Literal["MONETARY_FLOW"] | None, Field(title="Filter Condition Type") - ] = "MONETARY_FLOW" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - monetary_flow_type: Annotated[ - Literal["SPECIFIC_FLOW"] | None, - Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), - ] = "SPECIFIC_FLOW" - credit_account: Annotated[ - ApiFilterAccountSelection | None, Field(alias="creditAccount") - ] = None - debit_account: Annotated[ - ApiFilterAccountSelection | None, Field(alias="debitAccount") - ] = None - specific_monetary_flow_type: Annotated[ - Literal["BETWEEN"] | None, - Field( - alias="specificMonetaryFlowType", title="Filter Specific Monetary Flow Type" - ), - ] = "BETWEEN" - range_start: Annotated[ - int | None, - Field( - alias="rangeStart", - description="The start of the range, as a MONEY_100 formatted number to compare with entries.", - ), - ] = None - range_end: Annotated[ - int | None, - Field( - alias="rangeEnd", - description="The end of the range, as a MONEY_100 formatted number to compare with entries.", - ), - ] = None - - -class ApiFilterSpecificMonetaryFlowValueConditionSpecificMonetaryFlowType(str, Enum): - SPECIFIC_VALUE = "SPECIFIC_VALUE" - MORE_THAN = "MORE_THAN" - - -class ApiFilterSpecificMonetaryFlowValueConditionApiFilterSpecificMonetaryFlowValueCondition( - BaseItem -): - type: Annotated[ - Literal["MONETARY_FLOW"] | None, Field(title="Filter Condition Type") - ] = "MONETARY_FLOW" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - monetary_flow_type: Annotated[ - Literal["SPECIFIC_FLOW"] | None, - Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), - ] = "SPECIFIC_FLOW" - credit_account: Annotated[ - ApiFilterAccountSelection | None, Field(alias="creditAccount") - ] = None - debit_account: Annotated[ - ApiFilterAccountSelection | None, Field(alias="debitAccount") - ] = None - specific_monetary_flow_type: Annotated[ - ApiFilterSpecificMonetaryFlowValueConditionSpecificMonetaryFlowType | None, - Field( - alias="specificMonetaryFlowType", title="Filter Specific Monetary Flow Type" - ), - ] = None - value: Annotated[ - int | None, - Field(description="The MONEY_100 formatted number to compare with entries."), - ] = None - - -class ApiFilterStringArrayConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition13(BaseItem): - type: Annotated[ - Literal["STRING_ARRAY"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "STRING_ARRAY" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - values: Annotated[ - list[str] | None, - Field(description="The set of text values used to filter entries."), - ] = None - - -class ApiFilterStringConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterStringConditionApiFilterStringCondition13(BaseItem): - type: Annotated[ - Literal["STRING"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "STRING" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - value: Annotated[ - str | None, Field(description="The text value used to filter entries.") - ] = None - - -class ApiFilterTypeaheadEntryConditionType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterUpdateFilterType(str, Enum): - """The type of this filter. Determines in which context analyses can access it.""" - - LIBRARY = "LIBRARY" - ORGANIZATION = "ORGANIZATION" - PRIVATE = "PRIVATE" - ENGAGEMENT = "ENGAGEMENT" - - -class ApiTypeaheadEntry(BaseItem): - lookup_id: Annotated[ - str | None, - Field(alias="lookupId", description="The identifier of the selected entry."), - ] = None - display_name: Annotated[ - str | None, - Field( - alias="displayName", description="The display name of the selected entry." - ), - ] = None - hide_lookup_id: Annotated[ - bool | None, - Field( - alias="hideLookupId", - description="If `false` then the entry will be displayed with both the lookup ID and the display name. If `true` then only the display name will be used when displaying this entry.", - ), - ] = None - - -class ApiFilterConditionReadType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterGroupConditionReadType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterGroupConditionReadOperator(str, Enum): - """The operator to be applied to conditions within this group.""" - - AND = "AND" - OR = "OR" - - -class ApiFilterReadFilterType(str, Enum): - """The type of this filter. Determines in which context analyses can access it.""" - - LIBRARY = "LIBRARY" - ORGANIZATION = "ORGANIZATION" - PRIVATE = "PRIVATE" - ENGAGEMENT = "ENGAGEMENT" - - -class ApiFilterReadDataType(str, Enum): - """The intended data type for this filter.""" - - TRANSACTIONS = "TRANSACTIONS" - ENTRIES = "ENTRIES" - LIBRARY = "LIBRARY" - - -class ApiRiskRangeBoundsUpdate(BaseItem): - low_threshold: Annotated[ - int | None, - Field( - alias="lowThreshold", - description="The low threshold of the risk range.", - ge=0, - le=10000, - ), - ] = None - high_threshold: Annotated[ - int | None, - Field( - alias="highThreshold", - description="The high threshold of the risk range.", - ge=0, - le=10000, - ), - ] = None - - -class ApiRiskRangesUpdate(BaseItem): - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - low: Annotated[ - ApiRiskRangeBoundsUpdate | None, Field(description="The low range bounds.") - ] = None - medium: Annotated[ - ApiRiskRangeBoundsUpdate | None, Field(description="The medium range bounds.") - ] = None - high: Annotated[ - ApiRiskRangeBoundsUpdate | None, Field(description="The high range bounds.") - ] = None - name: Annotated[ - str | None, - Field(description="The name of the risk range.", max_length=80, min_length=0), - ] = None - description: Annotated[ - str | None, - Field( - description="The description of the risk range.", - max_length=250, - min_length=0, - ), - ] = None - - -class ApiRiskRangeBoundsRead(BaseItem): - low_threshold: Annotated[ - int | None, - Field( - alias="lowThreshold", - description="The low threshold of the risk range.", - ge=0, - le=10000, - ), - ] = None - high_threshold: Annotated[ - int | None, - Field( - alias="highThreshold", - description="The high threshold of the risk range.", - ge=0, - le=10000, - ), - ] = None - - -class ApiRiskRangesRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - low: Annotated[ - ApiRiskRangeBoundsRead | None, Field(description="The low range bounds.") - ] = None - medium: Annotated[ - ApiRiskRangeBoundsRead | None, Field(description="The medium range bounds.") - ] = None - high: Annotated[ - ApiRiskRangeBoundsRead | None, Field(description="The high range bounds.") - ] = None - system: Annotated[ - bool | None, - Field( - description="Indicates whether or not the risk ranges are a MindBridge system risk range." - ), - ] = None - library_id: Annotated[ - str | None, - Field( - alias="libraryId", - description="Identifies the library associated with this risk range.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", - description="Identifies the engagement associated with this risk range.", - ), - ] = None - analysis_type_id: Annotated[ - str | None, - Field( - alias="analysisTypeId", - description="Identifies the analysis type associated with this risk range.", - ), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the risk range.", max_length=80, min_length=0), - ] = None - description: Annotated[ - str | None, - Field( - description="The description of the risk range.", - max_length=250, - min_length=0, - ), - ] = None - - -class ApiOrganizationUpdate(BaseItem): - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the organization.", max_length=80, min_length=0), - ] = None - external_client_code: Annotated[ - str | None, - Field( - alias="externalClientCode", - description="The unique client ID applied to this organization.", - max_length=80, - min_length=0, - ), - ] = None - manager_user_ids: Annotated[ - list[str] | None, - Field( - alias="managerUserIds", - description="Identifies users assigned to the organization manager role.", - ), - ] = None - - -class ApiOrganizationRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the organization.", max_length=80, min_length=0), - ] = None - external_client_code: Annotated[ - str | None, - Field( - alias="externalClientCode", - description="The unique client ID applied to this organization.", - max_length=80, - min_length=0, - ), - ] = None - manager_user_ids: Annotated[ - list[str] | None, - Field( - alias="managerUserIds", - description="Identifies users assigned to the organization manager role.", - ), - ] = None - - -class ApiLibraryUpdateRiskScoreDisplay(str, Enum): - """Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.""" - - HIGH_MEDIUM_LOW = "HIGH_MEDIUM_LOW" - PERCENTAGE = "PERCENTAGE" - - -class ApiLibraryUpdate(BaseItem): - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - name: Annotated[ - str | None, - Field( - description="The current name of the library.", max_length=80, min_length=0 - ), - ] = None - warnings_dismissed: Annotated[ - bool | None, - Field( - alias="warningsDismissed", - description="When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI.", - ), - ] = None - analysis_type_ids: Annotated[ - list[str] | None, - Field( - alias="analysisTypeIds", - description="Identifies the analysis types used in the library.", - ), - ] = None - default_delimiter: Annotated[ - str | None, - Field( - alias="defaultDelimiter", - description="Identifies the default delimiter used in imported CSV files.", - ), - ] = None - control_point_selection_permission: Annotated[ - bool | None, - Field( - alias="controlPointSelectionPermission", - description="When set to `true`, control points can be added or removed within each risk score.", - ), - ] = None - control_point_weight_permission: Annotated[ - bool | None, - Field( - alias="controlPointWeightPermission", - description="When set to `true`, the weight of each control point can be adjusted within each risk score.", - ), - ] = None - control_point_settings_permission: Annotated[ - bool | None, - Field( - alias="controlPointSettingsPermission", - description="When set to `true`, individual control point settings can be adjusted within each risk score.", - ), - ] = None - risk_score_and_groups_selection_permission: Annotated[ - bool | None, - Field( - alias="riskScoreAndGroupsSelectionPermission", - description="When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited.", - ), - ] = None - risk_range_edit_permission: Annotated[ - bool | None, Field(alias="riskRangeEditPermission") - ] = None - risk_score_display: Annotated[ - ApiLibraryUpdateRiskScoreDisplay | None, - Field( - alias="riskScoreDisplay", - description="Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.", - ), - ] = None - archived: Annotated[ - bool | None, - Field( - description="Indicates whether or not the library is archived. Archived libraries cannot be selected when creating an engagement." - ), - ] = None - - -class ApiLibraryReadRiskScoreDisplay(str, Enum): - """Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.""" - - HIGH_MEDIUM_LOW = "HIGH_MEDIUM_LOW" - PERCENTAGE = "PERCENTAGE" - - -class ProblemReadProblemType(str, Enum): - """The type of problem.""" - - UNKNOWN = "UNKNOWN" - ILLEGAL_ARGUMENT = "ILLEGAL_ARGUMENT" - CANNOT_DELETE = "CANNOT_DELETE" - GREATER_VALUE_REQUIRED = "GREATER_VALUE_REQUIRED" - LESS_VALUE_REQUIRED = "LESS_VALUE_REQUIRED" - NON_UNIQUE_VALUE = "NON_UNIQUE_VALUE" - USER_EMAIL_ALREADY_EXISTS = "USER_EMAIL_ALREADY_EXISTS" - INCORRECT_DATA_TYPE = "INCORRECT_DATA_TYPE" - RATIO_CONVERSION_FAILED = "RATIO_CONVERSION_FAILED" - RISK_SCORE_FILTER_CONVERSION_FAILED = "RISK_SCORE_FILTER_CONVERSION_FAILED" - FILTER_CONVERSION_FAILED = "FILTER_CONVERSION_FAILED" - POPULATION_CONVERSION_FAILED = "POPULATION_CONVERSION_FAILED" - INSUFFICIENT_PERMISSION = "INSUFFICIENT_PERMISSION" - ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS = "ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS" - ACCOUNT_GROUPING_IN_USE_BY_LIBRARY = "ACCOUNT_GROUPING_IN_USE_BY_LIBRARY" - INVALID_ACCOUNT_GROUPING_FILE = "INVALID_ACCOUNT_GROUPING_FILE" - DELIVERY_FAILURE = "DELIVERY_FAILURE" - INVALID_STATE = "INVALID_STATE" - - -class ProblemReadSeverity(str, Enum): - """Indicates how severe the problem is.""" - - WARNING = "WARNING" - ERROR = "ERROR" - - -class ProblemRead(BaseItem): - problem_type: Annotated[ - ProblemReadProblemType | None, - Field(alias="problemType", description="The type of problem."), - ] = None - severity: Annotated[ - ProblemReadSeverity | None, - Field(description="Indicates how severe the problem is."), - ] = None - entity_type: Annotated[ - str | None, - Field( - alias="entityType", - description="The type of entity impacted by the problem.", - ), - ] = None - entity_id: Annotated[ - str | None, - Field( - alias="entityId", - description="Identifies the entity impacted by the problem.", - ), - ] = None - identifier: Annotated[ - str | None, Field(description="Identifies the field causing the problem.") - ] = None - values: Annotated[ - list[str] | None, - Field(description="Identifies the values causing the problem."), - ] = None - reason: Annotated[ - str | None, Field(description="The reason(s) why the problem occurred.") - ] = None - suggested_values: Annotated[ - list[str] | None, - Field( - alias="suggestedValues", - description="A suggested set of values to assist in resolving the problem.", - ), - ] = None - problem_count: Annotated[ - int | None, - Field( - alias="problemCount", - description="The total number of occurrences of this problem.", - ), - ] = None - - -class ApiFileManagerEntityUpdateType(str, Enum): - """Indicates whether the object is a DIRECTORY or a FILE.""" - - DIRECTORY = "DIRECTORY" - FILE = "FILE" - - -class ApiFileManagerEntityUpdate(BaseItem): - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - type: Annotated[ - ApiFileManagerEntityUpdateType | None, - Field(description="Indicates whether the object is a DIRECTORY or a FILE."), - ] = None - parent_file_manager_entity_id: Annotated[ - str | None, - Field( - alias="parentFileManagerEntityId", - description="Identifies the parent directory. If NULL, the directory is positioned at the root level.", - ), - ] = None - - -class ApiFileManagerFileUpdate(ApiFileManagerEntityUpdate): - name: Annotated[ - str | None, - Field(description="The current name of the file, excluding the extension."), - ] = None - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiFileManagerEntityReadType(str, Enum): - """Indicates whether the object is a DIRECTORY or a FILE.""" - - DIRECTORY = "DIRECTORY" - FILE = "FILE" - - -class ApiFileManagerEntityRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - type: Annotated[ - ApiFileManagerEntityReadType | None, - Field(description="Indicates whether the object is a DIRECTORY or a FILE."), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - parent_file_manager_entity_id: Annotated[ - str | None, - Field( - alias="parentFileManagerEntityId", - description="Identifies the parent directory. If NULL, the directory is positioned at the root level.", - ), - ] = None - - -class StatusEnum(str, Enum): - MODIFIED = "MODIFIED" - ROLLED_FORWARD = "ROLLED_FORWARD" - - -class ApiFileManagerFileRead(ApiFileManagerEntityRead): - original_name: Annotated[ - str | None, - Field( - alias="originalName", - description="The name of the file as it appeared when first imported, including the extension.", - ), - ] = None - name: Annotated[ - str | None, - Field(description="The current name of the file, excluding the extension."), - ] = None - extension: Annotated[ - str | None, Field(description="The suffix used at the end of the file.") - ] = None - status: Annotated[ - list[StatusEnum] | None, - Field(description="The status of the file as it appears in MindBridge."), - ] = None - file_info_id: Annotated[ - str | None, - Field(alias="fileInfoId", description="Identifies the associated file info."), - ] = None - engagement_id: Annotated[ - str, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiAccountingPeriodUpdateFrequency(str, Enum): - """The frequency with which your client's financial data is reported.""" - - ANNUAL = "ANNUAL" - SEMI_ANNUAL = "SEMI_ANNUAL" - QUARTERLY = "QUARTERLY" - MONTHLY = "MONTHLY" - THIRTEEN_PERIODS = "THIRTEEN_PERIODS" - - -class ApiAccountingPeriodUpdate(BaseItem): - fiscal_start_month: Annotated[ - int | None, - Field( - alias="fiscalStartMonth", - description="The month that the fiscal period begins.", - ), - ] = None - fiscal_start_day: Annotated[ - int | None, - Field( - alias="fiscalStartDay", - description="The date of the month that the fiscal period begins.", - ), - ] = None - frequency: Annotated[ - ApiAccountingPeriodUpdateFrequency | None, - Field( - description="The frequency with which your client's financial data is reported." - ), - ] = None - - -class ApiEngagementUpdate(BaseItem): - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the engagement.", max_length=80, min_length=0), - ] = None - billing_code: Annotated[ - str | None, - Field( - alias="billingCode", - description="A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage.", - ), - ] = None - accounting_period: Annotated[ - ApiAccountingPeriodUpdate | None, - Field( - alias="accountingPeriod", description="Details about the accounting period." - ), - ] = None - audit_period_end_date: Annotated[ - date | None, - Field( - alias="auditPeriodEndDate", - description="The last day of the occurring audit.", - ), - ] = None - accounting_package: Annotated[ - str | None, - Field( - alias="accountingPackage", - description="The ERP or financial management system that your client is using.", - ), - ] = None - industry: Annotated[ - str | None, - Field(description="The type of industry that your client operates within."), - ] = None - engagement_lead_id: Annotated[ - str | None, - Field( - alias="engagementLeadId", - description="Identifies the user who will lead the engagement.", - ), - ] = None - reporting_period_configuration_id: Annotated[ - str | None, - Field( - alias="reportingPeriodConfigurationId", - description="Identifies the associated reporting period configuration. If null the analyses use a standard reporting period.", - ), - ] = None - auditor_ids: Annotated[ - list[str] | None, - Field( - alias="auditorIds", - description="Identifies the users who will act as auditors in the engagement.", - ), - ] = None - - -class ApiAccountingPeriodReadFrequency(str, Enum): - """The frequency with which your client's financial data is reported.""" - - ANNUAL = "ANNUAL" - SEMI_ANNUAL = "SEMI_ANNUAL" - QUARTERLY = "QUARTERLY" - MONTHLY = "MONTHLY" - THIRTEEN_PERIODS = "THIRTEEN_PERIODS" - - -class ApiAccountingPeriodRead(BaseItem): - fiscal_start_month: Annotated[ - int | None, - Field( - alias="fiscalStartMonth", - description="The month that the fiscal period begins.", - ), - ] = None - fiscal_start_day: Annotated[ - int | None, - Field( - alias="fiscalStartDay", - description="The date of the month that the fiscal period begins.", - ), - ] = None - frequency: Annotated[ - ApiAccountingPeriodReadFrequency | None, - Field( - description="The frequency with which your client's financial data is reported." - ), - ] = None - - -class ApiEngagementRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - organization_id: Annotated[ - str | None, - Field(alias="organizationId", description="Identifies the organization."), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the engagement.", max_length=80, min_length=0), - ] = None - billing_code: Annotated[ - str | None, - Field( - alias="billingCode", - description="A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage.", - ), - ] = None - library_id: Annotated[ - str | None, Field(alias="libraryId", description="Identifies the library.") - ] = None - accounting_period: Annotated[ - ApiAccountingPeriodRead | None, - Field( - alias="accountingPeriod", description="Details about the accounting period." - ), - ] = None - audit_period_end_date: Annotated[ - date | None, - Field( - alias="auditPeriodEndDate", - description="The last day of the occurring audit.", - ), - ] = None - accounting_package: Annotated[ - str | None, - Field( - alias="accountingPackage", - description="The ERP or financial management system that your client is using.", - ), - ] = None - industry: Annotated[ - str | None, - Field(description="The type of industry that your client operates within."), - ] = None - engagement_lead_id: Annotated[ - str | None, - Field( - alias="engagementLeadId", - description="Identifies the user who will lead the engagement.", - ), - ] = None - reporting_period_configuration_id: Annotated[ - str | None, - Field( - alias="reportingPeriodConfigurationId", - description="Identifies the associated reporting period configuration. If null the analyses use a standard reporting period.", - ), - ] = None - auditor_ids: Annotated[ - list[str] | None, - Field( - alias="auditorIds", - description="Identifies the users who will act as auditors in the engagement.", - ), - ] = None - - -class ApiEngagementAccountGroupUpdate(BaseItem): - code: Annotated[ - str | None, Field(description="The account code for this account group.") - ] = None - mac_code: Annotated[ - str | None, - Field( - alias="macCode", description="The MAC code mapped to this account group." - ), - ] = None - hidden: Annotated[ - bool | None, - Field( - description="When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import." - ), - ] = None - alias: Annotated[ - str | None, - Field( - description="A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping." - ), - ] = None - - -class ApiAccountGroupErrorReadType(str, Enum): - """The type of account group error.""" - - ERROR_LOWEST_LEVEL_WITH_NO_MAC = "ERROR_LOWEST_LEVEL_WITH_NO_MAC" - ERROR_LOWEST_LEVEL_WITHOUT_LEVEL_4_MAC = "ERROR_LOWEST_LEVEL_WITHOUT_LEVEL_4_MAC" - ERROR_INCONSISTENT_SHEET_HIERARCHY = "ERROR_INCONSISTENT_SHEET_HIERARCHY" - - -class ApiAccountGroupErrorRead(BaseItem): - type: Annotated[ - ApiAccountGroupErrorReadType | None, - Field(description="The type of account group error."), - ] = None - arguments: Annotated[ - list[str] | None, - Field( - description="A list of values relevant to the type of account group error." - ), - ] = None - - -class ApiEngagementAccountGroupReadOrigin(str, Enum): - """The process that lead to the creation of the account group.""" - - IMPORTED_FROM_LIBRARY = "IMPORTED_FROM_LIBRARY" - IMPORTED_FROM_ENGAGEMENT = "IMPORTED_FROM_ENGAGEMENT" - ADDED_ON_ENGAGEMENT = "ADDED_ON_ENGAGEMENT" - - -class ApiEngagementAccountGroupRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - engagement_account_grouping_id: Annotated[ - str | None, - Field( - alias="engagementAccountGroupingId", - description="The unique identifier for the engagement account grouping that the engagement account group belongs to.", - ), - ] = None - code: Annotated[ - str | None, Field(description="The account code for this account group.") - ] = None - description: Annotated[ - dict[str, str] | None, - Field(description="A description of the account code for this account group."), - ] = None - lowest_level: Annotated[bool | None, Field(alias="lowestLevel")] = None - hierarchy: Annotated[ - list[str] | None, - Field(description="A list of the parent codes for this account group."), - ] = None - parent_code: Annotated[ - str | None, - Field( - alias="parentCode", description="The parent code for this account group." - ), - ] = None - mac_code: Annotated[ - str | None, - Field( - alias="macCode", description="The MAC code mapped to this account group." - ), - ] = None - account_tags: Annotated[ - list[str] | None, - Field( - alias="accountTags", - description="A list of account tags assigned to this account group.", - ), - ] = None - published_date: Annotated[ - AwareDatetime | None, - Field( - alias="publishedDate", - description="The date this account group was published. If not set, this account group is not published.\n\nPublished account groups cannot be updated.", - ), - ] = None - order_index: Annotated[ - int | None, - Field( - alias="orderIndex", - description="The order in which this account group is displayed, relative to other account groups with the same parent.", - ), - ] = None - errors: Annotated[ - list[ApiAccountGroupErrorRead] | None, - Field(description="A list of errors associated with this account group."), - ] = None - hidden: Annotated[ - bool | None, - Field( - description="When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import." - ), - ] = None - origin: Annotated[ - ApiEngagementAccountGroupReadOrigin | None, - Field( - description="The process that lead to the creation of the account group." - ), - ] = None - alias: Annotated[ - str | None, - Field( - description="A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping." - ), - ] = None - - -class ApiDatabricksAuthorizationUpdateAuthType(str, Enum): - """The authentication method to use. Possible values: PAT, OAUTH_M2M.""" - - PAT = "PAT" - OAUTH_M2_M = "OAUTH_M2M" - - -class ApiDatabricksAuthorizationUpdate(BaseItem): - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - connection_id: Annotated[ - str | None, - Field( - alias="connectionId", - description="The ID of the Connection this authorization belongs to.", - ), - ] = None - auth_type: Annotated[ - ApiDatabricksAuthorizationUpdateAuthType | None, - Field( - alias="authType", - description="The authentication method to use. Possible values: PAT, OAUTH_M2M.", - ), - ] = None - host: Annotated[ - str | None, Field(description="The Databricks server hostname.") - ] = None - port: Annotated[ - int | None, - Field( - description="The port number for the Databricks connection. Typically 443." - ), - ] = None - http_path: Annotated[ - str | None, - Field( - alias="httpPath", - description="The HTTP path for the Databricks SQL warehouse or cluster.", - ), - ] = None - access_token: Annotated[ - str | None, - Field( - alias="accessToken", - description="The personal access token for PAT authentication.", - ), - ] = None - client_id: Annotated[ - str | None, - Field( - alias="clientId", - description="The OAuth client ID for OAUTH_M2M authentication.", - ), - ] = None - client_secret: Annotated[ - str | None, - Field( - alias="clientSecret", - description="The OAuth client secret for OAUTH_M2M authentication.", - ), - ] = None - - -class ApiDatabricksAuthorizationReadAuthType(str, Enum): - """The authentication method to use. Possible values: PAT, OAUTH_M2M.""" - - PAT = "PAT" - OAUTH_M2_M = "OAUTH_M2M" - - -class ApiDatabricksAuthorizationRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - connection_id: Annotated[ - str | None, - Field( - alias="connectionId", - description="The ID of the Connection this authorization belongs to.", - ), - ] = None - auth_type: Annotated[ - ApiDatabricksAuthorizationReadAuthType | None, - Field( - alias="authType", - description="The authentication method to use. Possible values: PAT, OAUTH_M2M.", - ), - ] = None - host: Annotated[ - str | None, Field(description="The Databricks server hostname.") - ] = None - port: Annotated[ - int | None, - Field( - description="The port number for the Databricks connection. Typically 443." - ), - ] = None - http_path: Annotated[ - str | None, - Field( - alias="httpPath", - description="The HTTP path for the Databricks SQL warehouse or cluster.", - ), - ] = None - client_id: Annotated[ - str | None, - Field( - alias="clientId", - description="The OAuth client ID for OAUTH_M2M authentication.", - ), - ] = None - - -class ApiApiTokenUpdate(BaseItem): - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - name: Annotated[ - str | None, - Field( - description="The token record's name. This will also be used as the API Token User's name." - ), - ] = None - - -class ApiApiTokenReadPermission(str, Enum): - API_ORGANIZATIONS_READ = "api.organizations.read" - API_ORGANIZATIONS_WRITE = "api.organizations.write" - API_ORGANIZATIONS_DELETE = "api.organizations.delete" - API_ENGAGEMENTS_READ = "api.engagements.read" - API_ENGAGEMENTS_WRITE = "api.engagements.write" - API_ENGAGEMENTS_DELETE = "api.engagements.delete" - API_ANALYSES_READ = "api.analyses.read" - API_ANALYSES_WRITE = "api.analyses.write" - API_ANALYSES_DELETE = "api.analyses.delete" - API_ANALYSES_RUN = "api.analyses.run" - API_ANALYSIS_SOURCES_READ = "api.analysis-sources.read" - API_ANALYSIS_SOURCES_WRITE = "api.analysis-sources.write" - API_ANALYSIS_SOURCES_DELETE = "api.analysis-sources.delete" - API_FILE_MANAGER_READ = "api.file-manager.read" - API_FILE_MANAGER_WRITE = "api.file-manager.write" - API_FILE_MANAGER_DELETE = "api.file-manager.delete" - API_REPORTING_PERIOD_CONFIG_READ = "api.reporting-period-config.read" - API_REPORTING_PERIOD_CONFIG_WRITE = "api.reporting-period-config.write" - API_REPORTING_PERIOD_CONFIG_DELETE = "api.reporting-period-config.delete" - API_LIBRARIES_READ = "api.libraries.read" - API_LIBRARIES_WRITE = "api.libraries.write" - API_LIBRARIES_DELETE = "api.libraries.delete" - API_ACCOUNT_GROUPINGS_READ = "api.account-groupings.read" - API_ACCOUNT_GROUPINGS_WRITE = "api.account-groupings.write" - API_ACCOUNT_GROUPINGS_DELETE = "api.account-groupings.delete" - API_ENGAGEMENT_ACCOUNT_GROUPINGS_READ = "api.engagement-account-groupings.read" - API_ENGAGEMENT_ACCOUNT_GROUPINGS_WRITE = "api.engagement-account-groupings.write" - API_ENGAGEMENT_ACCOUNT_GROUPINGS_DELETE = "api.engagement-account-groupings.delete" - API_USERS_READ = "api.users.read" - API_USERS_WRITE = "api.users.write" - API_USERS_DELETE = "api.users.delete" - API_DATA_TABLES_READ = "api.data-tables.read" - API_API_TOKENS_READ = "api.api-tokens.read" - API_API_TOKENS_WRITE = "api.api-tokens.write" - API_API_TOKENS_DELETE = "api.api-tokens.delete" - API_TASKS_READ = "api.tasks.read" - API_TASKS_WRITE = "api.tasks.write" - API_TASKS_DELETE = "api.tasks.delete" - API_ADMIN_REPORTS_RUN = "api.admin-reports.run" - API_ANALYSIS_TYPES_READ = "api.analysis-types.read" - API_ANALYSIS_SOURCE_TYPES_READ = "api.analysis-source-types.read" - API_ANALYSIS_TYPE_CONFIGURATION_READ = "api.analysis-type-configuration.read" - API_ANALYSIS_TYPE_CONFIGURATION_WRITE = "api.analysis-type-configuration.write" - API_ANALYSIS_TYPE_CONFIGURATION_DELETE = "api.analysis-type-configuration.delete" - API_RISK_RANGES_READ = "api.risk-ranges.read" - API_RISK_RANGES_WRITE = "api.risk-ranges.write" - API_RISK_RANGES_DELETE = "api.risk-ranges.delete" - API_FILTERS_READ = "api.filters.read" - API_FILTERS_WRITE = "api.filters.write" - API_FILTERS_DELETE = "api.filters.delete" - API_FILE_INFOS_READ = "api.file-infos.read" - API_WEBHOOKS_READ = "api.webhooks.read" - API_WEBHOOKS_WRITE = "api.webhooks.write" - API_WEBHOOKS_DELETE = "api.webhooks.delete" - API_CONNECTIONS_READ = "api.connections.read" - API_CONNECTIONS_WRITE = "api.connections.write" - API_CONNECTIONS_DELETE = "api.connections.delete" - API_CONNECTION_DATA_SOURCES_READ = "api.connection-data-sources.read" - API_CONNECTION_DATA_SOURCES_WRITE = "api.connection-data-sources.write" - API_CONNECTION_DATA_SOURCES_DELETE = "api.connection-data-sources.delete" - SCIM_USER_READ = "scim.user.read" - SCIM_USER_WRITE = "scim.user.write" - SCIM_USER_DELETE = "scim.user.delete" - SCIM_USER_SCHEMA = "scim.user.schema" - - -class ApiApiTokenRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - user_id: Annotated[ - str | None, - Field( - alias="userId", - description="Identifies the API Token User associated with this token.", - ), - ] = None - name: Annotated[ - str | None, - Field( - description="The token record's name. This will also be used as the API Token User's name." - ), - ] = None - partial_token: Annotated[ - str | None, - Field( - alias="partialToken", - description="A partial representation of the API token.", - ), - ] = None - expiry: Annotated[ - AwareDatetime | None, - Field(description="The day on which the API token expires."), - ] = None - allowed_addresses: Annotated[ - list[str] | None, - Field( - alias="allowedAddresses", - description="Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.", - ), - ] = None - permissions: Annotated[ - list[ApiApiTokenReadPermission] | None, - Field( - description="The set of permissions that inform which endpoints this token is authorized to access." - ), - ] = None - - -class ApiRiskGroupFilterUpdate(BaseItem): - values: Annotated[ - list[str] | None, - Field(description="A list of accounts to include in the risk group."), - ] = None - - -class ApiRiskGroupUpdate(BaseItem): - disabled: Annotated[ - bool | None, Field(description="Indicates whether the risk group is disabled.") - ] = None - id: Annotated[ - str | None, - Field(description="The unique object identifier for this risk group."), - ] = None - selected_risk_range: Annotated[ - str | None, - Field( - alias="selectedRiskRange", - description="The selected risk range for the risk group. The selected value must be part of the applicable risk ranges.", - ), - ] = None - applicable_risk_ranges: Annotated[ - list[str] | None, - Field( - alias="applicableRiskRanges", - description="A list of risk ranges that are applicable to the risk group.", - ), - ] = None - filter: Annotated[ - ApiRiskGroupFilterUpdate | None, - Field( - description="A filter based on account hierarchy used to determine which entries are included in the risk group." - ), - ] = None - control_point_weights: Annotated[ - dict[str, int] | None, - Field( - alias="controlPointWeights", - description="A map of control point names to their weights within the risk group.", - ), - ] = None - - -class ApiRiskGroupFilterRead(BaseItem): - values: Annotated[ - list[str] | None, - Field(description="A list of accounts to include in the risk group."), - ] = None - - -class ApiRiskGroupReadRiskAssertionCategory(str, Enum): - """Identifies the risk assertion category of the risk group.""" - - GENERAL = "GENERAL" - ASSETS = "ASSETS" - LIABILITIES_EQUITY = "LIABILITIES_EQUITY" - PROFIT_LOSS = "PROFIT_LOSS" - LIABILITIES = "LIABILITIES" - EQUITY = "EQUITY" - REVENUE = "REVENUE" - EXPENSES = "EXPENSES" - - -class ApiRiskGroupRead(BaseItem): - disabled: Annotated[ - bool | None, Field(description="Indicates whether the risk group is disabled.") - ] = None - id: Annotated[ - str | None, - Field(description="The unique object identifier for this risk group."), - ] = None - system: Annotated[ - bool | None, - Field( - description="Indicates whether the risk group is a MindBridge system risk group." - ), - ] = None - analysis_type_id: Annotated[ - str | None, - Field( - alias="analysisTypeId", - description="Identifies the analysis type that the risk group is associated with.", - ), - ] = None - selected_risk_range: Annotated[ - str | None, - Field( - alias="selectedRiskRange", - description="The selected risk range for the risk group. The selected value must be part of the applicable risk ranges.", - ), - ] = None - applicable_risk_ranges: Annotated[ - list[str] | None, - Field( - alias="applicableRiskRanges", - description="A list of risk ranges that are applicable to the risk group.", - ), - ] = None - filter: Annotated[ - ApiRiskGroupFilterRead | None, - Field( - description="A filter based on account hierarchy used to determine which entries are included in the risk group." - ), - ] = None - control_point_weights: Annotated[ - dict[str, int] | None, - Field( - alias="controlPointWeights", - description="A map of control point names to their weights within the risk group.", - ), - ] = None - control_point_bundle_version: Annotated[ - str | None, - Field( - alias="controlPointBundleVersion", - description="The version of the control point bundle used in this risk group.", - ), - ] = None - name: Annotated[ - dict[str, str] | None, - Field( - description="A map of localized risk group names, keyed by language code." - ), - ] = None - description: Annotated[ - dict[str, str] | None, - Field( - description="A map of localized risk group descriptions, keyed by language code." - ), - ] = None - category: Annotated[ - dict[str, str] | None, - Field(description="Identifies the risk group's category."), - ] = None - risk_assertion_category: Annotated[ - ApiRiskGroupReadRiskAssertionCategory | None, - Field( - alias="riskAssertionCategory", - description="Identifies the risk assertion category of the risk group.", - ), - ] = None - - -class ApiAmbiguousColumnUpdate(BaseItem): - position: Annotated[ - int | None, Field(description="The position of the column with the resolution.") - ] = None - selected_format: Annotated[ - str | None, - Field( - alias="selectedFormat", - description="The data format to be used in case of ambiguity.", - ), - ] = None - - -class ApiAnalysisSourceUpdateTargetWorkflowState(str, Enum): - """The state that the current workflow will advance to.""" - - COMPLETED = "COMPLETED" - CANCELLED = "CANCELLED" - FAILED = "FAILED" - STARTED = "STARTED" - DETECTING_FORMAT = "DETECTING_FORMAT" - ANALYZING_COLUMNS = "ANALYZING_COLUMNS" - CHECKING_INTEGRITY = "CHECKING_INTEGRITY" - SCANNING_TRANSACTION_COMBINATIONS = "SCANNING_TRANSACTION_COMBINATIONS" - PARSING = "PARSING" - PARSING_ICEBERG = "PARSING_ICEBERG" - ANALYZING_EFFECTIVE_DATE_METRICS = "ANALYZING_EFFECTIVE_DATE_METRICS" - FORMAT_DETECTION_COMPLETED = "FORMAT_DETECTION_COMPLETED" - COLUMN_MAPPINGS_CONFIRMED = "COLUMN_MAPPINGS_CONFIRMED" - SETTINGS_CONFIRMED = "SETTINGS_CONFIRMED" - PREPARING_ICEBERG = "PREPARING_ICEBERG" - ANALYSIS_PERIOD_SELECTED = "ANALYSIS_PERIOD_SELECTED" - FUNDS_REVIEWED = "FUNDS_REVIEWED" - RUNNING = "RUNNING" - UNPACK_COMPLETE = "UNPACK_COMPLETE" - UPLOADED = "UPLOADED" - FORMAT_DETECTED = "FORMAT_DETECTED" - COLUMNS_ANALYZED = "COLUMNS_ANALYZED" - INTEGRITY_CHECKED = "INTEGRITY_CHECKED" - PARSED = "PARSED" - AUTHENTICATED = "AUTHENTICATED" - CONFIGURED = "CONFIGURED" - EFFECTIVE_DATE_METRICS_ANALYZED = "EFFECTIVE_DATE_METRICS_ANALYZED" - DATA_VALIDATION_CONFIRMED = "DATA_VALIDATION_CONFIRMED" - - -class ApiColumnMappingUpdate(BaseItem): - position: Annotated[ - int | None, Field(description="The position of the column mapping.") - ] = None - mindbridge_field: Annotated[ - str | None, - Field( - alias="mindbridgeField", - description="The MindBridge field that the data column was mapped to.", - ), - ] = None - additional_column_name: Annotated[ - str | None, - Field( - alias="additionalColumnName", - description="Additional columns of data that were added to the analysis.", - ), - ] = None - - -class ApiProposedAmbiguousColumnResolutionUpdate(BaseItem): - position: Annotated[ - int | None, - Field( - description="The position of the column with the proposed resolution.", ge=0 - ), - ] = None - selected_format: Annotated[ - str | None, - Field( - alias="selectedFormat", - description="The selected format of the proposed resolution.", - ), - ] = None - - -class ApiProposedColumnMappingUpdate(BaseItem): - column_position: Annotated[ - int | None, - Field( - alias="columnPosition", - description="The position of the proposed column mapping in the original input file.", - ), - ] = None - virtual_column_index: Annotated[ - int | None, - Field( - alias="virtualColumnIndex", - description="The position of the proposed virtual columns within the `proposedVirtualColumns` list.", - ), - ] = None - mindbridge_field: Annotated[ - str | None, - Field( - alias="mindbridgeField", - description="The MindBridge field that the data column should be mapped to.", - ), - ] = None - additional_column_name: Annotated[ - str | None, - Field( - alias="additionalColumnName", - description="Proposed additional columns of data to be added to the analysis.", - ), - ] = None - - -class ApiProposedVirtualColumnUpdateType(str, Enum): - """The type of proposed virtual column.""" - - DUPLICATE = "DUPLICATE" - SPLIT_BY_POSITION = "SPLIT_BY_POSITION" - SPLIT_BY_DELIMITER = "SPLIT_BY_DELIMITER" - JOIN = "JOIN" - - -class ApiProposedVirtualColumnUpdate(BaseItem): - name: Annotated[ - str | None, Field(description="The name of the proposed virtual column.") - ] = None - type: Annotated[ - ApiProposedVirtualColumnUpdateType | None, - Field(description="The type of proposed virtual column."), - ] = None - - -class ApiTransactionIdSelectionUpdateType(str, Enum): - """The type used when selecting a transaction ID.""" - - COMBINATION = "COMBINATION" - RUNNING_TOTAL = "RUNNING_TOTAL" - - -class ApiTransactionIdSelectionUpdate(BaseItem): - column_selection: Annotated[ - list[int] | None, - Field( - alias="columnSelection", - description="The columns included when selecting a transaction ID.", - ), - ] = None - virtual_column_selection: Annotated[ - list[int] | None, - Field( - alias="virtualColumnSelection", - description="The virtual columns included when selecting a transaction ID.", - ), - ] = None - type: Annotated[ - ApiTransactionIdSelectionUpdateType | None, - Field(description="The type used when selecting a transaction ID."), - ] = None - apply_smart_splitter: Annotated[ - bool | None, - Field( - alias="applySmartSplitter", - description="Indicates whether or not the Smart Splitter was run when selecting a transaction ID.", - ), - ] = None - - -class ApiVirtualColumnUpdateType(str, Enum): - """The type of virtual column.""" - - DUPLICATE = "DUPLICATE" - SPLIT_BY_POSITION = "SPLIT_BY_POSITION" - SPLIT_BY_DELIMITER = "SPLIT_BY_DELIMITER" - JOIN = "JOIN" - - -class ApiVirtualColumnUpdate(BaseItem): - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - name: Annotated[ - str | None, Field(description="The name of the virtual column.") - ] = None - type: Annotated[ - ApiVirtualColumnUpdateType | None, - Field(description="The type of virtual column."), - ] = None - - -class ApiAsyncResultReadType(str, Enum): - """Indicates the type of job being run.""" - - ANALYSIS_RUN = "ANALYSIS_RUN" - ANALYSIS_SOURCE_INGESTION = "ANALYSIS_SOURCE_INGESTION" - ADMIN_REPORT = "ADMIN_REPORT" - DATA_TABLE_EXPORT = "DATA_TABLE_EXPORT" - ANALYSIS_ROLL_FORWARD = "ANALYSIS_ROLL_FORWARD" - GDPDU_UNPACK_JOB = "GDPDU_UNPACK_JOB" - ACCOUNT_GROUPING_EXPORT = "ACCOUNT_GROUPING_EXPORT" - ACCOUNT_MAPPING_EXPORT = "ACCOUNT_MAPPING_EXPORT" - DATA_TRANSFORMATION_JOB = "DATA_TRANSFORMATION_JOB" - CONNECTION_TEST = "CONNECTION_TEST" - CONNECTION_TABLES = "CONNECTION_TABLES" - DATA_TABLE = "DATA_TABLE" - - -class ApiAsyncResultReadStatus(str, Enum): - """Indicates the current state of the job.""" - - IN_PROGRESS = "IN_PROGRESS" - COMPLETE = "COMPLETE" - ERROR = "ERROR" - - -class ApiAsyncResultReadEntityType(str, Enum): - """Identifies the entity type used in the job.""" - - ORGANIZATION = "ORGANIZATION" - ENGAGEMENT = "ENGAGEMENT" - ANALYSIS = "ANALYSIS" - ANALYSIS_RESULT = "ANALYSIS_RESULT" - ANALYSIS_SOURCE = "ANALYSIS_SOURCE" - FILE_RESULT = "FILE_RESULT" - GDPDU_UNPACK_JOB = "GDPDU_UNPACK_JOB" - ACCOUNT_GROUPING = "ACCOUNT_GROUPING" - ENGAGEMENT_ACCOUNT_GROUPING = "ENGAGEMENT_ACCOUNT_GROUPING" - FILE_MANAGER_FILE = "FILE_MANAGER_FILE" - CONNECTION_TEST_RESULT = "CONNECTION_TEST_RESULT" - CONNECTION_TABLES_RESULT = "CONNECTION_TABLES_RESULT" - DATA_TABLE = "DATA_TABLE" - - -class ApiAsyncResultRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - type: Annotated[ - ApiAsyncResultReadType | None, - Field(description="Indicates the type of job being run."), - ] = None - status: Annotated[ - ApiAsyncResultReadStatus | None, - Field(description="Indicates the current state of the job."), - ] = None - entity_id: Annotated[ - str | None, - Field(alias="entityId", description="Identifies the entity used in the job."), - ] = None - entity_type: Annotated[ - ApiAsyncResultReadEntityType | None, - Field( - alias="entityType", - description="Identifies the entity type used in the job.", - ), - ] = None - error: Annotated[ - str | None, Field(description="The reason why the async job failed.") - ] = None - error_message: Annotated[str | None, Field(alias="errorMessage")] = None - - -class ApiAnalysisPeriodUpdate(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - start_date: Annotated[ - date | None, - Field( - alias="startDate", description="The first day of the period under analysis." - ), - ] = None - interim_as_at_date: Annotated[ - date | None, - Field( - alias="interimAsAtDate", - description="The last day of the interim period under analysis.", - ), - ] = None - end_date: Annotated[ - date | None, - Field( - alias="endDate", description="The last day of the period under analysis." - ), - ] = None - - -class ApiAnalysisUpdate(BaseItem): - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the analysis.", max_length=80, min_length=0), - ] = None - archived: Annotated[ - bool | None, - Field(description="Indicates whether or not the analysis has been archived."), - ] = None - analysis_periods: Annotated[ - list[ApiAnalysisPeriodUpdate] | None, - Field( - alias="analysisPeriods", - description="Details about the specific analysis periods under audit.", - ), - ] = None - currency_code: Annotated[ - str | None, - Field( - alias="currencyCode", - description="The currency to be displayed across the analysis results.", - ), - ] = None - reporting_period_configuration_id: Annotated[ - str | None, - Field( - alias="reportingPeriodConfigurationId", - description="Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period.", - ), - ] = None - accounting_period: Annotated[ - ApiAccountingPeriodUpdate | None, - Field( - alias="accountingPeriod", - description="Details about the accounting period used in this analysis. If null the analysis uses a custom reporting period.", - ), - ] = None - - -class ApiAnalysisImportantColumnRead(BaseItem): - column_name: Annotated[ - str | None, - Field( - alias="columnName", - description="The name of the column as it appears in the imported file.", - ), - ] = None - field: Annotated[ - str | None, Field(description="The name of the additional data column.") - ] = None - - -class ApiAnalysisPeriodGapRead(BaseItem): - analysis_period_id: Annotated[ - str | None, - Field(alias="analysisPeriodId", description="Identifies the analysis period."), - ] = None - previous_analysis_period_id: Annotated[ - str | None, - Field( - alias="previousAnalysisPeriodId", - description="Identifies the previous analysis period relevant to the current analysis period.", - ), - ] = None - days: Annotated[ - int | None, - Field(description="The number of days between two analysis periods."), - ] = None - - -class ApiAnalysisPeriodRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - start_date: Annotated[ - date | None, - Field( - alias="startDate", description="The first day of the period under analysis." - ), - ] = None - interim_as_at_date: Annotated[ - date | None, - Field( - alias="interimAsAtDate", - description="The last day of the interim period under analysis.", - ), - ] = None - end_date: Annotated[ - date | None, - Field( - alias="endDate", description="The last day of the period under analysis." - ), - ] = None - - -class ApiAnalysisRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - analysis_type_id: Annotated[ - str | None, - Field(alias="analysisTypeId", description="Identifies the type of analysis."), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the analysis.", max_length=80, min_length=0), - ] = None - interim: Annotated[ - bool | None, - Field( - description="Indicates whether or not the analysis is using an interim time frame." - ), - ] = None - archived: Annotated[ - bool | None, - Field(description="Indicates whether or not the analysis has been archived."), - ] = None - converted: Annotated[ - bool | None, - Field( - description="Indicates whether or not an interim analysis time frame has been converted to a full analysis time frame." - ), - ] = None - periodic: Annotated[ - bool | None, - Field( - description="Indicates whether or not the analysis is using a periodic time frame." - ), - ] = None - important_columns: Annotated[ - list[ApiAnalysisImportantColumnRead] | None, - Field( - alias="importantColumns", - description="Additional data columns that can be used when importing additional data.", - ), - ] = None - analysis_periods: Annotated[ - list[ApiAnalysisPeriodRead] | None, - Field( - alias="analysisPeriods", - description="Details about the specific analysis periods under audit.", - ), - ] = None - analysis_period_gaps: Annotated[ - list[ApiAnalysisPeriodGapRead] | None, - Field( - alias="analysisPeriodGaps", - description="Details about the gap in time between two analysis periods.", - ), - ] = None - currency_code: Annotated[ - str | None, - Field( - alias="currencyCode", - description="The currency to be displayed across the analysis results.", - ), - ] = None - latest_analysis_result_id: Annotated[ - str | None, Field(alias="latestAnalysisResultId") - ] = None - reference_id: Annotated[ - str | None, - Field( - alias="referenceId", - description="A reference ID to identify the analysis.", - max_length=256, - min_length=0, - ), - ] = None - reporting_period_configuration_id: Annotated[ - str | None, - Field( - alias="reportingPeriodConfigurationId", - description="Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period.", - ), - ] = None - accounting_period: Annotated[ - ApiAccountingPeriodRead | None, - Field( - alias="accountingPeriod", - description="Details about the accounting period used in this analysis. If null the analysis uses a custom reporting period.", - ), - ] = None - - -class ApiAccountMappingUpdate(BaseItem): - version: Annotated[ - int | None, - Field(description="The data integrity version, to ensure data consistency."), - ] = None - code: Annotated[ - str | None, - Field(description="The account grouping code mapped to this account."), - ] = None - account_tags: Annotated[ - list[str] | None, - Field( - alias="accountTags", - description="A list of account tags associated with this account.", - ), - ] = None - - -class ApiAccountMappingReadStatus(str, Enum): - """Indicates the current status of the account mapping.""" - - MANUAL = "MANUAL" - MAC_CODE = "MAC_CODE" - MODIFIED_MAC = "MODIFIED_MAC" - UNVERIFIED = "UNVERIFIED" - VERIFIED = "VERIFIED" - INFERRED = "INFERRED" - UNMAPPED = "UNMAPPED" - USED = "USED" - UNUSED = "UNUSED" - - -class ApiAccountMappingRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="The data integrity version, to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - account: Annotated[ - str | None, - Field(description="The account name as provided in the source data."), - ] = None - account_description: Annotated[ - str | None, - Field( - alias="accountDescription", - description="The description of the account as provided in the source data.", - ), - ] = None - code: Annotated[ - str | None, - Field(description="The account grouping code mapped to this account."), - ] = None - status: Annotated[ - ApiAccountMappingReadStatus | None, - Field(description="Indicates the current status of the account mapping."), - ] = None - used_by_analysis_sources: Annotated[ - list[str] | None, - Field( - alias="usedByAnalysisSources", - description="A list of analysis sources that use this account.", - ), - ] = None - fund_id: Annotated[ - str | None, - Field(alias="fundId", description="The fund that includes this account."), - ] = None - account_tags: Annotated[ - list[str] | None, - Field( - alias="accountTags", - description="A list of account tags associated with this account.", - ), - ] = None - - -class ApiAccountGroupUpdate(BaseItem): - mac_code: Annotated[ - str | None, - Field( - alias="macCode", description="The MAC code mapped to this account group." - ), - ] = None - account_tags: Annotated[ - list[str] | None, - Field( - alias="accountTags", - description="A list of account tags assigned to this account group.", - ), - ] = None - - -class ApiAccountGroupRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - account_grouping_id: Annotated[ - str | None, - Field( - alias="accountGroupingId", - description="The unique identifier for the account grouping that the account group belongs to.", - ), - ] = None - code: Annotated[ - str | None, Field(description="The account code for this account group.") - ] = None - description: Annotated[ - dict[str, str] | None, - Field(description="A description of the account code for this account group."), - ] = None - lowest_level: Annotated[bool | None, Field(alias="lowestLevel")] = None - hierarchy: Annotated[ - list[str] | None, - Field(description="A list of the parent codes for this account group."), - ] = None - parent_code: Annotated[ - str | None, - Field( - alias="parentCode", description="The parent code for this account group." - ), - ] = None - mac_code: Annotated[ - str | None, - Field( - alias="macCode", description="The MAC code mapped to this account group." - ), - ] = None - account_tags: Annotated[ - list[str] | None, - Field( - alias="accountTags", - description="A list of account tags assigned to this account group.", - ), - ] = None - published_date: Annotated[ - AwareDatetime | None, - Field( - alias="publishedDate", - description="The date this account group was published. If not set, this account group is not published.\n\nPublished account groups cannot be updated.", - ), - ] = None - order_index: Annotated[ - int | None, - Field( - alias="orderIndex", - description="The order in which this account group is displayed, relative to other account groups with the same parent.", - ), - ] = None - errors: Annotated[ - list[ApiAccountGroupErrorRead] | None, - Field(description="A list of errors associated with this account group."), - ] = None - - -class ApiAccountGroupingUpdatePublishStatus(str, Enum): - """The current status of the account grouping.""" - - DRAFT = "DRAFT" - UNPUBLISHED_CHANGES = "UNPUBLISHED_CHANGES" - PUBLISHED = "PUBLISHED" - - -class ApiAccountGroupingUpdate(BaseItem): - version: Annotated[ - int | None, - Field(description="The data integrity version, to ensure data consistency."), - ] = None - name: Annotated[ - dict[str, str] | None, Field(description="The name of the account grouping.") - ] = None - archived: Annotated[ - bool | None, Field(description="When `true`, the account grouping is archived.") - ] = None - publish_status: Annotated[ - ApiAccountGroupingUpdatePublishStatus | None, - Field( - alias="publishStatus", - description="The current status of the account grouping.", - ), - ] = None - - -class ApiAccountGroupingReadPublishStatus(str, Enum): - """The current status of the account grouping.""" - - DRAFT = "DRAFT" - UNPUBLISHED_CHANGES = "UNPUBLISHED_CHANGES" - PUBLISHED = "PUBLISHED" - - -class ApiAccountGroupingRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="The data integrity version, to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - name: Annotated[ - dict[str, str] | None, Field(description="The name of the account grouping.") - ] = None - code_display_name: Annotated[ - dict[str, str] | None, - Field( - alias="codeDisplayName", - description="The name of the account code hierarchy system used within the dataset.", - ), - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The delimiter character used to separate each category level in an account grouping code." - ), - ] = None - mac: Annotated[ - bool | None, - Field( - description="When `true`, the account grouping is based on the MAC code system." - ), - ] = None - system: Annotated[ - bool | None, - Field( - description="When `true`, the account grouping is a system account grouping and cannot be modified." - ), - ] = None - archived: Annotated[ - bool | None, Field(description="When `true`, the account grouping is archived.") - ] = None - published_date: Annotated[ - AwareDatetime | None, - Field( - alias="publishedDate", - description="The date that the account grouping was published.", - ), - ] = None - publish_status: Annotated[ - ApiAccountGroupingReadPublishStatus | None, - Field( - alias="publishStatus", - description="The current status of the account grouping.", - ), - ] = None - - -class ApiWebhookCreateEvent(str, Enum): - EXPORT_READY = "EXPORT_READY" - FILE_MANAGER_FILE_ADDED = "FILE_MANAGER_FILE_ADDED" - INGESTION_COMPLETE = "INGESTION_COMPLETE" - INGESTION_FAILED = "INGESTION_FAILED" - INGESTION_ANALYSIS_COMPLETE = "INGESTION_ANALYSIS_COMPLETE" - INGESTION_ANALYSIS_FAILED = "INGESTION_ANALYSIS_FAILED" - UNMAPPED_ACCOUNTS_DETECTED = "UNMAPPED_ACCOUNTS_DETECTED" - ENGAGEMENT_CREATED = "ENGAGEMENT_CREATED" - ENGAGEMENT_UPDATED = "ENGAGEMENT_UPDATED" - ENGAGEMENT_DELETED = "ENGAGEMENT_DELETED" - ANALYSIS_CREATED = "ANALYSIS_CREATED" - ANALYSIS_UPDATED = "ANALYSIS_UPDATED" - ANALYSIS_DELETED = "ANALYSIS_DELETED" - ANALYSIS_ARCHIVED = "ANALYSIS_ARCHIVED" - ANALYSIS_UNARCHIVED = "ANALYSIS_UNARCHIVED" - USER_INVITED = "USER_INVITED" - USER_STATUS_UPDATED = "USER_STATUS_UPDATED" - USER_ROLE_UPDATED = "USER_ROLE_UPDATED" - USER_DELETED = "USER_DELETED" - USER_LOGIN = "USER_LOGIN" - - -class ApiWebhookCreateStatus(str, Enum): - """The current status of the webhook.""" - - ACTIVE = "ACTIVE" - INACTIVE = "INACTIVE" - - -class ApiWebhookCreate(BaseItem): - name: Annotated[str | None, Field(description="The name of the webhook.")] = None - url: Annotated[ - str | None, - Field(description="The URL to which the webhook will send notifications."), - ] = None - technical_contact_id: Annotated[ - str | None, - Field( - alias="technicalContactId", - description="A reference to an administrative user used to inform system administrators of issues with the webhooks.", - ), - ] = None - events: Annotated[ - list[ApiWebhookCreateEvent] | None, - Field( - description="A list of events that will trigger this webhook.", - max_length=2147483647, - min_length=1, - ), - ] = None - status: Annotated[ - ApiWebhookCreateStatus | None, - Field(description="The current status of the webhook."), - ] = None - - -class SortnullRead(BaseItem): - sorted: bool | None = None - unsorted: bool | None = None - empty: bool | None = None - - -class ApiWebhookEventLogReadStatus(str, Enum): - IN_PROGRESS = "IN_PROGRESS" - COMPLETED = "COMPLETED" - FAILED = "FAILED" - FAILED_PERMANENTLY = "FAILED_PERMANENTLY" - DISCONNECTED = "DISCONNECTED" - - -class ApiWebhookEventLogRead(BaseItem): - id: str | None = None - version: int | None = None - creation_date: Annotated[AwareDatetime | None, Field(alias="creationDate")] = None - last_modified_date: Annotated[ - AwareDatetime | None, Field(alias="lastModifiedDate") - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, Field(alias="createdUserInfo") - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, Field(alias="lastModifiedUserInfo") - ] = None - status: ApiWebhookEventLogReadStatus | None = None - webhook_id: Annotated[str | None, Field(alias="webhookId")] = None - attempt_start_date: Annotated[ - AwareDatetime | None, Field(alias="attemptStartDate") - ] = None - url: str | None = None - event_type: Annotated[str | None, Field(alias="eventType")] = None - request_headers: Annotated[ - dict[str, list[str]] | None, Field(alias="requestHeaders") - ] = None - request_body: Annotated[str | None, Field(alias="requestBody")] = None - response_status_code: Annotated[int | None, Field(alias="responseStatusCode")] = ( - None - ) - response_headers: Annotated[ - dict[str, list[str]] | None, Field(alias="responseHeaders") - ] = None - response_time_sec: Annotated[float | None, Field(alias="responseTimeSec")] = None - retry_count: Annotated[int | None, Field(alias="retryCount")] = None - request_id: Annotated[str | None, Field(alias="requestId")] = None - - -class ApiUserCreateRole(str, Enum): - """The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)""" - - ROLE_ADMIN = "ROLE_ADMIN" - ROLE_ORGANIZATION_ADMIN = "ROLE_ORGANIZATION_ADMIN" - ROLE_USER = "ROLE_USER" - ROLE_CLIENT = "ROLE_CLIENT" - ROLE_MINDBRIDGE_SUPPORT = "ROLE_MINDBRIDGE_SUPPORT" - ROLE_USER_ADMIN = "ROLE_USER_ADMIN" - - -class ApiUserCreate(BaseItem): - email: Annotated[str | None, Field(description="The user's email address.")] = None - role: Annotated[ - ApiUserCreateRole | None, - Field( - description="The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)" - ), - ] = None - - -class ApiTransactionIdPreviewIndicatorReadRating(str, Enum): - """The quality of the indicator as rated by MindBridge.""" - - BLOCK = "BLOCK" - FAIL = "FAIL" - POOR = "POOR" - NEUTRAL = "NEUTRAL" - GOOD = "GOOD" - - -class ApiTransactionIdPreviewRowRead(BaseItem): - transaction_id: Annotated[ - str | None, - Field( - alias="transactionId", - description="Identifies the transaction ID for this transaction.", - ), - ] = None - balance: Annotated[ - int | None, Field(description="The balance of the transaction.") - ] = None - entry_count: Annotated[ - int | None, - Field( - alias="entryCount", - description="The number of entries that appear within the transaction.", - ), - ] = None - detail_rows: Annotated[ - list[dict[str, Any]] | None, - Field( - alias="detailRows", - description="The set of entries that appear within the transaction.", - ), - ] = None - - -class ApiTransactionIdPreviewReadType(str, Enum): - """The type used when selecting a transaction ID.""" - - COMBINATION = "COMBINATION" - RUNNING_TOTAL = "RUNNING_TOTAL" - - -class ApiTransactionIdPreviewReadOverallRating(str, Enum): - """The quality of the transaction ID as rated by MindBridge.""" - - BLOCK = "BLOCK" - FAIL = "FAIL" - POOR = "POOR" - NEUTRAL = "NEUTRAL" - GOOD = "GOOD" - - -class ApiTaskCreateStatus(str, Enum): - """The current state of the task.""" - - OPEN = "OPEN" - NORMAL = "NORMAL" - COMPLETED = "COMPLETED" - DISMISSED = "DISMISSED" - RESOLVED = "RESOLVED" - - -class ApiTaskCreateType(str, Enum): - """The type of entry this task is associated with.""" - - ENTRY = "ENTRY" - TRANSACTION = "TRANSACTION" - AP_ENTRY = "AP_ENTRY" - AR_ENTRY = "AR_ENTRY" - AP_OUTSTANDING_ENTRY = "AP_OUTSTANDING_ENTRY" - AR_OUTSTANDING_ENTRY = "AR_OUTSTANDING_ENTRY" - TRA_ENTRY = "TRA_ENTRY" - SUBLEDGER_ENTRY = "SUBLEDGER_ENTRY" - - -class ApiTaskCreateTaskApprovalStatus(str, Enum): - PENDING = "PENDING" - REJECTED = "REJECTED" - APPROVED = "APPROVED" - - -class ApiTaskCreate(BaseItem): - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - analysis_result_id: Annotated[str | None, Field(alias="analysisResultId")] = None - row_id: Annotated[ - int | None, Field(alias="rowId", description="Identifies the associated entry.") - ] = None - transaction_id: Annotated[ - int | None, - Field( - alias="transactionId", description="Identifies the associated transaction." - ), - ] = None - status: Annotated[ - ApiTaskCreateStatus | None, - Field(description="The current state of the task.", title="Task Status"), - ] = None - assigned_id: Annotated[ - str | None, - Field( - alias="assignedId", description="Identifies the user assigned to this task." - ), - ] = None - description: Annotated[ - str | None, Field(description="A description of the task.") - ] = None - sample: Annotated[ - str | None, Field(description="Which sample this task is a part of.") - ] = None - audit_areas: Annotated[ - list[str] | None, - Field( - alias="auditAreas", - description="Which audit areas this task is associated with.", - ), - ] = None - assertions: Annotated[ - list[str] | None, - Field(description="Which assertions this task is associated with."), - ] = None - type: Annotated[ - ApiTaskCreateType | None, - Field( - description="The type of entry this task is associated with.", - title="Task Type", - ), - ] = None - task_approval_status: Annotated[ - ApiTaskCreateTaskApprovalStatus | None, - Field(alias="taskApprovalStatus", title="Task Approval Status"), - ] = None - due_date: Annotated[date | None, Field(alias="dueDate")] = None - tags: list[str] | None = None - - -class ApiTaskCommentCreate(BaseItem): - comment_text: Annotated[ - str | None, Field(alias="commentText", description="The text of the comment.") - ] = None - - -class ApiTaskHistoryEntryReadFieldType(str, Enum): - ARRAY = "ARRAY" - ISO_DATE = "ISO_DATE" - OBJECT = "OBJECT" - STRING = "STRING" - INTEGER = "INTEGER" - - -class ApiTaskHistoryEntryRead(BaseItem): - field_name: Annotated[str | None, Field(alias="fieldName")] = None - field_type: Annotated[ - ApiTaskHistoryEntryReadFieldType | None, Field(alias="fieldType") - ] = None - previous_value: Annotated[Any | None, Field(alias="previousValue")] = None - new_value: Annotated[Any | None, Field(alias="newValue")] = None - previous_value_string: Annotated[str | None, Field(alias="previousValueString")] = ( - None - ) - new_value_string: Annotated[str | None, Field(alias="newValueString")] = None - - -class ApiTaskHistoryReadOperation(str, Enum): - """The operation that was performed on the task.""" - - CREATE = "CREATE" - UPDATE = "UPDATE" - COMPLETED = "COMPLETED" - DELETE = "DELETE" - COMMENT = "COMMENT" - ASSIGNMENT = "ASSIGNMENT" - STATUS_CHANGE = "STATUS_CHANGE" - MARKASNORMAL = "MARKASNORMAL" - - -class ApiTaskHistoryRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - date_time: Annotated[ - AwareDatetime | None, - Field( - alias="dateTime", - description="The date and time that the task history was created.", - ), - ] = None - user_name: Annotated[ - str | None, - Field( - alias="userName", - description="Name of the user associated with the history record", - ), - ] = None - task_id: Annotated[ - str | None, Field(alias="taskId", description="Identifies the associated task.") - ] = None - user_id: Annotated[ - str | None, - Field( - alias="userId", - description="The id of the user associated with the history record", - ), - ] = None - operation: Annotated[ - ApiTaskHistoryReadOperation | None, - Field(description="The operation that was performed on the task."), - ] = None - changes: Annotated[ - list[ApiTaskHistoryEntryRead] | None, - Field(description="A list of changes that were made to the task."), - ] = None - - -class ApiFilterConditionCreateType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterGroupConditionCreateType(str, Enum): - """The type of condition.""" - - GROUP = "GROUP" - STRING = "STRING" - STRING_ARRAY = "STRING_ARRAY" - CONTROL_POINT = "CONTROL_POINT" - ACCOUNT_NODE_ARRAY = "ACCOUNT_NODE_ARRAY" - TYPEAHEAD_ENTRY = "TYPEAHEAD_ENTRY" - POPULATIONS = "POPULATIONS" - RISK_SCORE = "RISK_SCORE" - MONETARY_FLOW = "MONETARY_FLOW" - MONEY = "MONEY" - MATERIALITY = "MATERIALITY" - NUMERICAL = "NUMERICAL" - DATE = "DATE" - - -class ApiFilterGroupConditionCreateOperator(str, Enum): - """The operator to be applied to conditions within this group.""" - - AND = "AND" - OR = "OR" - - -class ApiFilterCreateFilterType(str, Enum): - """The type of this filter. Determines in which context analyses can access it.""" - - LIBRARY = "LIBRARY" - ORGANIZATION = "ORGANIZATION" - PRIVATE = "PRIVATE" - ENGAGEMENT = "ENGAGEMENT" - - -class ApiFilterCreateDataType(str, Enum): - """The intended data type for this filter.""" - - TRANSACTIONS = "TRANSACTIONS" - ENTRIES = "ENTRIES" - LIBRARY = "LIBRARY" - - -class ApiFilterValidateRequestCreate(BaseItem): - filter_id: Annotated[str | None, Field(alias="filterId")] = None - data_table_id: Annotated[str | None, Field(alias="dataTableId")] = None - - -class ApiRiskRangeBoundsCreate(BaseItem): - low_threshold: Annotated[ - int | None, - Field( - alias="lowThreshold", - description="The low threshold of the risk range.", - ge=0, - le=10000, - ), - ] = None - high_threshold: Annotated[ - int | None, - Field( - alias="highThreshold", - description="The high threshold of the risk range.", - ge=0, - le=10000, - ), - ] = None - - -class ApiRiskRangesCreate(BaseItem): - low: Annotated[ - ApiRiskRangeBoundsCreate | None, Field(description="The low range bounds.") - ] = None - medium: Annotated[ - ApiRiskRangeBoundsCreate | None, Field(description="The medium range bounds.") - ] = None - high: Annotated[ - ApiRiskRangeBoundsCreate | None, Field(description="The high range bounds.") - ] = None - library_id: Annotated[ - str | None, - Field( - alias="libraryId", - description="Identifies the library associated with this risk range.", - ), - ] = None - analysis_type_id: Annotated[ - str | None, - Field( - alias="analysisTypeId", - description="Identifies the analysis type associated with this risk range.", - ), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the risk range.", max_length=80, min_length=0), - ] = None - description: Annotated[ - str | None, - Field( - description="The description of the risk range.", - max_length=250, - min_length=0, - ), - ] = None - - -class ApiMonthlyReportingPeriodCreate(BaseItem): - period_number: Annotated[int | None, Field(alias="periodNumber")] = None - quarter_number: Annotated[int | None, Field(alias="quarterNumber")] = None - year_label: Annotated[str | None, Field(alias="yearLabel")] = None - start_date: Annotated[date | None, Field(alias="startDate")] = None - end_date: Annotated[date | None, Field(alias="endDate")] = None - - -class ApiWeeklyReportingPeriodCreate(BaseItem): - week_number: Annotated[int | None, Field(alias="weekNumber")] = None - year_label: Annotated[str | None, Field(alias="yearLabel")] = None - start_date: Annotated[date | None, Field(alias="startDate")] = None - end_date: Annotated[date | None, Field(alias="endDate")] = None - - -class ApiMonthlyReportingPeriodRead(BaseItem): - period_number: Annotated[int | None, Field(alias="periodNumber")] = None - quarter_number: Annotated[int | None, Field(alias="quarterNumber")] = None - year_label: Annotated[str | None, Field(alias="yearLabel")] = None - start_date: Annotated[date | None, Field(alias="startDate")] = None - end_date: Annotated[date | None, Field(alias="endDate")] = None - - -class ApiReportingPeriodConfigurationReadStatus(str, Enum): - UPLOADED = "UPLOADED" - VALIDATING = "VALIDATING" - FAILED = "FAILED" - COMPLETED = "COMPLETED" - - -class ApiWeeklyReportingPeriodRead(BaseItem): - week_number: Annotated[int | None, Field(alias="weekNumber")] = None - year_label: Annotated[str | None, Field(alias="yearLabel")] = None - start_date: Annotated[date | None, Field(alias="startDate")] = None - end_date: Annotated[date | None, Field(alias="endDate")] = None - - -class ApiOrganizationCreate(BaseItem): - name: Annotated[ - str | None, - Field(description="The name of the organization.", max_length=80, min_length=0), - ] = None - external_client_code: Annotated[ - str | None, - Field( - alias="externalClientCode", - description="The unique client ID applied to this organization.", - max_length=80, - min_length=0, - ), - ] = None - manager_user_ids: Annotated[ - list[str] | None, - Field( - alias="managerUserIds", - description="Identifies users assigned to the organization manager role.", - ), - ] = None - - -class ApiLibraryCreateRiskScoreDisplay(str, Enum): - """Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.""" - - HIGH_MEDIUM_LOW = "HIGH_MEDIUM_LOW" - PERCENTAGE = "PERCENTAGE" - - -class ApiLibraryCreate(BaseItem): - name: Annotated[ - str | None, - Field( - description="The current name of the library.", max_length=80, min_length=0 - ), - ] = None - based_on_library_id: Annotated[ - str | None, - Field( - alias="basedOnLibraryId", - description="Identifies the library that the new library is based on. This may be a user-created library or a MindBridge system library.", - ), - ] = None - convert_settings: Annotated[ - bool | None, - Field( - alias="convertSettings", - description="Indicates whether or not settings from the selected base library should be converted for use with the selected account grouping.", - ), - ] = None - warnings_dismissed: Annotated[ - bool | None, - Field( - alias="warningsDismissed", - description="When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI.", - ), - ] = None - account_grouping_id: Annotated[ - str | None, - Field( - alias="accountGroupingId", - description="Identifies the account grouping used.", - ), - ] = None - analysis_type_ids: Annotated[ - list[str] | None, - Field( - alias="analysisTypeIds", - description="Identifies the analysis types used in the library.", - ), - ] = None - default_delimiter: Annotated[ - str | None, - Field( - alias="defaultDelimiter", - description="Identifies the default delimiter used in imported CSV files.", - ), - ] = None - control_point_selection_permission: Annotated[ - bool | None, - Field( - alias="controlPointSelectionPermission", - description="When set to `true`, control points can be added or removed within each risk score.", - ), - ] = None - control_point_weight_permission: Annotated[ - bool | None, - Field( - alias="controlPointWeightPermission", - description="When set to `true`, the weight of each control point can be adjusted within each risk score.", - ), - ] = None - control_point_settings_permission: Annotated[ - bool | None, - Field( - alias="controlPointSettingsPermission", - description="When set to `true`, individual control point settings can be adjusted within each risk score.", - ), - ] = None - risk_score_and_groups_selection_permission: Annotated[ - bool | None, - Field( - alias="riskScoreAndGroupsSelectionPermission", - description="When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited.", - ), - ] = None - risk_range_edit_permission: Annotated[ - bool | None, Field(alias="riskRangeEditPermission") - ] = None - risk_score_display: Annotated[ - ApiLibraryCreateRiskScoreDisplay | None, - Field( - alias="riskScoreDisplay", - description="Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.", - ), - ] = None - - -class ApiJsonTableRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="The data integrity version, to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - headers: list[str] | None = None - current_size: Annotated[ - int | None, - Field( - alias="currentSize", - description="The combined size of all data that has been appended to this JSON table.", - ), - ] = None - - -class ApiFileExportRead(BaseItem): - id: Annotated[ - str | None, Field(description="The unique file export identifier.") - ] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the file export.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the file export.", - ), - ] = None - file_name: Annotated[ - str | None, Field(alias="fileName", description="The name of the file.") - ] = None - size: Annotated[int | None, Field(description="The size of the file.")] = None - - -class ApiFileManagerDirectoryCreate(BaseItem): - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - parent_file_manager_entity_id: Annotated[ - str | None, - Field( - alias="parentFileManagerEntityId", - description="Identifies the parent directory. If NULL, the directory is positioned at the root level.", - ), - ] = None - name: Annotated[str | None, Field(description="The name of the directory.")] = None - - -class FileMergeMappingCreate(BaseItem): - file_manager_file_id: Annotated[ - str | None, - Field( - alias="fileManagerFileId", description="The file manager file id to merge" - ), - ] = None - columns: Annotated[ - list[int] | None, - Field(description="Columns to include from this file, in order"), - ] = None - - -class CreateApiFileManagerFileFromJsonTableRequestCreate(BaseItem): - name: Annotated[ - str | None, - Field(description="The name of the newly created file manager file."), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", - description="Identifies the associated engagement to import the formatted file into.", - ), - ] = None - parent_file_manager_entity_id: Annotated[ - str | None, - Field( - alias="parentFileManagerEntityId", - description="Identifies the file manager entity that will be the parent of the newly created file.", - ), - ] = None - json_table_id: Annotated[ - str | None, - Field( - alias="jsonTableId", - description="Identifies the JSON table to be formatted into a file.", - ), - ] = None - - -class ApiCsvConfigurationCreate(BaseItem): - delimiter: Annotated[ - str | None, Field(description="The character used to separate entries.") - ] = None - quote: Annotated[ - str | None, Field(description="The character used to encapsulate an entry.") - ] = None - quote_escape: Annotated[ - str | None, - Field( - alias="quoteEscape", - description="The character used to escape the quote character.", - ), - ] = None - quote_escape_escape: Annotated[ - str | None, - Field( - alias="quoteEscapeEscape", - description="The character used to escape the quote escape character.", - ), - ] = None - - -class ApiDataTableQuerySortOrderCreateDirection(str, Enum): - """How the column will be sorted.""" - - ASC = "ASC" - DESC = "DESC" - - -class ApiDataTableQuerySortOrderCreate(BaseItem): - field: Annotated[str | None, Field(description="The data table column.")] = None - direction: Annotated[ - ApiDataTableQuerySortOrderCreateDirection | None, - Field(description="How the column will be sorted."), - ] = None - - -class ShieldQueryTermCreateOperatorShieldQueryTermCreateOperatorEnum(str, Enum): - FIELD_EQ = "$eq" - FIELD_NE = "$ne" - FIELD_GT = "$gt" - FIELD_GTE = "$gte" - FIELD_LT = "$lt" - FIELD_LTE = "$lte" - FIELD_CONTAINS = "$contains" - FIELD_NCONTAINS = "$ncontains" - FIELD_IN = "$in" - FIELD_NIN = "$nin" - FIELD_FLAGS = "$flags" - FIELD_KEYWORD_PREFIX = "$keyword_prefix" - FIELD_KEYWORD_PREFIX_NOT = "$keyword_prefix_not" - FIELD_ISUBSTR = "$isubstr" - FIELD_IPREFIX = "$iprefix" - FIELD_NIPREFIX = "$niprefix" - FIELD_BETWEEN = "$between" - FIELD_NBETWEEN = "$nbetween" - FIELD_AND = "$and" - FIELD_OR = "$or" - FIELD_POPULATION = "$population" - FIELD_NOT_POPULATION = "$not_population" - - -ShieldQueryTermCreateOperator = RootModel[ - ShieldQueryTermCreateOperatorShieldQueryTermCreateOperatorEnum | None -] - - -class ShieldQueryTermCreate(BaseItem): - operator: ShieldQueryTermCreateOperator | None = None - - -class ApiFileManagerFileCreate(BaseItem): - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - parent_file_manager_entity_id: Annotated[ - str | None, - Field( - alias="parentFileManagerEntityId", - description="Identifies the parent directory. If NULL, the directory is positioned at the root level.", - ), - ] = None - name: Annotated[ - str | None, - Field(description="The current name of the file, excluding the extension."), - ] = None - - -class CreateApiFileManagerFileFromChunkedFileRequestCreate(BaseItem): - chunked_file_id: Annotated[str | None, Field(alias="chunkedFileId")] = None - api_file_manager_file: Annotated[ - ApiFileManagerFileCreate | None, Field(alias="apiFileManagerFile") - ] = None - - -class ApiBasicMetricsReadState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiColumnDateTimeFormatRead(BaseItem): - selected: Annotated[ - bool | None, - Field( - description="If true, this format was selected during column mapping as the correct format for this column." - ), - ] = None - custom_format_pattern: Annotated[ - str | None, - Field( - alias="customFormatPattern", description="The pattern of this date format." - ), - ] = None - sample_raw_values: Annotated[ - list[str] | None, - Field(alias="sampleRawValues", description="A list of values in this column."), - ] = None - sample_converted_values: Annotated[ - list[AwareDatetime] | None, - Field( - alias="sampleConvertedValues", - description="A list of date time values derived by parsing the text using this format.", - ), - ] = None - - -class ApiCountMetricsReadState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiCurrencyFormatRead(BaseItem): - decimal_character: Annotated[ - str | None, - Field( - alias="decimalCharacter", - description="The character used as a decimal separator.", - ), - ] = None - non_decimal_delimiters: Annotated[ - list[str] | None, - Field( - alias="nonDecimalDelimiters", - description="Non decimal separator special characters, including currency and grouping characters.", - ), - ] = None - ambiguous_delimiters: Annotated[ - list[str] | None, - Field( - alias="ambiguousDelimiters", - description="A list of possible delimiter characters, if multiple possible candidates are available.", - ), - ] = None - example: Annotated[str | None, Field(description="An example value.")] = None - - -class ApiDataPreviewRead(BaseItem): - row: Annotated[ - int | None, Field(description="The row number within the table.") - ] = None - column: Annotated[ - int | None, Field(description="The column index within the row.") - ] = None - data: Annotated[ - str | None, Field(description="The value within the target row.") - ] = None - - -class ApiDataTypeMetricsReadState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiDataTypeMetricsReadDetectedType(str, Enum): - TEXT = "TEXT" - NUMBER = "NUMBER" - DATE = "DATE" - UNKNOWN = "UNKNOWN" - FLOAT64 = "FLOAT64" - - -class ApiDataTypeMetricsReadDominantType(str, Enum): - """The type determined to be the most prevalent in this column.""" - - TEXT = "TEXT" - NUMBER = "NUMBER" - DATE = "DATE" - UNKNOWN = "UNKNOWN" - FLOAT64 = "FLOAT64" - - -class ApiDensityMetricsReadState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiDensityMetricsRead(BaseItem): - state: Annotated[ - ApiDensityMetricsReadState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreviewRead] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( - None - ) - density: Annotated[ - float | None, - Field( - description="The percentage density of values against blanks, represented as decimal between 1 and 0." - ), - ] = None - blanks: Annotated[int | None, Field(description="The number of blank values.")] = ( - None - ) - - -class ApiDistinctValueMetricsReadState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiDistinctValueMetricsRead(BaseItem): - state: Annotated[ - ApiDistinctValueMetricsReadState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreviewRead] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( - None - ) - - -class ApiFileInfoType(str, Enum): - """The type of file info entity.""" - - FILE_INFO = "FILE_INFO" - TABULAR_FILE_INFO = "TABULAR_FILE_INFO" - - -class ApiFileInfoFormat(str, Enum): - """The grouped format that was detected.""" - - QUICKBOOKS_JOURNAL = "QUICKBOOKS_JOURNAL" - QUICKBOOKS_JOURNAL_2024 = "QUICKBOOKS_JOURNAL_2024" - QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT = ( - "QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT" - ) - SAGE50_LEDGER = "SAGE50_LEDGER" - SAGE50_TRANSACTIONS = "SAGE50_TRANSACTIONS" - CCH_ACCOUNT_LIST = "CCH_ACCOUNT_LIST" - MS_DYNAMICS_JOURNAL = "MS_DYNAMICS_JOURNAL" - SAGE50_UK = "SAGE50_UK" - - -class ApiFileInfo(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - type: Annotated[ - ApiFileInfoType | None, - Field(description="The type of file info entity.", title="File Info Type"), - ] = None - name: Annotated[ - str | None, Field(description="The name of the underlying file or table.") - ] = None - format_detected: Annotated[ - bool | None, - Field( - alias="formatDetected", - description="When `true` a known grouped format was detected.", - ), - ] = None - format: Annotated[ - ApiFileInfoFormat | None, - Field(description="The grouped format that was detected."), - ] = None - - -class ApiFileInfoReadType(str, Enum): - """The type of file info entity.""" - - FILE_INFO = "FILE_INFO" - TABULAR_FILE_INFO = "TABULAR_FILE_INFO" - - -class ApiFileInfoReadFormat(str, Enum): - """The grouped format that was detected.""" - - QUICKBOOKS_JOURNAL = "QUICKBOOKS_JOURNAL" - QUICKBOOKS_JOURNAL_2024 = "QUICKBOOKS_JOURNAL_2024" - QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT = ( - "QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT" - ) - SAGE50_LEDGER = "SAGE50_LEDGER" - SAGE50_TRANSACTIONS = "SAGE50_TRANSACTIONS" - CCH_ACCOUNT_LIST = "CCH_ACCOUNT_LIST" - MS_DYNAMICS_JOURNAL = "MS_DYNAMICS_JOURNAL" - SAGE50_UK = "SAGE50_UK" - - -class ApiFileInfoRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - type: Annotated[ - ApiFileInfoReadType | None, - Field(description="The type of file info entity.", title="File Info Type"), - ] = None - name: Annotated[ - str | None, Field(description="The name of the underlying file or table.") - ] = None - format_detected: Annotated[ - bool | None, - Field( - alias="formatDetected", - description="When `true` a known grouped format was detected.", - ), - ] = None - format: Annotated[ - ApiFileInfoReadFormat | None, - Field(description="The grouped format that was detected."), - ] = None - - -class ApiHistogramMetricsReadState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiHistogramMetricsRead(BaseItem): - state: Annotated[ - ApiHistogramMetricsReadState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreviewRead] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( - None - ) - histogram: Annotated[ - dict[str, int] | None, - Field( - description="A map of the number of columns to the number of rows with that many columns, in the case of unevenColumnsMetrics." - ), - ] = None - - -class ApiOverallDataTypeMetricsReadState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiOverallDataTypeMetricsRead(BaseItem): - state: Annotated[ - ApiOverallDataTypeMetricsReadState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreviewRead] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - cell_type_counts: Annotated[ - dict[str, int] | None, - Field( - alias="cellTypeCounts", - description="A map of data types to the number of cells in the table of that data type.", - ), - ] = None - column_type_counts: Annotated[ - dict[str, int] | None, - Field( - alias="columnTypeCounts", - description="A map of data types to the number of columns in the table of that data type.", - ), - ] = None - total_records: Annotated[ - int | None, - Field(alias="totalRecords", description="The total number of values."), - ] = None - blank_records: Annotated[ - int | None, - Field(alias="blankRecords", description="The number of blank values."), - ] = None - column_count: Annotated[ - int | None, Field(alias="columnCount", description="The number of columns.") - ] = None - total_rows: Annotated[ - int | None, Field(alias="totalRows", description="The total number of rows.") - ] = None - - -class ApiSheetMetricsReadState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiSheetMetricsRead(BaseItem): - state: Annotated[ - ApiSheetMetricsReadState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreviewRead] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( - None - ) - sheet_names: Annotated[ - list[str] | None, - Field( - alias="sheetNames", - description="A list of sheet names within the underlying Excel file.", - ), - ] = None - valid_sheets: Annotated[ - list[str] | None, - Field( - alias="validSheets", - description="A list of usable sheet names within the underlying Excel file.", - ), - ] = None - - -class RangeBigDecimalRead(BaseItem): - min: float | None = None - max: float | None = None - - -class RangeIntegerRead(BaseItem): - min: int | None = None - max: int | None = None - - -class RangeZonedDateTimeRead(BaseItem): - min: AwareDatetime | None = None - max: AwareDatetime | None = None - - -class ApiAccountingPeriodCreateFrequency(str, Enum): - """The frequency with which your client's financial data is reported.""" - - ANNUAL = "ANNUAL" - SEMI_ANNUAL = "SEMI_ANNUAL" - QUARTERLY = "QUARTERLY" - MONTHLY = "MONTHLY" - THIRTEEN_PERIODS = "THIRTEEN_PERIODS" - - -class ApiAccountingPeriodCreate(BaseItem): - fiscal_start_month: Annotated[ - int | None, - Field( - alias="fiscalStartMonth", - description="The month that the fiscal period begins.", - ), - ] = None - fiscal_start_day: Annotated[ - int | None, - Field( - alias="fiscalStartDay", - description="The date of the month that the fiscal period begins.", - ), - ] = None - frequency: Annotated[ - ApiAccountingPeriodCreateFrequency | None, - Field( - description="The frequency with which your client's financial data is reported." - ), - ] = None - - -class ApiEngagementCreate(BaseItem): - organization_id: Annotated[ - str | None, - Field(alias="organizationId", description="Identifies the organization."), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the engagement.", max_length=80, min_length=0), - ] = None - billing_code: Annotated[ - str | None, - Field( - alias="billingCode", - description="A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage.", - ), - ] = None - library_id: Annotated[ - str | None, Field(alias="libraryId", description="Identifies the library.") - ] = None - accounting_period: Annotated[ - ApiAccountingPeriodCreate | None, - Field( - alias="accountingPeriod", description="Details about the accounting period." - ), - ] = None - audit_period_end_date: Annotated[ - date | None, - Field( - alias="auditPeriodEndDate", - description="The last day of the occurring audit.", - ), - ] = None - accounting_package: Annotated[ - str | None, - Field( - alias="accountingPackage", - description="The ERP or financial management system that your client is using.", - ), - ] = None - industry: Annotated[ - str | None, - Field(description="The type of industry that your client operates within."), - ] = None - engagement_lead_id: Annotated[ - str | None, - Field( - alias="engagementLeadId", - description="Identifies the user who will lead the engagement.", - ), - ] = None - settings_based_on_engagement_id: Annotated[ - str | None, - Field( - alias="settingsBasedOnEngagementId", - description="Identifies the engagement that the settings are based on.", - ), - ] = None - reporting_period_configuration_id: Annotated[ - str | None, - Field( - alias="reportingPeriodConfigurationId", - description="Identifies the associated reporting period configuration. If null the analyses use a standard reporting period.", - ), - ] = None - auditor_ids: Annotated[ - list[str] | None, - Field( - alias="auditorIds", - description="Identifies the users who will act as auditors in the engagement.", - ), - ] = None - - -class ApiEngagementAccountGroupCreate(BaseItem): - engagement_account_grouping_id: Annotated[ - str | None, - Field( - alias="engagementAccountGroupingId", - description="The unique identifier for the engagement account grouping that the engagement account group belongs to.", - ), - ] = None - code: Annotated[ - str | None, Field(description="The account code for this account group.") - ] = None - description: Annotated[ - dict[str, str] | None, - Field(description="A description of the account code for this account group."), - ] = None - parent_code: Annotated[ - str | None, - Field( - alias="parentCode", description="The parent code for this account group." - ), - ] = None - mac_code: Annotated[ - str | None, - Field( - alias="macCode", description="The MAC code mapped to this account group." - ), - ] = None - hidden: Annotated[ - bool | None, - Field( - description="When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import." - ), - ] = None - alias: Annotated[ - str | None, - Field( - description="A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping." - ), - ] = None - - -class ApiAsyncResultType(str, Enum): - """Indicates the type of job being run.""" - - ANALYSIS_RUN = "ANALYSIS_RUN" - ANALYSIS_SOURCE_INGESTION = "ANALYSIS_SOURCE_INGESTION" - ADMIN_REPORT = "ADMIN_REPORT" - DATA_TABLE_EXPORT = "DATA_TABLE_EXPORT" - ANALYSIS_ROLL_FORWARD = "ANALYSIS_ROLL_FORWARD" - GDPDU_UNPACK_JOB = "GDPDU_UNPACK_JOB" - ACCOUNT_GROUPING_EXPORT = "ACCOUNT_GROUPING_EXPORT" - ACCOUNT_MAPPING_EXPORT = "ACCOUNT_MAPPING_EXPORT" - DATA_TRANSFORMATION_JOB = "DATA_TRANSFORMATION_JOB" - CONNECTION_TEST = "CONNECTION_TEST" - CONNECTION_TABLES = "CONNECTION_TABLES" - DATA_TABLE = "DATA_TABLE" - - -class ApiAsyncResultStatus(str, Enum): - """Indicates the current state of the job.""" - - IN_PROGRESS = "IN_PROGRESS" - COMPLETE = "COMPLETE" - ERROR = "ERROR" - - -class ApiAsyncResultEntityType(str, Enum): - """Identifies the entity type used in the job.""" - - ORGANIZATION = "ORGANIZATION" - ENGAGEMENT = "ENGAGEMENT" - ANALYSIS = "ANALYSIS" - ANALYSIS_RESULT = "ANALYSIS_RESULT" - ANALYSIS_SOURCE = "ANALYSIS_SOURCE" - FILE_RESULT = "FILE_RESULT" - GDPDU_UNPACK_JOB = "GDPDU_UNPACK_JOB" - ACCOUNT_GROUPING = "ACCOUNT_GROUPING" - ENGAGEMENT_ACCOUNT_GROUPING = "ENGAGEMENT_ACCOUNT_GROUPING" - FILE_MANAGER_FILE = "FILE_MANAGER_FILE" - CONNECTION_TEST_RESULT = "CONNECTION_TEST_RESULT" - CONNECTION_TABLES_RESULT = "CONNECTION_TABLES_RESULT" - DATA_TABLE = "DATA_TABLE" - - -class ApiUserInfo(BaseItem): - user_id: Annotated[ - str | None, Field(alias="userId", description="Identifies the user.") - ] = None - user_name: Annotated[ - str | None, Field(alias="userName", description="The name of the user.") - ] = None - - -class ApiEngagementAccountGroupingRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="The data integrity version, to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", - description="The unique identifier of the engagement that this engagement account grouping belongs to.", - ), - ] = None - account_grouping_id: Annotated[ - str | None, - Field( - alias="accountGroupingId", - description="The unique identifier of the account grouping on which this is based.", - ), - ] = None - name: Annotated[ - dict[str, str] | None, Field(description="The name of the account grouping.") - ] = None - code_display_name: Annotated[ - dict[str, str] | None, - Field( - alias="codeDisplayName", - description="The name of the account code hierarchy system used within the dataset.", - ), - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The delimiter character used to separate each category level in an account grouping code." - ), - ] = None - - -class ApiDatabricksAuthorizationCreateAuthType(str, Enum): - """The authentication method to use. Possible values: PAT, OAUTH_M2M.""" - - PAT = "PAT" - OAUTH_M2_M = "OAUTH_M2M" - - -class ApiDatabricksAuthorizationCreate(BaseItem): - connection_id: Annotated[ - str | None, - Field( - alias="connectionId", - description="The ID of the Connection this authorization belongs to.", - ), - ] = None - auth_type: Annotated[ - ApiDatabricksAuthorizationCreateAuthType | None, - Field( - alias="authType", - description="The authentication method to use. Possible values: PAT, OAUTH_M2M.", - ), - ] = None - host: Annotated[ - str | None, Field(description="The Databricks server hostname.") - ] = None - port: Annotated[ - int | None, - Field( - description="The port number for the Databricks connection. Typically 443." - ), - ] = None - http_path: Annotated[ - str | None, - Field( - alias="httpPath", - description="The HTTP path for the Databricks SQL warehouse or cluster.", - ), - ] = None - access_token: Annotated[ - str | None, - Field( - alias="accessToken", - description="The personal access token for PAT authentication.", - ), - ] = None - client_id: Annotated[ - str | None, - Field( - alias="clientId", - description="The OAuth client ID for OAUTH_M2M authentication.", - ), - ] = None - client_secret: Annotated[ - str | None, - Field( - alias="clientSecret", - description="The OAuth client secret for OAUTH_M2M authentication.", - ), - ] = None - - -class ProblemProblemType(str, Enum): - """The type of problem.""" - - UNKNOWN = "UNKNOWN" - ILLEGAL_ARGUMENT = "ILLEGAL_ARGUMENT" - CANNOT_DELETE = "CANNOT_DELETE" - GREATER_VALUE_REQUIRED = "GREATER_VALUE_REQUIRED" - LESS_VALUE_REQUIRED = "LESS_VALUE_REQUIRED" - NON_UNIQUE_VALUE = "NON_UNIQUE_VALUE" - USER_EMAIL_ALREADY_EXISTS = "USER_EMAIL_ALREADY_EXISTS" - INCORRECT_DATA_TYPE = "INCORRECT_DATA_TYPE" - RATIO_CONVERSION_FAILED = "RATIO_CONVERSION_FAILED" - RISK_SCORE_FILTER_CONVERSION_FAILED = "RISK_SCORE_FILTER_CONVERSION_FAILED" - FILTER_CONVERSION_FAILED = "FILTER_CONVERSION_FAILED" - POPULATION_CONVERSION_FAILED = "POPULATION_CONVERSION_FAILED" - INSUFFICIENT_PERMISSION = "INSUFFICIENT_PERMISSION" - ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS = "ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS" - ACCOUNT_GROUPING_IN_USE_BY_LIBRARY = "ACCOUNT_GROUPING_IN_USE_BY_LIBRARY" - INVALID_ACCOUNT_GROUPING_FILE = "INVALID_ACCOUNT_GROUPING_FILE" - DELIVERY_FAILURE = "DELIVERY_FAILURE" - INVALID_STATE = "INVALID_STATE" - - -class ProblemSeverity(str, Enum): - """Indicates how severe the problem is.""" - - WARNING = "WARNING" - ERROR = "ERROR" - - -class Problem(BaseItem): - problem_type: Annotated[ - ProblemProblemType | None, - Field(alias="problemType", description="The type of problem."), - ] = None - severity: Annotated[ - ProblemSeverity | None, - Field(description="Indicates how severe the problem is."), - ] = None - entity_type: Annotated[ - str | None, - Field( - alias="entityType", - description="The type of entity impacted by the problem.", - ), - ] = None - entity_id: Annotated[ - str | None, - Field( - alias="entityId", - description="Identifies the entity impacted by the problem.", - ), - ] = None - identifier: Annotated[ - str | None, Field(description="Identifies the field causing the problem.") - ] = None - values: Annotated[ - list[str] | None, - Field(description="Identifies the values causing the problem."), - ] = None - reason: Annotated[ - str | None, Field(description="The reason(s) why the problem occurred.") - ] = None - suggested_values: Annotated[ - list[str] | None, - Field( - alias="suggestedValues", - description="A suggested set of values to assist in resolving the problem.", - ), - ] = None - problem_count: Annotated[ - int | None, - Field( - alias="problemCount", - description="The total number of occurrences of this problem.", - ), - ] = None - - -class ApiCsvConfiguration(BaseItem): - delimiter: Annotated[ - str | None, Field(description="The character used to separate entries.") - ] = None - quote: Annotated[ - str | None, Field(description="The character used to encapsulate an entry.") - ] = None - quote_escape: Annotated[ - str | None, - Field( - alias="quoteEscape", - description="The character used to escape the quote character.", - ), - ] = None - quote_escape_escape: Annotated[ - str | None, - Field( - alias="quoteEscapeEscape", - description="The character used to escape the quote escape character.", - ), - ] = None - - -class ApiDataTableQuerySortOrderDirection(str, Enum): - """How the column will be sorted.""" - - ASC = "ASC" - DESC = "DESC" - - -class ApiDataTableQuerySortOrder(BaseItem): - field: Annotated[str | None, Field(description="The data table column.")] = None - direction: Annotated[ - ApiDataTableQuerySortOrderDirection | None, - Field(description="How the column will be sorted."), - ] = None - - -class ShieldQueryTermOperatorShieldQueryTermOperatorEnum(str, Enum): - FIELD_EQ = "$eq" - FIELD_NE = "$ne" - FIELD_GT = "$gt" - FIELD_GTE = "$gte" - FIELD_LT = "$lt" - FIELD_LTE = "$lte" - FIELD_CONTAINS = "$contains" - FIELD_NCONTAINS = "$ncontains" - FIELD_IN = "$in" - FIELD_NIN = "$nin" - FIELD_FLAGS = "$flags" - FIELD_KEYWORD_PREFIX = "$keyword_prefix" - FIELD_KEYWORD_PREFIX_NOT = "$keyword_prefix_not" - FIELD_ISUBSTR = "$isubstr" - FIELD_IPREFIX = "$iprefix" - FIELD_NIPREFIX = "$niprefix" - FIELD_BETWEEN = "$between" - FIELD_NBETWEEN = "$nbetween" - FIELD_AND = "$and" - FIELD_OR = "$or" - FIELD_POPULATION = "$population" - FIELD_NOT_POPULATION = "$not_population" - - -ShieldQueryTermOperator = RootModel[ - ShieldQueryTermOperatorShieldQueryTermOperatorEnum | None -] - - -class ShieldQueryTerm(BaseItem): - operator: ShieldQueryTermOperator | None = None - - -class ApiDataTablePage(BaseItem): - content: list[dict[str, Any]] | None = None - - -class ApiDataTableQuerySortOrderReadDirection(str, Enum): - """How the column will be sorted.""" - - ASC = "ASC" - DESC = "DESC" - - -class ApiDataTableQuerySortOrderRead(BaseItem): - field: Annotated[str | None, Field(description="The data table column.")] = None - direction: Annotated[ - ApiDataTableQuerySortOrderReadDirection | None, - Field(description="How the column will be sorted."), - ] = None - - -class ApiDataTableColumnReadType(str, Enum): - """The type of data found in the column.""" - - STRING = "STRING" - DATE = "DATE" - DATE_TIME = "DATE_TIME" - BOOLEAN = "BOOLEAN" - INT16 = "INT16" - INT32 = "INT32" - INT64 = "INT64" - FLOAT32 = "FLOAT32" - FLOAT64 = "FLOAT64" - MONEY_100 = "MONEY_100" - PERCENTAGE_FIXED_POINT = "PERCENTAGE_FIXED_POINT" - ARRAY_STRINGS = "ARRAY_STRINGS" - ARRAY_INT64 = "ARRAY_INT64" - KEYWORD_SEARCH = "KEYWORD_SEARCH" - OBJECTID = "OBJECTID" - BOOLEAN_FLAGS = "BOOLEAN_FLAGS" - MAP_SCALARS = "MAP_SCALARS" - LEGACY_ACCOUNT_TAG_EFFECTS = "LEGACY_ACCOUNT_TAG_EFFECTS" - JSONB = "JSONB" - - -class ApiDataTableColumnRead(BaseItem): - original_name: Annotated[ - str | None, - Field( - alias="originalName", - description="The original field name, derived from the source file, risk score name, or similar source.", - ), - ] = None - field: Annotated[str | None, Field(description="The column name.")] = None - mind_bridge_field: Annotated[ - str | None, - Field( - alias="mindBridgeField", - description="The MindBridge field name that this column is mapped to.", - ), - ] = None - type: Annotated[ - ApiDataTableColumnReadType | None, - Field(description="The type of data found in the column."), - ] = None - nullable: Annotated[ - bool | None, - Field(description="Indicates whether or not NULL values are allowed."), - ] = None - equality_search: Annotated[ - bool | None, - Field( - alias="equalitySearch", - description="Indicates whether or not a search can be performed based on two equal operands.", - ), - ] = None - range_search: Annotated[ - bool | None, - Field( - alias="rangeSearch", - description="Indicates whether or not a search can be performed on a value-based comparison.", - ), - ] = None - sortable: Annotated[ - bool | None, - Field( - description="Indicates whether or not the data table can be sorted by this column." - ), - ] = None - contains_search: Annotated[ - bool | None, - Field( - alias="containsSearch", - description="Indicates whether or not a value-based search can be performed.", - ), - ] = None - keyword_search: Annotated[ - bool | None, - Field( - alias="keywordSearch", - description="Indicates whether or not a keyword search can be performed.", - ), - ] = None - case_insensitive_substring_search: Annotated[ - bool | None, - Field( - alias="caseInsensitiveSubstringSearch", - description="Indicates whether or not a case insensitive search can be performed on a substring.", - ), - ] = None - case_insensitive_prefix_search: Annotated[ - bool | None, - Field( - alias="caseInsensitivePrefixSearch", - description="Indicates whether or not a case insensitive search can be performed on a prefix.", - ), - ] = None - filter_only: Annotated[ - bool | None, - Field( - alias="filterOnly", - description="Indicates whether a field can only be used as part of a filter.", - ), - ] = None - typeahead_data_table_id: Annotated[ - str | None, - Field( - alias="typeaheadDataTableId", - description="The ID of the typeahead table that this column references.", - ), - ] = None - - -class ApiDataTableRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - analysis_id: Annotated[ - str | None, - Field(alias="analysisId", description="Identifies the associated analysis."), - ] = None - analysis_result_id: Annotated[ - str | None, - Field( - alias="analysisResultId", - description="Identifies the associated analysis results.", - ), - ] = None - logical_name: Annotated[ - str | None, - Field(alias="logicalName", description="The name of the data table."), - ] = None - type: Annotated[str | None, Field(description="The type of data table.")] = None - columns: Annotated[ - list[ApiDataTableColumnRead] | None, - Field(description="Details about the data table columns."), - ] = None - - -class ApiConnectionCreateType(str, Enum): - """The type of external connection.""" - - DATABRICKS = "DATABRICKS" - MINDBRIDGE_DATA_TABLES = "MINDBRIDGE_DATA_TABLES" - - -class ApiConnectionCreate(BaseItem): - type: Annotated[ - ApiConnectionCreateType | None, - Field(description="The type of external connection."), - ] = None - - -class ApiConnectionReadType(str, Enum): - """The type of external connection.""" - - DATABRICKS = "DATABRICKS" - MINDBRIDGE_DATA_TABLES = "MINDBRIDGE_DATA_TABLES" - - -class ApiConnectionRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - type: Annotated[ - ApiConnectionReadType | None, - Field(description="The type of external connection."), - ] = None - - -class ApiTabularSchemaColumnCreateColumnType(str, Enum): - """The data type of the column.""" - - STRING = "STRING" - DATE = "DATE" - DATE_TIME = "DATE_TIME" - BOOLEAN = "BOOLEAN" - INT16 = "INT16" - INT32 = "INT32" - INT64 = "INT64" - FLOAT32 = "FLOAT32" - FLOAT64 = "FLOAT64" - MONEY_100 = "MONEY_100" - PERCENTAGE_FIXED_POINT = "PERCENTAGE_FIXED_POINT" - ARRAY_STRINGS = "ARRAY_STRINGS" - ARRAY_INT64 = "ARRAY_INT64" - KEYWORD_SEARCH = "KEYWORD_SEARCH" - OBJECTID = "OBJECTID" - BOOLEAN_FLAGS = "BOOLEAN_FLAGS" - MAP_SCALARS = "MAP_SCALARS" - LEGACY_ACCOUNT_TAG_EFFECTS = "LEGACY_ACCOUNT_TAG_EFFECTS" - JSONB = "JSONB" - - -class ApiTabularSchemaColumnCreate(BaseItem): - name: Annotated[str | None, Field(description="The name of the column.")] = None - column_type: Annotated[ - ApiTabularSchemaColumnCreateColumnType | None, - Field(alias="columnType", description="The data type of the column."), - ] = None - nullable: Annotated[ - bool | None, Field(description="Whether the column allows null values.") - ] = None - - -class ApiTabularSchemaCreate(BaseItem): - columns: Annotated[ - list[ApiTabularSchemaColumnCreate] | None, - Field(description="The list of column definitions for the table."), - ] = None - - -class ApiConnectionTestResultRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - connection_id: Annotated[ - str | None, - Field( - alias="connectionId", - description="The ID of the Connection that was tested.", - ), - ] = None - message: Annotated[ - str | None, - Field(description="A message describing the outcome of the connection test."), - ] = None - - -class ApiTabularSchemaColumnReadColumnType(str, Enum): - """The data type of the column.""" - - STRING = "STRING" - DATE = "DATE" - DATE_TIME = "DATE_TIME" - BOOLEAN = "BOOLEAN" - INT16 = "INT16" - INT32 = "INT32" - INT64 = "INT64" - FLOAT32 = "FLOAT32" - FLOAT64 = "FLOAT64" - MONEY_100 = "MONEY_100" - PERCENTAGE_FIXED_POINT = "PERCENTAGE_FIXED_POINT" - ARRAY_STRINGS = "ARRAY_STRINGS" - ARRAY_INT64 = "ARRAY_INT64" - KEYWORD_SEARCH = "KEYWORD_SEARCH" - OBJECTID = "OBJECTID" - BOOLEAN_FLAGS = "BOOLEAN_FLAGS" - MAP_SCALARS = "MAP_SCALARS" - LEGACY_ACCOUNT_TAG_EFFECTS = "LEGACY_ACCOUNT_TAG_EFFECTS" - JSONB = "JSONB" - - -class ApiTabularSchemaColumnRead(BaseItem): - name: Annotated[str | None, Field(description="The name of the column.")] = None - column_type: Annotated[ - ApiTabularSchemaColumnReadColumnType | None, - Field(alias="columnType", description="The data type of the column."), - ] = None - nullable: Annotated[ - bool | None, Field(description="Whether the column allows null values.") - ] = None - - -class ApiTabularSchemaRead(BaseItem): - columns: Annotated[ - list[ApiTabularSchemaColumnRead] | None, - Field(description="The list of column definitions for the table."), - ] = None - - -class ApiConnectionTablesResultRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - connection_id: Annotated[ - str | None, - Field( - alias="connectionId", - description="The ID of the Connection that this tables result belongs to.", - ), - ] = None - table_count: Annotated[ - int | None, - Field( - alias="tableCount", - description="The total number of tables discovered from the connection.", - ), - ] = None - - -class ApiConnectionDataSourceCreate(BaseItem): - connection_id: Annotated[ - str | None, - Field( - alias="connectionId", - description="The ID of the Connection this data source belongs to.", - ), - ] = None - table_id: Annotated[ - str | None, - Field( - alias="tableId", - description="The identifier of the table within the external connection.", - ), - ] = None - schema_: Annotated[ - ApiTabularSchemaCreate | None, - Field( - alias="schema", - description="The schema describing the columns of the table.", - ), - ] = None - - -class ApiConnectionDataSourceRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - connection_id: Annotated[ - str | None, - Field( - alias="connectionId", - description="The ID of the Connection this data source belongs to.", - ), - ] = None - table_id: Annotated[ - str | None, - Field( - alias="tableId", - description="The identifier of the table within the external connection.", - ), - ] = None - schema_: Annotated[ - ApiTabularSchemaRead | None, - Field( - alias="schema", - description="The schema describing the columns of the table.", - ), - ] = None - - -class ApiDataSourceDataRequestCreate(BaseItem): - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", - description="Identifies the engagement that the resulting Data Table will be associated with.", - ), - ] = None - filter: Annotated[ - ShieldQueryTermCreate | None, - Field( - description="Optional filter to apply to the data retrieval. If not set, all rows are returned unfiltered." - ), - ] = None - limit: Annotated[ - int | None, - Field( - description="Maximum number of rows to return. If not set, all matching rows are returned.", - ge=0, - ), - ] = None - offset: Annotated[ - int | None, - Field( - description="Number of rows to skip before returning results. If not set, results start from the first row.", - ge=0, - ), - ] = None - - -class ApiChunkedFileCreate(BaseItem): - name: Annotated[str | None, Field(description="The name of the chunked file.")] = ( - None - ) - size: Annotated[ - int | None, Field(description="The size of the chunked file.", ge=0) - ] = None - - -class ApiChunkedFilePartRead(BaseItem): - offset: Annotated[ - int | None, - Field( - description="Indicates the start position of the file part in the chunked file.", - ge=0, - ), - ] = None - size: Annotated[ - int | None, Field(description="The size of the file part.", ge=0) - ] = None - - -class ApiChunkedFileRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - name: Annotated[str | None, Field(description="The name of the chunked file.")] = ( - None - ) - size: Annotated[ - int | None, Field(description="The size of the chunked file.", ge=0) - ] = None - chunked_file_parts: Annotated[ - list[ApiChunkedFilePartRead] | None, - Field( - alias="chunkedFileParts", - description="The offset and size of the chunked file parts.", - ), - ] = None - - -class ApiChunkedFilePart(BaseItem): - offset: Annotated[ - int | None, - Field( - description="Indicates the start position of the file part in the chunked file.", - ge=0, - ), - ] = None - size: Annotated[ - int | None, Field(description="The size of the file part.", ge=0) - ] = None - - -class ApiApiTokenCreatePermission(str, Enum): - API_ORGANIZATIONS_READ = "api.organizations.read" - API_ORGANIZATIONS_WRITE = "api.organizations.write" - API_ORGANIZATIONS_DELETE = "api.organizations.delete" - API_ENGAGEMENTS_READ = "api.engagements.read" - API_ENGAGEMENTS_WRITE = "api.engagements.write" - API_ENGAGEMENTS_DELETE = "api.engagements.delete" - API_ANALYSES_READ = "api.analyses.read" - API_ANALYSES_WRITE = "api.analyses.write" - API_ANALYSES_DELETE = "api.analyses.delete" - API_ANALYSES_RUN = "api.analyses.run" - API_ANALYSIS_SOURCES_READ = "api.analysis-sources.read" - API_ANALYSIS_SOURCES_WRITE = "api.analysis-sources.write" - API_ANALYSIS_SOURCES_DELETE = "api.analysis-sources.delete" - API_FILE_MANAGER_READ = "api.file-manager.read" - API_FILE_MANAGER_WRITE = "api.file-manager.write" - API_FILE_MANAGER_DELETE = "api.file-manager.delete" - API_REPORTING_PERIOD_CONFIG_READ = "api.reporting-period-config.read" - API_REPORTING_PERIOD_CONFIG_WRITE = "api.reporting-period-config.write" - API_REPORTING_PERIOD_CONFIG_DELETE = "api.reporting-period-config.delete" - API_LIBRARIES_READ = "api.libraries.read" - API_LIBRARIES_WRITE = "api.libraries.write" - API_LIBRARIES_DELETE = "api.libraries.delete" - API_ACCOUNT_GROUPINGS_READ = "api.account-groupings.read" - API_ACCOUNT_GROUPINGS_WRITE = "api.account-groupings.write" - API_ACCOUNT_GROUPINGS_DELETE = "api.account-groupings.delete" - API_ENGAGEMENT_ACCOUNT_GROUPINGS_READ = "api.engagement-account-groupings.read" - API_ENGAGEMENT_ACCOUNT_GROUPINGS_WRITE = "api.engagement-account-groupings.write" - API_ENGAGEMENT_ACCOUNT_GROUPINGS_DELETE = "api.engagement-account-groupings.delete" - API_USERS_READ = "api.users.read" - API_USERS_WRITE = "api.users.write" - API_USERS_DELETE = "api.users.delete" - API_DATA_TABLES_READ = "api.data-tables.read" - API_API_TOKENS_READ = "api.api-tokens.read" - API_API_TOKENS_WRITE = "api.api-tokens.write" - API_API_TOKENS_DELETE = "api.api-tokens.delete" - API_TASKS_READ = "api.tasks.read" - API_TASKS_WRITE = "api.tasks.write" - API_TASKS_DELETE = "api.tasks.delete" - API_ADMIN_REPORTS_RUN = "api.admin-reports.run" - API_ANALYSIS_TYPES_READ = "api.analysis-types.read" - API_ANALYSIS_SOURCE_TYPES_READ = "api.analysis-source-types.read" - API_ANALYSIS_TYPE_CONFIGURATION_READ = "api.analysis-type-configuration.read" - API_ANALYSIS_TYPE_CONFIGURATION_WRITE = "api.analysis-type-configuration.write" - API_ANALYSIS_TYPE_CONFIGURATION_DELETE = "api.analysis-type-configuration.delete" - API_RISK_RANGES_READ = "api.risk-ranges.read" - API_RISK_RANGES_WRITE = "api.risk-ranges.write" - API_RISK_RANGES_DELETE = "api.risk-ranges.delete" - API_FILTERS_READ = "api.filters.read" - API_FILTERS_WRITE = "api.filters.write" - API_FILTERS_DELETE = "api.filters.delete" - API_FILE_INFOS_READ = "api.file-infos.read" - API_WEBHOOKS_READ = "api.webhooks.read" - API_WEBHOOKS_WRITE = "api.webhooks.write" - API_WEBHOOKS_DELETE = "api.webhooks.delete" - API_CONNECTIONS_READ = "api.connections.read" - API_CONNECTIONS_WRITE = "api.connections.write" - API_CONNECTIONS_DELETE = "api.connections.delete" - API_CONNECTION_DATA_SOURCES_READ = "api.connection-data-sources.read" - API_CONNECTION_DATA_SOURCES_WRITE = "api.connection-data-sources.write" - API_CONNECTION_DATA_SOURCES_DELETE = "api.connection-data-sources.delete" - SCIM_USER_READ = "scim.user.read" - SCIM_USER_WRITE = "scim.user.write" - SCIM_USER_DELETE = "scim.user.delete" - SCIM_USER_SCHEMA = "scim.user.schema" - - -class ApiApiTokenCreate(BaseItem): - name: Annotated[ - str | None, - Field( - description="The token record's name. This will also be used as the API Token User's name." - ), - ] = None - expiry: Annotated[ - AwareDatetime | None, - Field(description="The day on which the API token expires."), - ] = None - allowed_addresses: Annotated[ - list[str] | None, - Field( - alias="allowedAddresses", - description="Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.", - ), - ] = None - permissions: Annotated[ - list[ApiApiTokenCreatePermission] | None, - Field( - description="The set of permissions that inform which endpoints this token is authorized to access." - ), - ] = None - - -class CreateApiTokenResponseReadPermission(str, Enum): - API_ORGANIZATIONS_READ = "api.organizations.read" - API_ORGANIZATIONS_WRITE = "api.organizations.write" - API_ORGANIZATIONS_DELETE = "api.organizations.delete" - API_ENGAGEMENTS_READ = "api.engagements.read" - API_ENGAGEMENTS_WRITE = "api.engagements.write" - API_ENGAGEMENTS_DELETE = "api.engagements.delete" - API_ANALYSES_READ = "api.analyses.read" - API_ANALYSES_WRITE = "api.analyses.write" - API_ANALYSES_DELETE = "api.analyses.delete" - API_ANALYSES_RUN = "api.analyses.run" - API_ANALYSIS_SOURCES_READ = "api.analysis-sources.read" - API_ANALYSIS_SOURCES_WRITE = "api.analysis-sources.write" - API_ANALYSIS_SOURCES_DELETE = "api.analysis-sources.delete" - API_FILE_MANAGER_READ = "api.file-manager.read" - API_FILE_MANAGER_WRITE = "api.file-manager.write" - API_FILE_MANAGER_DELETE = "api.file-manager.delete" - API_REPORTING_PERIOD_CONFIG_READ = "api.reporting-period-config.read" - API_REPORTING_PERIOD_CONFIG_WRITE = "api.reporting-period-config.write" - API_REPORTING_PERIOD_CONFIG_DELETE = "api.reporting-period-config.delete" - API_LIBRARIES_READ = "api.libraries.read" - API_LIBRARIES_WRITE = "api.libraries.write" - API_LIBRARIES_DELETE = "api.libraries.delete" - API_ACCOUNT_GROUPINGS_READ = "api.account-groupings.read" - API_ACCOUNT_GROUPINGS_WRITE = "api.account-groupings.write" - API_ACCOUNT_GROUPINGS_DELETE = "api.account-groupings.delete" - API_ENGAGEMENT_ACCOUNT_GROUPINGS_READ = "api.engagement-account-groupings.read" - API_ENGAGEMENT_ACCOUNT_GROUPINGS_WRITE = "api.engagement-account-groupings.write" - API_ENGAGEMENT_ACCOUNT_GROUPINGS_DELETE = "api.engagement-account-groupings.delete" - API_USERS_READ = "api.users.read" - API_USERS_WRITE = "api.users.write" - API_USERS_DELETE = "api.users.delete" - API_DATA_TABLES_READ = "api.data-tables.read" - API_API_TOKENS_READ = "api.api-tokens.read" - API_API_TOKENS_WRITE = "api.api-tokens.write" - API_API_TOKENS_DELETE = "api.api-tokens.delete" - API_TASKS_READ = "api.tasks.read" - API_TASKS_WRITE = "api.tasks.write" - API_TASKS_DELETE = "api.tasks.delete" - API_ADMIN_REPORTS_RUN = "api.admin-reports.run" - API_ANALYSIS_TYPES_READ = "api.analysis-types.read" - API_ANALYSIS_SOURCE_TYPES_READ = "api.analysis-source-types.read" - API_ANALYSIS_TYPE_CONFIGURATION_READ = "api.analysis-type-configuration.read" - API_ANALYSIS_TYPE_CONFIGURATION_WRITE = "api.analysis-type-configuration.write" - API_ANALYSIS_TYPE_CONFIGURATION_DELETE = "api.analysis-type-configuration.delete" - API_RISK_RANGES_READ = "api.risk-ranges.read" - API_RISK_RANGES_WRITE = "api.risk-ranges.write" - API_RISK_RANGES_DELETE = "api.risk-ranges.delete" - API_FILTERS_READ = "api.filters.read" - API_FILTERS_WRITE = "api.filters.write" - API_FILTERS_DELETE = "api.filters.delete" - API_FILE_INFOS_READ = "api.file-infos.read" - API_WEBHOOKS_READ = "api.webhooks.read" - API_WEBHOOKS_WRITE = "api.webhooks.write" - API_WEBHOOKS_DELETE = "api.webhooks.delete" - API_CONNECTIONS_READ = "api.connections.read" - API_CONNECTIONS_WRITE = "api.connections.write" - API_CONNECTIONS_DELETE = "api.connections.delete" - API_CONNECTION_DATA_SOURCES_READ = "api.connection-data-sources.read" - API_CONNECTION_DATA_SOURCES_WRITE = "api.connection-data-sources.write" - API_CONNECTION_DATA_SOURCES_DELETE = "api.connection-data-sources.delete" - SCIM_USER_READ = "scim.user.read" - SCIM_USER_WRITE = "scim.user.write" - SCIM_USER_DELETE = "scim.user.delete" - SCIM_USER_SCHEMA = "scim.user.schema" - - -class CreateApiTokenResponseRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - user_id: Annotated[ - str | None, - Field( - alias="userId", - description="Identifies the API Token User associated with this token.", - ), - ] = None - name: Annotated[ - str | None, - Field( - description="The token record's name. This will also be used as the API Token User's name." - ), - ] = None - partial_token: Annotated[ - str | None, - Field( - alias="partialToken", - description="A partial representation of the API token.", - ), - ] = None - expiry: Annotated[ - AwareDatetime | None, - Field(description="The day on which the API token expires."), - ] = None - allowed_addresses: Annotated[ - list[str] | None, - Field( - alias="allowedAddresses", - description="Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.", - ), - ] = None - permissions: Annotated[ - list[CreateApiTokenResponseReadPermission] | None, - Field( - description="The set of permissions that inform which endpoints this token is authorized to access." - ), - ] = None - token: Annotated[ - str | None, - Field( - description="The API token.\n\n**Note:** The security of the API token is paramount. If compromised, contact your **App Admin** immediately." - ), - ] = None - - -class ApiSourceConfigurationReadSourceScope(str, Enum): - """Indicates whether the source configuration applies to the current period, all of the prior periods, or the entire analysis. - - **Note**: Sources with an `ANALYSIS` scope should not provide an `analysisPeriodId`. - """ - - CURRENT_PERIOD = "CURRENT_PERIOD" - PRIOR_PERIOD = "PRIOR_PERIOD" - ANALYSIS = "ANALYSIS" - - -class ApiSourceConfigurationRead(BaseItem): - source_type_id: Annotated[ - str | None, - Field( - alias="sourceTypeId", - description="The source type ID selected as part of this configuration.", - ), - ] = None - source_scope: Annotated[ - ApiSourceConfigurationReadSourceScope | None, - Field( - alias="sourceScope", - description="Indicates whether the source configuration applies to the current period, all of the prior periods, or the entire analysis.\n\n**Note**: Sources with an `ANALYSIS` scope should not provide an `analysisPeriodId`.", - ), - ] = None - required: Annotated[ - bool | None, - Field( - description="When `true`, the analysis cannot be run until at least one analysis source with this source type in this source scope is present." - ), - ] = None - post_analysis: Annotated[ - bool | None, - Field( - alias="postAnalysis", - description="When `true`, this source configuration will be enabled after an analysis is run (not before).", - ), - ] = None - interim_only: Annotated[ - bool | None, - Field( - alias="interimOnly", - description="When `true`, this source configuration only applies when the interim time frame is used (i.e., it has not been converted for use with a full time frame).", - ), - ] = None - disable_for_interim: Annotated[ - bool | None, - Field( - alias="disableForInterim", - description="When `true` and the interim time frame is used (i.e., it has not been converted for use with a full time frame), new analysis sources of this source type and source scope cannot be added.", - ), - ] = None - allow_multiple: Annotated[ - bool | None, - Field( - alias="allowMultiple", - description="When `true`, multiple versions of this analysis source type may be imported using this source scope.", - ), - ] = None - allow_multiple_for_periodic: Annotated[ - bool | None, - Field( - alias="allowMultipleForPeriodic", - description="When `true` and the periodic time frame is used, multiple versions of this analysis source type may be imported using this source scope.", - ), - ] = None - alternative_required_source_types: Annotated[ - list[str] | None, - Field( - alias="alternativeRequiredSourceTypes", - description="A list of alternative analysis source types. If one of the alternatives is present for this source scope, then the `required` constraint is considered satisfied.", - ), - ] = None - tracks_additional_data_entries: Annotated[ - bool | None, - Field( - alias="tracksAdditionalDataEntries", - description="When `true`, the `additionalDataColumnField` field is required upon importing an analysis source type.", - ), - ] = None - - -class ApiAnalysisSourceCreateTargetWorkflowState(str, Enum): - """The state that the current workflow will advance to.""" - - COMPLETED = "COMPLETED" - CANCELLED = "CANCELLED" - FAILED = "FAILED" - STARTED = "STARTED" - DETECTING_FORMAT = "DETECTING_FORMAT" - ANALYZING_COLUMNS = "ANALYZING_COLUMNS" - CHECKING_INTEGRITY = "CHECKING_INTEGRITY" - SCANNING_TRANSACTION_COMBINATIONS = "SCANNING_TRANSACTION_COMBINATIONS" - PARSING = "PARSING" - PARSING_ICEBERG = "PARSING_ICEBERG" - ANALYZING_EFFECTIVE_DATE_METRICS = "ANALYZING_EFFECTIVE_DATE_METRICS" - FORMAT_DETECTION_COMPLETED = "FORMAT_DETECTION_COMPLETED" - COLUMN_MAPPINGS_CONFIRMED = "COLUMN_MAPPINGS_CONFIRMED" - SETTINGS_CONFIRMED = "SETTINGS_CONFIRMED" - PREPARING_ICEBERG = "PREPARING_ICEBERG" - ANALYSIS_PERIOD_SELECTED = "ANALYSIS_PERIOD_SELECTED" - FUNDS_REVIEWED = "FUNDS_REVIEWED" - RUNNING = "RUNNING" - UNPACK_COMPLETE = "UNPACK_COMPLETE" - UPLOADED = "UPLOADED" - FORMAT_DETECTED = "FORMAT_DETECTED" - COLUMNS_ANALYZED = "COLUMNS_ANALYZED" - INTEGRITY_CHECKED = "INTEGRITY_CHECKED" - PARSED = "PARSED" - AUTHENTICATED = "AUTHENTICATED" - CONFIGURED = "CONFIGURED" - EFFECTIVE_DATE_METRICS_ANALYZED = "EFFECTIVE_DATE_METRICS_ANALYZED" - DATA_VALIDATION_CONFIRMED = "DATA_VALIDATION_CONFIRMED" - - -class ApiProposedAmbiguousColumnResolutionCreate(BaseItem): - position: Annotated[ - int | None, - Field( - description="The position of the column with the proposed resolution.", ge=0 - ), - ] = None - selected_format: Annotated[ - str | None, - Field( - alias="selectedFormat", - description="The selected format of the proposed resolution.", - ), - ] = None - - -class ApiProposedColumnMappingCreate(BaseItem): - column_position: Annotated[ - int | None, - Field( - alias="columnPosition", - description="The position of the proposed column mapping in the original input file.", - ), - ] = None - virtual_column_index: Annotated[ - int | None, - Field( - alias="virtualColumnIndex", - description="The position of the proposed virtual columns within the `proposedVirtualColumns` list.", - ), - ] = None - mindbridge_field: Annotated[ - str | None, - Field( - alias="mindbridgeField", - description="The MindBridge field that the data column should be mapped to.", - ), - ] = None - additional_column_name: Annotated[ - str | None, - Field( - alias="additionalColumnName", - description="Proposed additional columns of data to be added to the analysis.", - ), - ] = None - - -class ApiProposedVirtualColumnCreateType(str, Enum): - """The type of proposed virtual column.""" - - DUPLICATE = "DUPLICATE" - SPLIT_BY_POSITION = "SPLIT_BY_POSITION" - SPLIT_BY_DELIMITER = "SPLIT_BY_DELIMITER" - JOIN = "JOIN" - - -class ApiProposedVirtualColumnCreate(BaseItem): - name: Annotated[ - str | None, Field(description="The name of the proposed virtual column.") - ] = None - type: Annotated[ - ApiProposedVirtualColumnCreateType | None, - Field(description="The type of proposed virtual column."), - ] = None - - -class ApiTransactionIdSelectionCreateType(str, Enum): - """The type used when selecting a transaction ID.""" - - COMBINATION = "COMBINATION" - RUNNING_TOTAL = "RUNNING_TOTAL" - - -class ApiTransactionIdSelectionCreate(BaseItem): - column_selection: Annotated[ - list[int] | None, - Field( - alias="columnSelection", - description="The columns included when selecting a transaction ID.", - ), - ] = None - virtual_column_selection: Annotated[ - list[int] | None, - Field( - alias="virtualColumnSelection", - description="The virtual columns included when selecting a transaction ID.", - ), - ] = None - type: Annotated[ - ApiTransactionIdSelectionCreateType | None, - Field(description="The type used when selecting a transaction ID."), - ] = None - apply_smart_splitter: Annotated[ - bool | None, - Field( - alias="applySmartSplitter", - description="Indicates whether or not the Smart Splitter was run when selecting a transaction ID.", - ), - ] = None - - -class ApiAmbiguousColumnRead(BaseItem): - position: Annotated[ - int | None, Field(description="The position of the column with the resolution.") - ] = None - ambiguous_formats: Annotated[ - list[str] | None, - Field( - alias="ambiguousFormats", - description="A list of ambiguous formats detected.", - ), - ] = None - selected_format: Annotated[ - str | None, - Field( - alias="selectedFormat", - description="The data format to be used in case of ambiguity.", - ), - ] = None - - -class ApiAnalysisSourceReadWorkflowState(str, Enum): - """The current state of the workflow.""" - - COMPLETED = "COMPLETED" - CANCELLED = "CANCELLED" - FAILED = "FAILED" - STARTED = "STARTED" - DETECTING_FORMAT = "DETECTING_FORMAT" - ANALYZING_COLUMNS = "ANALYZING_COLUMNS" - CHECKING_INTEGRITY = "CHECKING_INTEGRITY" - SCANNING_TRANSACTION_COMBINATIONS = "SCANNING_TRANSACTION_COMBINATIONS" - PARSING = "PARSING" - PARSING_ICEBERG = "PARSING_ICEBERG" - ANALYZING_EFFECTIVE_DATE_METRICS = "ANALYZING_EFFECTIVE_DATE_METRICS" - FORMAT_DETECTION_COMPLETED = "FORMAT_DETECTION_COMPLETED" - COLUMN_MAPPINGS_CONFIRMED = "COLUMN_MAPPINGS_CONFIRMED" - SETTINGS_CONFIRMED = "SETTINGS_CONFIRMED" - PREPARING_ICEBERG = "PREPARING_ICEBERG" - ANALYSIS_PERIOD_SELECTED = "ANALYSIS_PERIOD_SELECTED" - FUNDS_REVIEWED = "FUNDS_REVIEWED" - RUNNING = "RUNNING" - UNPACK_COMPLETE = "UNPACK_COMPLETE" - UPLOADED = "UPLOADED" - FORMAT_DETECTED = "FORMAT_DETECTED" - COLUMNS_ANALYZED = "COLUMNS_ANALYZED" - INTEGRITY_CHECKED = "INTEGRITY_CHECKED" - PARSED = "PARSED" - AUTHENTICATED = "AUTHENTICATED" - CONFIGURED = "CONFIGURED" - EFFECTIVE_DATE_METRICS_ANALYZED = "EFFECTIVE_DATE_METRICS_ANALYZED" - DATA_VALIDATION_CONFIRMED = "DATA_VALIDATION_CONFIRMED" - - -class ApiAnalysisSourceReadTargetWorkflowState(str, Enum): - """The state that the current workflow will advance to.""" - - COMPLETED = "COMPLETED" - CANCELLED = "CANCELLED" - FAILED = "FAILED" - STARTED = "STARTED" - DETECTING_FORMAT = "DETECTING_FORMAT" - ANALYZING_COLUMNS = "ANALYZING_COLUMNS" - CHECKING_INTEGRITY = "CHECKING_INTEGRITY" - SCANNING_TRANSACTION_COMBINATIONS = "SCANNING_TRANSACTION_COMBINATIONS" - PARSING = "PARSING" - PARSING_ICEBERG = "PARSING_ICEBERG" - ANALYZING_EFFECTIVE_DATE_METRICS = "ANALYZING_EFFECTIVE_DATE_METRICS" - FORMAT_DETECTION_COMPLETED = "FORMAT_DETECTION_COMPLETED" - COLUMN_MAPPINGS_CONFIRMED = "COLUMN_MAPPINGS_CONFIRMED" - SETTINGS_CONFIRMED = "SETTINGS_CONFIRMED" - PREPARING_ICEBERG = "PREPARING_ICEBERG" - ANALYSIS_PERIOD_SELECTED = "ANALYSIS_PERIOD_SELECTED" - FUNDS_REVIEWED = "FUNDS_REVIEWED" - RUNNING = "RUNNING" - UNPACK_COMPLETE = "UNPACK_COMPLETE" - UPLOADED = "UPLOADED" - FORMAT_DETECTED = "FORMAT_DETECTED" - COLUMNS_ANALYZED = "COLUMNS_ANALYZED" - INTEGRITY_CHECKED = "INTEGRITY_CHECKED" - PARSED = "PARSED" - AUTHENTICATED = "AUTHENTICATED" - CONFIGURED = "CONFIGURED" - EFFECTIVE_DATE_METRICS_ANALYZED = "EFFECTIVE_DATE_METRICS_ANALYZED" - DATA_VALIDATION_CONFIRMED = "DATA_VALIDATION_CONFIRMED" - - -class ApiAnalysisSourceReadDetectedFormat(str, Enum): - """The data format that MindBridge detected.""" - - QUICKBOOKS_JOURNAL = "QUICKBOOKS_JOURNAL" - QUICKBOOKS_JOURNAL_2024 = "QUICKBOOKS_JOURNAL_2024" - QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT = ( - "QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT" - ) - SAGE50_LEDGER = "SAGE50_LEDGER" - SAGE50_TRANSACTIONS = "SAGE50_TRANSACTIONS" - CCH_ACCOUNT_LIST = "CCH_ACCOUNT_LIST" - MS_DYNAMICS_JOURNAL = "MS_DYNAMICS_JOURNAL" - SAGE50_UK = "SAGE50_UK" - - -class ApiColumnMappingReadMappingType(str, Enum): - """The method used to map the column.""" - - AUTO = "AUTO" - NOT_MAPPED = "NOT_MAPPED" - MANUAL = "MANUAL" - - -class ApiColumnMappingRead(BaseItem): - position: Annotated[ - int | None, Field(description="The position of the column mapping.") - ] = None - field: Annotated[str | None, Field(description="The column name.")] = None - mindbridge_field: Annotated[ - str | None, - Field( - alias="mindbridgeField", - description="The MindBridge field that the data column was mapped to.", - ), - ] = None - mapping_type: Annotated[ - ApiColumnMappingReadMappingType | None, - Field(alias="mappingType", description="The method used to map the column."), - ] = None - additional_column_name: Annotated[ - str | None, - Field( - alias="additionalColumnName", - description="Additional columns of data that were added to the analysis.", - ), - ] = None - - -class ApiMessageRead(BaseItem): - code: Annotated[str | None, Field(description="Identifies the message type.")] = ( - None - ) - default_message: Annotated[ - str | None, - Field( - alias="defaultMessage", - description="The message as it appears in MindBridge.", - ), - ] = None - - -class ApiProposedAmbiguousColumnResolutionRead(BaseItem): - position: Annotated[ - int | None, - Field( - description="The position of the column with the proposed resolution.", ge=0 - ), - ] = None - selected_format: Annotated[ - str | None, - Field( - alias="selectedFormat", - description="The selected format of the proposed resolution.", - ), - ] = None - - -class ApiProposedColumnMappingRead(BaseItem): - column_position: Annotated[ - int | None, - Field( - alias="columnPosition", - description="The position of the proposed column mapping in the original input file.", - ), - ] = None - virtual_column_index: Annotated[ - int | None, - Field( - alias="virtualColumnIndex", - description="The position of the proposed virtual columns within the `proposedVirtualColumns` list.", - ), - ] = None - mindbridge_field: Annotated[ - str | None, - Field( - alias="mindbridgeField", - description="The MindBridge field that the data column should be mapped to.", - ), - ] = None - additional_column_name: Annotated[ - str | None, - Field( - alias="additionalColumnName", - description="Proposed additional columns of data to be added to the analysis.", - ), - ] = None - - -class ApiProposedVirtualColumnReadType(str, Enum): - """The type of proposed virtual column.""" - - DUPLICATE = "DUPLICATE" - SPLIT_BY_POSITION = "SPLIT_BY_POSITION" - SPLIT_BY_DELIMITER = "SPLIT_BY_DELIMITER" - JOIN = "JOIN" - - -class ApiProposedVirtualColumnRead(BaseItem): - name: Annotated[ - str | None, Field(description="The name of the proposed virtual column.") - ] = None - type: Annotated[ - ApiProposedVirtualColumnReadType | None, - Field(description="The type of proposed virtual column."), - ] = None - - -class ApiTransactionIdSelectionReadType(str, Enum): - """The type used when selecting a transaction ID.""" - - COMBINATION = "COMBINATION" - RUNNING_TOTAL = "RUNNING_TOTAL" - - -class ApiTransactionIdSelectionRead(BaseItem): - column_selection: Annotated[ - list[int] | None, - Field( - alias="columnSelection", - description="The columns included when selecting a transaction ID.", - ), - ] = None - virtual_column_selection: Annotated[ - list[int] | None, - Field( - alias="virtualColumnSelection", - description="The virtual columns included when selecting a transaction ID.", - ), - ] = None - type: Annotated[ - ApiTransactionIdSelectionReadType | None, - Field(description="The type used when selecting a transaction ID."), - ] = None - apply_smart_splitter: Annotated[ - bool | None, - Field( - alias="applySmartSplitter", - description="Indicates whether or not the Smart Splitter was run when selecting a transaction ID.", - ), - ] = None - - -class ApiVirtualColumnReadType(str, Enum): - """The type of virtual column.""" - - DUPLICATE = "DUPLICATE" - SPLIT_BY_POSITION = "SPLIT_BY_POSITION" - SPLIT_BY_DELIMITER = "SPLIT_BY_DELIMITER" - JOIN = "JOIN" - - -class ApiVirtualColumnRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - index: Annotated[ - int | None, Field(description="The position of the virtual column.") - ] = None - name: Annotated[ - str | None, Field(description="The name of the virtual column.") - ] = None - type: Annotated[ - ApiVirtualColumnReadType | None, - Field(description="The type of virtual column."), - ] = None - - -class ApiAnalysisSourceTypeReadFeature(str, Enum): - FORMAT_DETECTION = "FORMAT_DETECTION" - DATA_VALIDATION = "DATA_VALIDATION" - COLUMN_MAPPING = "COLUMN_MAPPING" - EFFECTIVE_DATE_METRICS = "EFFECTIVE_DATE_METRICS" - TRANSACTION_ID_SELECTION = "TRANSACTION_ID_SELECTION" - PARSE = "PARSE" - CONFIRM_SETTINGS = "CONFIRM_SETTINGS" - REVIEW_FUNDS = "REVIEW_FUNDS" - - -class ApiColumnDefinitionReadType(str, Enum): - """The type of data this column accepts.""" - - TEXT = "TEXT" - NUMBER = "NUMBER" - DATE = "DATE" - UNKNOWN = "UNKNOWN" - FLOAT64 = "FLOAT64" - - -class ApiColumnDefinitionRead(BaseItem): - mindbridge_field_name: Annotated[ - str | None, - Field( - alias="mindbridgeFieldName", - description="The internal name of the analysis source type's column.", - ), - ] = None - mindbridge_field_name_for_non_mac_groupings: Annotated[ - str | None, - Field( - alias="mindbridgeFieldNameForNonMacGroupings", - description="The alternative column name when a non-MAC based account grouping is used.", - ), - ] = None - type: Annotated[ - ApiColumnDefinitionReadType | None, - Field(description="The type of data this column accepts."), - ] = None - required: Annotated[ - bool | None, - Field(description="Indicates whether or not this column is required."), - ] = None - required_for_non_mac_groupings: Annotated[ - bool | None, - Field( - alias="requiredForNonMacGroupings", - description="Indicates whether or not this column is required when using a non-MAC based account grouping.", - ), - ] = None - allow_blanks: Annotated[ - bool | None, - Field( - alias="allowBlanks", - description="Indicates whether or not this column allows the source column to contain blank values.", - ), - ] = None - alternative_mappings: Annotated[ - list[str] | None, - Field( - alias="alternativeMappings", - description="A list of alternative mappings, identified by their `mindbridgeFieldName`. If all of the alternatives are mapped, then this mapping's `required` constraint is considered satisfied. \n\n**Note**: This column may not be mapped if any alternative is also mapped.", - ), - ] = None - default_value: Annotated[ - str | None, - Field( - alias="defaultValue", - description="A value that is substituted for blank values when `allowBlanks` is false.", - ), - ] = None - - -class ApiAnalysisResultRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="The data integrity version, to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - analysis_id: Annotated[ - str | None, - Field(alias="analysisId", description="Identifies the associated analysis."), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - analysis_type_id: Annotated[ - str | None, - Field(alias="analysisTypeId", description="Identifies the type of analysis."), - ] = None - interim: Annotated[ - bool | None, - Field( - description="Indicates whether or not the analysis is using an interim time frame." - ), - ] = None - analysis_periods: Annotated[ - list[ApiAnalysisPeriodRead] | None, - Field( - alias="analysisPeriods", - description="Details about the specific analysis periods under audit.", - ), - ] = None - reporting_period_configuration_id: Annotated[ - str | None, - Field( - alias="reportingPeriodConfigurationId", - description="Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period.", - ), - ] = None - - -class PageablenullRead(BaseItem): - paged: bool | None = None - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - page_size: Annotated[int | None, Field(alias="pageSize")] = None - unpaged: bool | None = None - offset: int | None = None - sort: SortnullRead | None = None - - -class ApiAnalysisPeriodCreate(BaseItem): - start_date: Annotated[ - date | None, - Field( - alias="startDate", description="The first day of the period under analysis." - ), - ] = None - interim_as_at_date: Annotated[ - date | None, - Field( - alias="interimAsAtDate", - description="The last day of the interim period under analysis.", - ), - ] = None - end_date: Annotated[ - date | None, - Field( - alias="endDate", description="The last day of the period under analysis." - ), - ] = None - - -class ApiAnalysisCreate(BaseItem): - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - analysis_type_id: Annotated[ - str | None, - Field(alias="analysisTypeId", description="Identifies the type of analysis."), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the analysis.", max_length=80, min_length=0), - ] = None - interim: Annotated[ - bool | None, - Field( - description="Indicates whether or not the analysis is using an interim time frame." - ), - ] = None - periodic: Annotated[ - bool | None, - Field( - description="Indicates whether or not the analysis is using a periodic time frame." - ), - ] = None - analysis_periods: Annotated[ - list[ApiAnalysisPeriodCreate] | None, - Field( - alias="analysisPeriods", - description="Details about the specific analysis periods under audit.", - ), - ] = None - currency_code: Annotated[ - str | None, - Field( - alias="currencyCode", - description="The currency to be displayed across the analysis results.", - ), - ] = None - reference_id: Annotated[ - str | None, - Field( - alias="referenceId", - description="A reference ID to identify the analysis.", - max_length=256, - min_length=0, - ), - ] = None - - -class ApiEngagementRollForwardRequest(BaseItem): - analysis_id: Annotated[ - str | None, - Field( - alias="analysisId", description="Identifies the analysis to roll forward." - ), - ] = None - target_engagement_id: Annotated[ - str | None, - Field( - alias="targetEngagementId", - description="Identifies the engagement that the analysis will be rolled forward into.", - ), - ] = None - interim: Annotated[ - bool | None, - Field( - description="When `true`, the new analysis period will use an interim time frame." - ), - ] = None - - -class RunAdminReportRequestCreate(BaseItem): - start: Annotated[ - AwareDatetime | None, - Field(description="The first date in the reporting timeframe."), - ] = None - end: Annotated[ - AwareDatetime | None, - Field(description="The last date in the reporting timeframe."), - ] = None - - -class RunAnalysisOverviewReportRequestCreate(BaseItem): - include_amount_value: Annotated[ - bool | None, - Field( - alias="includeAmountValue", - description="Indicates whether to include amount value. Defaults to `false` if not specified.", - ), - ] = None - include_entries_percentage_value: Annotated[ - bool | None, - Field( - alias="includeEntriesPercentageValue", - description="Indicates whether to include entries percentage value. Defaults to `false` if not specified.", - ), - ] = None - include_amount_percentage_value: Annotated[ - bool | None, - Field( - alias="includeAmountPercentageValue", - description="Indicates whether to include amount percentage value. Defaults to `false` if not specified.", - ), - ] = None - include_control_point_and_weights: Annotated[ - bool | None, - Field( - alias="includeControlPointAndWeights", - description="Indicates whether to include control point and weights. Defaults to `false` if not specified.", - ), - ] = None - user_time_zone: Annotated[ - str | None, - Field( - alias="userTimeZone", - description="Time zone to use for certain times in the export. Defaults to `UTC` if not specified or if the provided timezone string value is unable to be determined.", - ), - ] = None - csv_export: Annotated[ - bool | None, - Field( - alias="csvExport", - description="Indicates to export as a CSV file format instead of Excel. Defaults to `true` if not specified.", - ), - ] = None - analysis_ids: Annotated[ - list[str] | None, - Field( - alias="analysisIds", - description="The analysis ids to include. If not provided or empty, all will be included.", - ), - ] = None - risk_score_ids: Annotated[ - list[str] | None, - Field( - alias="riskScoreIds", - description="The risk score ids being filtered. If not provided, all will be included.", - ), - ] = None - - -class RunActivityReportRequestCreateCategory(str, Enum): - ACCOUNT_GROUPING = "ACCOUNT_GROUPING" - ACCOUNT_MAPPING = "ACCOUNT_MAPPING" - ADMIN_REPORT = "ADMIN_REPORT" - ANALYSIS = "ANALYSIS" - ANALYSIS_SETTINGS = "ANALYSIS_SETTINGS" - ANALYSIS_TYPE = "ANALYSIS_TYPE" - API_TOKEN = "API_TOKEN" - AUDIT_ANNOTATION = "AUDIT_ANNOTATION" - COLLECTION_ASSIGNMENT = "COLLECTION_ASSIGNMENT" - CUSTOM_CONTROL_POINT = "CUSTOM_CONTROL_POINT" - ENGAGEMENT = "ENGAGEMENT" - ENGAGEMENT_ACCOUNT_GROUP = "ENGAGEMENT_ACCOUNT_GROUP" - FILE_LOCKER = "FILE_LOCKER" - FILE_MANAGER = "FILE_MANAGER" - FILTER = "FILTER" - GDPDU = "GDPDU" - INGESTION = "INGESTION" - INTEGRATIONS = "INTEGRATIONS" - LIBRARY = "LIBRARY" - MIGRATION = "MIGRATION" - ORGANIZATION = "ORGANIZATION" - POPULATION = "POPULATION" - QUERY = "QUERY" - RATIO = "RATIO" - REPORT_BUILDER = "REPORT_BUILDER" - REPORT = "REPORT" - RESULTS_EXPORT = "RESULTS_EXPORT" - RISK_RANGES = "RISK_RANGES" - RISK_SEGMENTATION_DASHBOARD = "RISK_SEGMENTATION_DASHBOARD" - SCIM_API = "SCIM_API" - SUPPORT_ACCESS = "SUPPORT_ACCESS" - TASK = "TASK" - USER = "USER" - WORKFLOW = "WORKFLOW" - PAGE_VIEW = "PAGE_VIEW" - ANALYSIS_SOURCE = "ANALYSIS_SOURCE" - WEBHOOK = "WEBHOOK" - PROCEDURE_INSTANCE = "PROCEDURE_INSTANCE" - CLOUD_ELEMENTS = "CLOUD_ELEMENTS" - ENGAGEMENT_ACCOUNT_GROUPING_NODE = "ENGAGEMENT_ACCOUNT_GROUPING_NODE" - - -class RunActivityReportRequestCreate(BaseItem): - start: Annotated[ - AwareDatetime | None, - Field(description="The first date in the reporting timeframe."), - ] = None - end: Annotated[ - AwareDatetime | None, - Field(description="The last date in the reporting timeframe."), - ] = None - user_ids: Annotated[ - list[str] | None, - Field( - alias="userIds", - description="The users to include in the report. If empty, all users will be included.", - ), - ] = None - categories: Annotated[ - list[RunActivityReportRequestCreateCategory] | None, - Field( - description="The categories to include in the report. If empty, all categories will be included." - ), - ] = None - only_completed_analyses: Annotated[ - bool | None, - Field( - alias="onlyCompletedAnalyses", - description="Restrict entries to analysis complete events.", - ), - ] = None - - -class ApiVerifyAccountsRequest(BaseItem): - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", - description="The unique identifier of the engagement to verify accounts for.", - ), - ] = None - - -class ApiExportAccountsRequest(BaseItem): - engagement_id: Annotated[str | None, Field(alias="engagementId")] = None - - -class ApiDeleteUnusedAccountMappingsRequest(BaseItem): - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", - description="The unique identifier of the engagement to delete unused account mappings for.", - ), - ] = None - - -class ApiImportAccountGroupingParamsUpdate(BaseItem): - chunked_file_id: Annotated[ - str | None, - Field( - alias="chunkedFileId", - description="The unique identifier of the chunked file that contains the account grouping data.", - ), - ] = None - - -class ApiAccountGroupingPublishStatus(str, Enum): - """The current status of the account grouping.""" - - DRAFT = "DRAFT" - UNPUBLISHED_CHANGES = "UNPUBLISHED_CHANGES" - PUBLISHED = "PUBLISHED" - - -class ApiAccountGrouping(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="The data integrity version, to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfo | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfo | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - name: Annotated[ - dict[str, str] | None, Field(description="The name of the account grouping.") - ] = None - code_display_name: Annotated[ - dict[str, str] | None, - Field( - alias="codeDisplayName", - description="The name of the account code hierarchy system used within the dataset.", - ), - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The delimiter character used to separate each category level in an account grouping code." - ), - ] = None - mac: Annotated[ - bool | None, - Field( - description="When `true`, the account grouping is based on the MAC code system." - ), - ] = None - system: Annotated[ - bool | None, - Field( - description="When `true`, the account grouping is a system account grouping and cannot be modified." - ), - ] = None - archived: Annotated[ - bool | None, Field(description="When `true`, the account grouping is archived.") - ] = None - published_date: Annotated[ - AwareDatetime | None, - Field( - alias="publishedDate", - description="The date that the account grouping was published.", - ), - ] = None - publish_status: Annotated[ - ApiAccountGroupingPublishStatus | None, - Field( - alias="publishStatus", - description="The current status of the account grouping.", - ), - ] = None - - -class ApiImportAccountGroupingParamsCreateType(str, Enum): - """The type of account grouping file being imported.""" - - MINDBRIDGE_TEMPLATE = "MINDBRIDGE_TEMPLATE" - CCH_GROUP_TRIAL_BALANCE = "CCH_GROUP_TRIAL_BALANCE" - - -class ApiImportAccountGroupingParamsCreate(BaseItem): - name: Annotated[ - str | None, Field(description="The name of the new account grouping.") - ] = None - type: Annotated[ - ApiImportAccountGroupingParamsCreateType | None, - Field(description="The type of account grouping file being imported."), - ] = None - chunked_file_id: Annotated[ - str | None, - Field( - alias="chunkedFileId", - description="The unique identifier of the chunked file that contains the account grouping data.", - ), - ] = None - - -class ApiBasicMetricsState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiColumnDateTimeFormat(BaseItem): - selected: Annotated[ - bool | None, - Field( - description="If true, this format was selected during column mapping as the correct format for this column." - ), - ] = None - custom_format_pattern: Annotated[ - str | None, - Field( - alias="customFormatPattern", description="The pattern of this date format." - ), - ] = None - sample_raw_values: Annotated[ - list[str] | None, - Field(alias="sampleRawValues", description="A list of values in this column."), - ] = None - sample_converted_values: Annotated[ - list[AwareDatetime] | None, - Field( - alias="sampleConvertedValues", - description="A list of date time values derived by parsing the text using this format.", - ), - ] = None - - -class ApiCountMetricsState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiCurrencyFormat(BaseItem): - decimal_character: Annotated[ - str | None, - Field( - alias="decimalCharacter", - description="The character used as a decimal separator.", - ), - ] = None - non_decimal_delimiters: Annotated[ - list[str] | None, - Field( - alias="nonDecimalDelimiters", - description="Non decimal separator special characters, including currency and grouping characters.", - ), - ] = None - ambiguous_delimiters: Annotated[ - list[str] | None, - Field( - alias="ambiguousDelimiters", - description="A list of possible delimiter characters, if multiple possible candidates are available.", - ), - ] = None - example: Annotated[str | None, Field(description="An example value.")] = None - - -class ApiDataPreview(BaseItem): - row: Annotated[ - int | None, Field(description="The row number within the table.") - ] = None - column: Annotated[ - int | None, Field(description="The column index within the row.") - ] = None - data: Annotated[ - str | None, Field(description="The value within the target row.") - ] = None - - -class ApiDataTypeMetricsState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiDataTypeMetricsDetectedType(str, Enum): - TEXT = "TEXT" - NUMBER = "NUMBER" - DATE = "DATE" - UNKNOWN = "UNKNOWN" - FLOAT64 = "FLOAT64" - - -class ApiDataTypeMetricsDominantType(str, Enum): - """The type determined to be the most prevalent in this column.""" - - TEXT = "TEXT" - NUMBER = "NUMBER" - DATE = "DATE" - UNKNOWN = "UNKNOWN" - FLOAT64 = "FLOAT64" - - -class ApiDensityMetricsState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiDensityMetrics(BaseItem): - state: Annotated[ - ApiDensityMetricsState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreview] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( - None - ) - density: Annotated[ - float | None, - Field( - description="The percentage density of values against blanks, represented as decimal between 1 and 0." - ), - ] = None - blanks: Annotated[int | None, Field(description="The number of blank values.")] = ( - None - ) - - -class ApiDistinctValueMetricsState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiDistinctValueMetrics(BaseItem): - state: Annotated[ - ApiDistinctValueMetricsState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreview] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( - None - ) - - -class ApiHistogramMetricsState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiHistogramMetrics(BaseItem): - state: Annotated[ - ApiHistogramMetricsState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreview] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( - None - ) - histogram: Annotated[ - dict[str, int] | None, - Field( - description="A map of the number of columns to the number of rows with that many columns, in the case of unevenColumnsMetrics." - ), - ] = None - - -class ApiOverallDataTypeMetricsState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiOverallDataTypeMetrics(BaseItem): - state: Annotated[ - ApiOverallDataTypeMetricsState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreview] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - cell_type_counts: Annotated[ - dict[str, int] | None, - Field( - alias="cellTypeCounts", - description="A map of data types to the number of cells in the table of that data type.", - ), - ] = None - column_type_counts: Annotated[ - dict[str, int] | None, - Field( - alias="columnTypeCounts", - description="A map of data types to the number of columns in the table of that data type.", - ), - ] = None - total_records: Annotated[ - int | None, - Field(alias="totalRecords", description="The total number of values."), - ] = None - blank_records: Annotated[ - int | None, - Field(alias="blankRecords", description="The number of blank values."), - ] = None - column_count: Annotated[ - int | None, Field(alias="columnCount", description="The number of columns.") - ] = None - total_rows: Annotated[ - int | None, Field(alias="totalRows", description="The total number of rows.") - ] = None - - -class ApiSheetMetricsState(str, Enum): - """Validation state of the metric within its context.""" - - PASS = "PASS" - WARN = "WARN" - FAIL = "FAIL" - - -class ApiSheetMetrics(BaseItem): - state: Annotated[ - ApiSheetMetricsState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreview] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( - None - ) - sheet_names: Annotated[ - list[str] | None, - Field( - alias="sheetNames", - description="A list of sheet names within the underlying Excel file.", - ), - ] = None - valid_sheets: Annotated[ - list[str] | None, - Field( - alias="validSheets", - description="A list of usable sheet names within the underlying Excel file.", - ), - ] = None - - -class RangeBigDecimal(BaseItem): - min: float | None = None - max: float | None = None - - -class RangeInteger(BaseItem): - min: int | None = None - max: int | None = None - - -class RangeZonedDateTime(BaseItem): - min: AwareDatetime | None = None - max: AwareDatetime | None = None - - -class ApiEffectiveDateMetricsReadPeriodType(str, Enum): - """Indicates the time period by which the histogram has been broken down.""" - - DAY = "DAY" - WEEK = "WEEK" - MONTH = "MONTH" - - -class ApiEffectiveDateMetricsRead(BaseItem): - period_type: Annotated[ - ApiEffectiveDateMetricsReadPeriodType | None, - Field( - alias="periodType", - description="Indicates the time period by which the histogram has been broken down.", - ), - ] = None - entries_in_period: Annotated[ - int | None, - Field( - alias="entriesInPeriod", - description="The number of entries that occurred within the source period's date range.", - ), - ] = None - entries_out_of_period: Annotated[ - int | None, - Field( - alias="entriesOutOfPeriod", - description="The number of entries that occurred outside of the source period's date range.", - ), - ] = None - debits_in_period: Annotated[ - float | None, - Field( - alias="debitsInPeriod", - description="The total debit amount that occurred within the source period's date range.", - ), - ] = None - credits_in_period: Annotated[ - float | None, - Field( - alias="creditsInPeriod", - description="The total credit amount that occurred within the source period's date range.", - ), - ] = None - in_period_count_histogram: Annotated[ - dict[str, int] | None, - Field( - alias="inPeriodCountHistogram", - description="A map showing the total number of entries that occurred within each indicated date period.", - ), - ] = None - out_of_period_count_histogram: Annotated[ - dict[str, int] | None, - Field( - alias="outOfPeriodCountHistogram", - description="A map showing the total number of entries that occurred outside of each indicated date period.", - ), - ] = None - - -class ApiAnalysisSourceStatusReadStatus(str, Enum): - """The current state of the analysis source.""" - - IMPORTING = "IMPORTING" - UPLOADING = "UPLOADING" - IN_PROGRESS = "IN_PROGRESS" - COMPLETED = "COMPLETED" - CANCELLED = "CANCELLED" - FAILED = "FAILED" - - -class ApiAnalysisSourceStatusRead(BaseItem): - source_id: Annotated[ - str | None, - Field(alias="sourceId", description="Identifies the analysis source object."), - ] = None - analysis_source_type_id: Annotated[ - str | None, - Field( - alias="analysisSourceTypeId", - description="Identifies the analysis source type.", - ), - ] = None - status: Annotated[ - ApiAnalysisSourceStatusReadStatus | None, - Field(description="The current state of the analysis source."), - ] = None - period_id: Annotated[ - str | None, - Field( - alias="periodId", - description="Identifies the analysis period within the analysis.", - ), - ] = None - - -class ApiAnalysisStatusReadPreflightError(str, Enum): - IN_PROGRESS = "IN_PROGRESS" - NOT_READY = "NOT_READY" - ARCHIVED = "ARCHIVED" - REQUIRED_FILES_MISSING = "REQUIRED_FILES_MISSING" - SOURCES_NOT_READY = "SOURCES_NOT_READY" - SOURCE_ERROR = "SOURCE_ERROR" - UNVERIFIED_ACCOUNT_MAPPINGS = "UNVERIFIED_ACCOUNT_MAPPINGS" - ANALYSIS_PERIOD_OVERLAP = "ANALYSIS_PERIOD_OVERLAP" - SOURCE_WARNINGS_PRESENT = "SOURCE_WARNINGS_PRESENT" - - -class ApiAnalysisStatusReadStatus(str, Enum): - """The current state of the analysis.""" - - NOT_STARTED = "NOT_STARTED" - IMPORTING_FILE = "IMPORTING_FILE" - PREPARING_DATA = "PREPARING_DATA" - PROCESSING = "PROCESSING" - CONSOLIDATING_RESULTS = "CONSOLIDATING_RESULTS" - COMPLETED = "COMPLETED" - FAILED = "FAILED" - - -class ApiAnalysisStatusRead(BaseItem): - analysis_id: Annotated[ - str | None, - Field(alias="analysisId", description="Identifies the associated analysis."), - ] = None - analysis_type_id: Annotated[ - str | None, - Field(alias="analysisTypeId", description="Identifies the type of analysis."), - ] = None - preflight_errors: Annotated[ - list[ApiAnalysisStatusReadPreflightError] | None, - Field( - alias="preflightErrors", - description="The errors that occurred before the analysis was run.", - ), - ] = None - source_statuses: Annotated[ - list[ApiAnalysisSourceStatusRead] | None, - Field( - alias="sourceStatuses", - description="Details about the state of each analysis source.", - ), - ] = None - available_features: Annotated[ - dict[str, bool] | None, - Field( - alias="availableFeatures", - description="Details about the various analysis capabilities available in MindBridge. [Learn more](https://support.mindbridge.ai/hc/en-us/articles/360056395234)", - ), - ] = None - status: Annotated[ - ApiAnalysisStatusReadStatus | None, - Field(description="The current state of the analysis."), - ] = None - ready: Annotated[ - bool | None, - Field(description="Indicates whether or not the analysis is ready to be run."), - ] = None - mapped_account_mapping_count: Annotated[ - int | None, - Field( - alias="mappedAccountMappingCount", - description="The number of mapped accounts.", - ), - ] = None - unmapped_account_mapping_count: Annotated[ - int | None, - Field( - alias="unmappedAccountMappingCount", - description="The number of unmapped accounts.", - ), - ] = None - inferred_account_mapping_count: Annotated[ - int | None, - Field( - alias="inferredAccountMappingCount", - description="The number of inferred account mapping; this can be considered a warning on partial matches.", - ), - ] = None - re_run_ready: Annotated[ - bool | None, - Field( - alias="reRunReady", - description="Indicates whether or not the analysis is ready to be run again.", - ), - ] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm(BaseItem): - field_eq: Annotated[int | float | bool | str | None, Field(alias="$eq")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm1(BaseItem): - field_ne: Annotated[int | float | bool | str | None, Field(alias="$ne")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm2(BaseItem): - field_gt: Annotated[int | float | str | None, Field(alias="$gt")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm3(BaseItem): - field_gte: Annotated[int | float | str | None, Field(alias="$gte")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm4(BaseItem): - field_lt: Annotated[int | float | str | None, Field(alias="$lt")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm5(BaseItem): - field_lte: Annotated[int | float | str | None, Field(alias="$lte")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm6(BaseItem): - field_contains: Annotated[list[str] | None, Field(alias="$contains")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm8(BaseItem): - field_in: Annotated[list[int | float | bool | str] | None, Field(alias="$in")] = ( - None - ) - - -class MindBridgeQueryTermMindBridgeQueryTerm9(BaseItem): - field_nin: Annotated[list[int | float | bool | str] | None, Field(alias="$nin")] = ( - None - ) - - -class MindBridgeQueryTermMindBridgeQueryTerm10(BaseItem): - field_flags: Annotated[dict[str, bool] | None, Field(alias="$flags")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm11(BaseItem): - field_isubstr: Annotated[str | None, Field(alias="$isubstr")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm12(BaseItem): - field_iprefix: Annotated[str | None, Field(alias="$iprefix")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm13(BaseItem): - field_niprefix: Annotated[str | None, Field(alias="$niprefix")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm16(BaseItem): - field_keyword_prefix: Annotated[str | None, Field(alias="$keyword_prefix")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm17(BaseItem): - field_keyword_prefix_not: Annotated[ - str | None, Field(alias="$keyword_prefix_not") - ] = None - - -class JsonTableBodyJsonTableBody(BaseItem): - pass - - -JsonTableBody = RootModel[ - list[list[int | float | bool | str] | JsonTableBodyJsonTableBody] | None -] - - -class AnalysisResultWebhookPayload(BaseItem): - type: Annotated[ - AnalysisResultWebhookPayloadType | None, - Field(description="The event type that triggered the webhook."), - ] = None - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - timestamp: Annotated[ - AwareDatetime | None, - Field(description="The time that the webhook was triggered."), - ] = None - sender_id: Annotated[ - ObjectId | None, - Field( - alias="senderId", - description="The ID of the registered webhook configuration that initiated the outbound request.", - ), - ] = None - tenant_id: Annotated[ - str | None, - Field( - alias="tenantId", - description="The name of the tenant that triggered the webhook.", - ), - ] = None - user_id: Annotated[ - ObjectId | None, - Field( - alias="userId", - description="The ID of the user that initiated the event that triggered the webhook.", - ), - ] = None - data: Annotated[ - AnalysisResultWebhookData | None, - Field(description="The data associated with the webhook event."), - ] = None - - -class AnalysisSourceWebhookPayload(BaseItem): - type: Annotated[ - AnalysisSourceWebhookPayloadType | None, - Field(description="The event type that triggered the webhook."), - ] = None - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - timestamp: Annotated[ - AwareDatetime | None, - Field(description="The time that the webhook was triggered."), - ] = None - sender_id: Annotated[ - ObjectId | None, - Field( - alias="senderId", - description="The ID of the registered webhook configuration that initiated the outbound request.", - ), - ] = None - tenant_id: Annotated[ - str | None, - Field( - alias="tenantId", - description="The name of the tenant that triggered the webhook.", - ), - ] = None - user_id: Annotated[ - ObjectId | None, - Field( - alias="userId", - description="The ID of the user that initiated the event that triggered the webhook.", - ), - ] = None - data: Annotated[ - AnalysisSourceWebhookData | None, - Field(description="The data associated with the webhook event."), - ] = None - - -class EngagementSubscriptionWebhookPayload(BaseItem): - type: Annotated[ - Literal["unmapped.accounts"] | None, - Field(description="The event type that triggered the webhook."), - ] = None - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - timestamp: Annotated[ - AwareDatetime | None, - Field(description="The time that the webhook was triggered."), - ] = None - sender_id: Annotated[ - ObjectId | None, - Field( - alias="senderId", - description="The ID of the registered webhook configuration that initiated the outbound request.", - ), - ] = None - tenant_id: Annotated[ - str | None, - Field( - alias="tenantId", - description="The name of the tenant that triggered the webhook.", - ), - ] = None - user_id: Annotated[ - ObjectId | None, - Field( - alias="userId", - description="The ID of the user that initiated the event that triggered the webhook.", - ), - ] = None - data: Annotated[ - EngagementSubscriptionWebhookData | None, - Field(description="The data associated with the webhook event."), - ] = None - - -class EngagementWebhookPayload(BaseItem): - type: Annotated[ - EngagementWebhookPayloadType | None, - Field(description="The event type that triggered the webhook."), - ] = None - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - timestamp: Annotated[ - AwareDatetime | None, - Field(description="The time that the webhook was triggered."), - ] = None - sender_id: Annotated[ - ObjectId | None, - Field( - alias="senderId", - description="The ID of the registered webhook configuration that initiated the outbound request.", - ), - ] = None - tenant_id: Annotated[ - str | None, - Field( - alias="tenantId", - description="The name of the tenant that triggered the webhook.", - ), - ] = None - user_id: Annotated[ - ObjectId | None, - Field( - alias="userId", - description="The ID of the user that initiated the event that triggered the webhook.", - ), - ] = None - data: Annotated[ - EngagementWebhookData | None, - Field(description="The data associated with the webhook event."), - ] = None - - -class FileManagerWebhookPayload(BaseItem): - type: Annotated[ - FileManagerWebhookPayloadType | None, - Field(description="The event type that triggered the webhook."), - ] = None - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - timestamp: Annotated[ - AwareDatetime | None, - Field(description="The time that the webhook was triggered."), - ] = None - sender_id: Annotated[ - ObjectId | None, - Field( - alias="senderId", - description="The ID of the registered webhook configuration that initiated the outbound request.", - ), - ] = None - tenant_id: Annotated[ - str | None, - Field( - alias="tenantId", - description="The name of the tenant that triggered the webhook.", - ), - ] = None - user_id: Annotated[ - ObjectId | None, - Field( - alias="userId", - description="The ID of the user that initiated the event that triggered the webhook.", - ), - ] = None - data: Annotated[ - FileManagerWebhookData | None, - Field(description="The data associated with the webhook event."), - ] = None - - -class UserWebhookPayload(BaseItem): - type: Annotated[ - Literal["user.deleted"] | None, - Field(description="The event type that triggered the webhook."), - ] = None - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - timestamp: Annotated[ - AwareDatetime | None, - Field(description="The time that the webhook was triggered."), - ] = None - sender_id: Annotated[ - ObjectId | None, - Field( - alias="senderId", - description="The ID of the registered webhook configuration that initiated the outbound request.", - ), - ] = None - tenant_id: Annotated[ - str | None, - Field( - alias="tenantId", - description="The name of the tenant that triggered the webhook.", - ), - ] = None - user_id: Annotated[ - ObjectId | None, - Field( - alias="userId", - description="The ID of the user that initiated the event that triggered the webhook.", - ), - ] = None - data: Annotated[ - UserWebhookData | None, - Field(description="The data associated with the webhook event."), - ] = None - - -class UserRoleWebhookPayload(BaseItem): - type: Annotated[ - UserRoleWebhookPayloadType | None, - Field(description="The event type that triggered the webhook."), - ] = None - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - timestamp: Annotated[ - AwareDatetime | None, - Field(description="The time that the webhook was triggered."), - ] = None - sender_id: Annotated[ - ObjectId | None, - Field( - alias="senderId", - description="The ID of the registered webhook configuration that initiated the outbound request.", - ), - ] = None - tenant_id: Annotated[ - str | None, - Field( - alias="tenantId", - description="The name of the tenant that triggered the webhook.", - ), - ] = None - user_id: Annotated[ - ObjectId | None, - Field( - alias="userId", - description="The ID of the user that initiated the event that triggered the webhook.", - ), - ] = None - data: Annotated[ - UserRoleWebhookData | None, - Field(description="The data associated with the webhook event."), - ] = None - - -class UserLoginWebhookPayload(BaseItem): - type: Annotated[ - Literal["user.login"] | None, - Field(description="The event type that triggered the webhook."), - ] = None - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - timestamp: Annotated[ - AwareDatetime | None, - Field(description="The time that the webhook was triggered."), - ] = None - sender_id: Annotated[ - ObjectId | None, - Field( - alias="senderId", - description="The ID of the registered webhook configuration that initiated the outbound request.", - ), - ] = None - tenant_id: Annotated[ - str | None, - Field( - alias="tenantId", - description="The name of the tenant that triggered the webhook.", - ), - ] = None - user_id: Annotated[ - ObjectId | None, - Field( - alias="userId", - description="The ID of the user that initiated the event that triggered the webhook.", - ), - ] = None - data: Annotated[ - UserLoginWebhookData | None, - Field(description="The data associated with the webhook event."), - ] = None - - -class UserStatusWebhookPayload(BaseItem): - type: Annotated[ - Literal["user.status"] | None, - Field(description="The event type that triggered the webhook."), - ] = None - event_id: Annotated[ - ObjectId | None, - Field( - alias="eventId", - description="The ID of the event that triggered the outbound request.", - ), - ] = None - timestamp: Annotated[ - AwareDatetime | None, - Field(description="The time that the webhook was triggered."), - ] = None - sender_id: Annotated[ - ObjectId | None, - Field( - alias="senderId", - description="The ID of the registered webhook configuration that initiated the outbound request.", - ), - ] = None - tenant_id: Annotated[ - str | None, - Field( - alias="tenantId", - description="The name of the tenant that triggered the webhook.", - ), - ] = None - user_id: Annotated[ - ObjectId | None, - Field( - alias="userId", - description="The ID of the user that initiated the event that triggered the webhook.", - ), - ] = None - data: Annotated[ - UserStatusWebhookData | None, - Field(description="The data associated with the webhook event."), - ] = None - - -class ApiTaskRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - analysis_result_id: Annotated[str | None, Field(alias="analysisResultId")] = None - analysis_id: Annotated[ - str | None, - Field(alias="analysisId", description="Identifies the associated analysis."), - ] = None - analysis_type_id: Annotated[ - str | None, - Field( - alias="analysisTypeId", - description="Identifies the associated analysis type.", - ), - ] = None - transaction: Annotated[ - str | None, Field(description="The name of the associated transaction.") - ] = None - name: Annotated[ - str | None, - Field( - description="The task's name. Generated based on on the related entry or transaction." - ), - ] = None - row_id: Annotated[ - int | None, Field(alias="rowId", description="Identifies the associated entry.") - ] = None - transaction_id: Annotated[ - int | None, - Field( - alias="transactionId", description="Identifies the associated transaction." - ), - ] = None - status: Annotated[ - ApiTaskReadStatus | None, - Field(description="The current state of the task.", title="Task Status"), - ] = None - assigned_id: Annotated[ - str | None, - Field( - alias="assignedId", description="Identifies the user assigned to this task." - ), - ] = None - description: Annotated[ - str | None, Field(description="A description of the task.") - ] = None - comments: Annotated[ - list[ApiTaskCommentRead] | None, - Field( - description="A list of all the comments that have been made on this task." - ), - ] = None - sample: Annotated[ - str | None, Field(description="Which sample this task is a part of.") - ] = None - audit_areas: Annotated[ - list[str] | None, - Field( - alias="auditAreas", - description="Which audit areas this task is associated with.", - ), - ] = None - assertions: Annotated[ - list[str] | None, - Field(description="Which assertions this task is associated with."), - ] = None - type: Annotated[ - ApiTaskReadType | None, - Field( - description="The type of entry this task is associated with.", - title="Task Type", - ), - ] = None - sample_type: Annotated[ - ApiTaskReadSampleType | None, - Field( - alias="sampleType", - description="The sampling method used to create this task.", - title="Sample Type", - ), - ] = None - entry_type: Annotated[ - str | None, - Field( - alias="entryType", - description="For AP and AR analyses this is the entry type for the associated entry.", - ), - ] = None - vendor_name: Annotated[ - str | None, - Field( - alias="vendorName", - description="For AP analyses this is the vendor name for the associated entry.", - ), - ] = None - customer_name: Annotated[ - str | None, - Field( - alias="customerName", - description="For AR analyses this is the customer name for the associated entry.", - ), - ] = None - invoice_ref: Annotated[ - str | None, - Field( - alias="invoiceRef", - description="For AP and AR analyses this is the Invoice ref value for the associated entry.", - ), - ] = None - credit_value: Annotated[ - int | None, - Field( - alias="creditValue", - deprecated=True, - description="The credit value of the associated transaction or entry, formatted as MONEY_100.", - ), - ] = None - debit_value: Annotated[ - int | None, - Field( - alias="debitValue", - deprecated=True, - description="The debit value of the associated transaction or entry, formatted as MONEY_100.", - ), - ] = None - risk_scores: Annotated[ - dict[str, int] | None, - Field( - alias="riskScores", - description="A map of ensemble names or IDs mapped to their risk score value. The value is a PERCENTAGE_FIXED_POINT type.", - ), - ] = None - filter_statement: Annotated[ - str | None, - Field( - alias="filterStatement", - description="The filter statement that was applied when creating this task via a bulk task creation.", - ), - ] = None - task_approval_status: Annotated[ - ApiTaskReadTaskApprovalStatus | None, - Field(alias="taskApprovalStatus", title="Task Approval Status"), - ] = None - due_date: Annotated[date | None, Field(alias="dueDate")] = None - approver_id: Annotated[str | None, Field(alias="approverId")] = None - tags: list[str] | None = None - amounts: dict[str, MoneyRead] | None = None - - -class ApiFilterAccountConditionApiFilterAccountCondition13(BaseItem): - type: Annotated[ - Literal["ACCOUNT_NODE_ARRAY"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "ACCOUNT_NODE_ARRAY" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - account_selections: Annotated[ - list[ApiFilterAccountSelection] | None, Field(alias="accountSelections") - ] = None - - -class ApiFilterControlPointConditionApiFilterControlPointCondition13(BaseItem): - type: Annotated[ - Literal["CONTROL_POINT"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "CONTROL_POINT" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel | None, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] = None - control_points: Annotated[ - list[ApiFilterControlPointSelection] | None, - Field(alias="controlPoints", description="A list of control point selections."), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13(BaseItem): - type: Annotated[ - Literal["TYPEAHEAD_ENTRY"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "TYPEAHEAD_ENTRY" - field: str | None = None - field_label: Annotated[str | None, Field(alias="fieldLabel")] = None - negated: bool | None = None - full_condition_description: Annotated[ - str | None, Field(alias="fullConditionDescription") - ] = None - values: Annotated[ - list[ApiTypeaheadEntry] | None, - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] = None - - -class ApiLibraryRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - name: Annotated[ - str | None, - Field( - description="The current name of the library.", max_length=80, min_length=0 - ), - ] = None - based_on_library_id: Annotated[ - str | None, - Field( - alias="basedOnLibraryId", - description="Identifies the library that the new library is based on. This may be a user-created library or a MindBridge system library.", - ), - ] = None - original_system_library_id: Annotated[ - str | None, - Field( - alias="originalSystemLibraryId", - description="Identifies the original MindBridge-supplied library.", - ), - ] = None - warnings_dismissed: Annotated[ - bool | None, - Field( - alias="warningsDismissed", - description="When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI.", - ), - ] = None - conversion_warnings: Annotated[ - list[ProblemRead] | None, - Field( - alias="conversionWarnings", - description="A list of accounts that failed to convert the selected base library's setting to the selected account grouping.", - ), - ] = None - account_grouping_id: Annotated[ - str | None, - Field( - alias="accountGroupingId", - description="Identifies the account grouping used.", - ), - ] = None - analysis_type_ids: Annotated[ - list[str] | None, - Field( - alias="analysisTypeIds", - description="Identifies the analysis types used in the library.", - ), - ] = None - default_delimiter: Annotated[ - str | None, - Field( - alias="defaultDelimiter", - description="Identifies the default delimiter used in imported CSV files.", - ), - ] = None - control_point_selection_permission: Annotated[ - bool | None, - Field( - alias="controlPointSelectionPermission", - description="When set to `true`, control points can be added or removed within each risk score.", - ), - ] = None - control_point_weight_permission: Annotated[ - bool | None, - Field( - alias="controlPointWeightPermission", - description="When set to `true`, the weight of each control point can be adjusted within each risk score.", - ), - ] = None - control_point_settings_permission: Annotated[ - bool | None, - Field( - alias="controlPointSettingsPermission", - description="When set to `true`, individual control point settings can be adjusted within each risk score.", - ), - ] = None - risk_score_and_groups_selection_permission: Annotated[ - bool | None, - Field( - alias="riskScoreAndGroupsSelectionPermission", - description="When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited.", - ), - ] = None - risk_range_edit_permission: Annotated[ - bool | None, Field(alias="riskRangeEditPermission") - ] = None - risk_score_display: Annotated[ - ApiLibraryReadRiskScoreDisplay | None, - Field( - alias="riskScoreDisplay", - description="Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.", - ), - ] = None - system: Annotated[ - bool | None, - Field( - description="Indicates whether or not the library is a MindBridge system library." - ), - ] = None - archived: Annotated[ - bool | None, - Field( - description="Indicates whether or not the library is archived. Archived libraries cannot be selected when creating an engagement." - ), - ] = None - - -class ApiFileManagerDirectoryUpdate(ApiFileManagerEntityUpdate): - name: Annotated[str | None, Field(description="The name of the directory.")] = None - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiFileManagerDirectoryRead(ApiFileManagerEntityRead): - name: Annotated[str | None, Field(description="The name of the directory.")] = None - engagement_id: Annotated[ - str, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiAnalysisConfigUpdate(BaseItem): - risk_groups: Annotated[ - list[ApiRiskGroupUpdate] | None, - Field( - alias="riskGroups", - description="The list of risk groups associated with this analysis config.", - ), - ] = None - - -class ApiAnalysisTypeConfigurationUpdate(BaseItem): - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - system: bool | None = None - configuration: Annotated[ - ApiAnalysisConfigUpdate | None, - Field(description="The configuration details for this analysis type."), - ] = None - - -class ApiAnalysisConfigRead(BaseItem): - risk_groups: Annotated[ - list[ApiRiskGroupRead] | None, - Field( - alias="riskGroups", - description="The list of risk groups associated with this analysis config.", - ), - ] = None - - -class ApiAnalysisTypeConfigurationRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - system: bool | None = None - library_id: Annotated[ - str | None, - Field( - alias="libraryId", - description="Identifies the library associated with this configuration.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - analysis_id: Annotated[ - str | None, - Field( - alias="analysisId", - description="Identifies the analysis associated with this configuration.", - ), - ] = None - analysis_type_id: Annotated[ - str | None, - Field(alias="analysisTypeId", description="Identifies the type of analysis."), - ] = None - configuration: Annotated[ - ApiAnalysisConfigRead | None, - Field(description="The configuration details for this analysis type."), - ] = None - control_point_bundle_version: Annotated[ - str | None, - Field( - alias="controlPointBundleVersion", - description="The version of the control point bundle used in this configuration.", - ), - ] = None - template: Annotated[ - bool | None, - Field(description="Indicates whether this configuration is a template."), - ] = None - - -class ApiDuplicateVirtualColumnUpdate(ApiVirtualColumnUpdate): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", description="The position of the duplicated column." - ), - ] = None - name: Annotated[str, Field(description="The name of the virtual column.")] - type: Annotated[ - ApiVirtualColumnUpdateType, Field(description="The type of virtual column.") - ] - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiJoinVirtualColumnUpdate(ApiVirtualColumnUpdate): - column_indices: Annotated[ - list[int] | None, - Field(alias="columnIndices", description="The position of the joined column."), - ] = None - delimiter: Annotated[ - str | None, Field(description="The character(s) used to separate values.") - ] = None - name: Annotated[str, Field(description="The name of the virtual column.")] - type: Annotated[ - ApiVirtualColumnUpdateType, Field(description="The type of virtual column.") - ] - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiProposedDuplicateVirtualColumnUpdate(ApiProposedVirtualColumnUpdate): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", - description="The position of the column to be duplicated.", - ), - ] = None - - -class ApiProposedJoinVirtualColumnUpdate(ApiProposedVirtualColumnUpdate): - column_indices: Annotated[ - list[int] | None, - Field( - alias="columnIndices", - description="The positions of the columns to be joined.", - ), - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The character(s) that should be inserted to separate values." - ), - ] = None - - -class ApiProposedSplitByDelimiterVirtualColumnUpdate(ApiProposedVirtualColumnUpdate): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", description="The position of the column to be split." - ), - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The character(s) that should be used to separate the string into parts." - ), - ] = None - split_index: Annotated[ - int | None, - Field( - alias="splitIndex", - description="The position of the part to be used as a virtual column.", - ), - ] = None - - -class ApiProposedSplitByPositionVirtualColumnUpdate(ApiProposedVirtualColumnUpdate): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", description="The position of the column to be split." - ), - ] = None - start_position: Annotated[ - int | None, - Field( - alias="startPosition", - description="The starting position of the substring to be used as the new column. **Inclusive**.", - ), - ] = None - end_position: Annotated[ - int | None, - Field( - alias="endPosition", - description="The ending position of the substring to be used as the new column. **Exclusive**.", - ), - ] = None - - -class ApiSplitByDelimiterVirtualColumnUpdate(ApiVirtualColumnUpdate): - column_index: Annotated[ - int | None, - Field(alias="columnIndex", description="The position of the split column."), - ] = None - delimiter: Annotated[ - str | None, - Field(description="The character(s) used to separate the string into parts."), - ] = None - split_index: Annotated[ - int | None, - Field( - alias="splitIndex", - description="The position of the part used as a virtual column.", - ), - ] = None - name: Annotated[str, Field(description="The name of the virtual column.")] - type: Annotated[ - ApiVirtualColumnUpdateType, Field(description="The type of virtual column.") - ] - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiSplitByPositionVirtualColumnUpdate(ApiVirtualColumnUpdate): - column_index: Annotated[ - int | None, - Field(alias="columnIndex", description="The position of the split column."), - ] = None - start_position: Annotated[ - int | None, - Field( - alias="startPosition", - description="The starting position of the substring in the new column. **Inclusive**.", - ), - ] = None - end_position: Annotated[ - int | None, - Field( - alias="endPosition", - description="The ending position of the substring in the new column. **Exclusive**.", - ), - ] = None - name: Annotated[str, Field(description="The name of the virtual column.")] - type: Annotated[ - ApiVirtualColumnUpdateType, Field(description="The type of virtual column.") - ] - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiPageableRead(BaseItem): - page_number: Annotated[ - int | None, - Field( - alias="pageNumber", deprecated=True, description="The current page number." - ), - ] = None - page_size: Annotated[ - int | None, - Field( - alias="pageSize", - deprecated=True, - description="The number of requested elements on a page.", - ), - ] = None - offset: Annotated[ - int | None, - Field( - deprecated=True, - description="Indicates by how many pages the first page is offset.", - ), - ] = None - sort: Annotated[ - SortnullRead | None, - Field(deprecated=True, description="Indicates how the data will be sorted."), - ] = None - - -class ApiPageApiWebhookEventLogRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiWebhookEventLogRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiUserRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiUserRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiTransactionIdPreviewIndicatorRead(BaseItem): - rating: Annotated[ - ApiTransactionIdPreviewIndicatorReadRating | None, - Field(description="The quality of the indicator as rated by MindBridge."), - ] = None - value: Annotated[ - Any | None, Field(description="A value for this specific indicator.") - ] = None - data: Annotated[ - list[ApiTransactionIdPreviewRowRead] | None, - Field(description="The set of transactions related to a specific indicator."), - ] = None - - -class ApiTransactionIdPreviewRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - engagement_id: Annotated[ - str | None, Field(alias="engagementId", deprecated=True) - ] = None - analysis_id: Annotated[str | None, Field(alias="analysisId", deprecated=True)] = ( - None - ) - analysis_source_id: Annotated[ - str | None, - Field( - alias="analysisSourceId", - description="The unique identifier of the associated analysis source.", - ), - ] = None - column_selection: Annotated[ - list[int] | None, - Field( - alias="columnSelection", - description="The list of columns used to generate the transaction ID.", - ), - ] = None - type: Annotated[ - ApiTransactionIdPreviewReadType | None, - Field(description="The type used when selecting a transaction ID."), - ] = None - smart_splitter: Annotated[ - bool | None, - Field( - alias="smartSplitter", - description="Indicates whether or not the Smart Splitter was run when selecting a transaction ID.", - ), - ] = None - overall_rating: Annotated[ - ApiTransactionIdPreviewReadOverallRating | None, - Field( - alias="overallRating", - description="The quality of the transaction ID as rated by MindBridge.", - ), - ] = None - indicators: Annotated[ - dict[str, ApiTransactionIdPreviewIndicatorRead] | None, - Field( - description="The data integrity checks used when selecting a transaction ID." - ), - ] = None - entry_previews: Annotated[ - list[ApiTransactionIdPreviewRowRead] | None, - Field( - alias="entryPreviews", - description="Details about the transactions generated by this transaction ID selection.", - ), - ] = None - - -class ApiPageApiTaskRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiTaskRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiTaskHistoryRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiTaskHistoryRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiRiskRangesRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiRiskRangesRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiReportingPeriodConfigurationRequestCreate(BaseItem): - monthly_reporting_periods: Annotated[ - list[ApiMonthlyReportingPeriodCreate] | None, - Field(alias="monthlyReportingPeriods"), - ] = None - weekly_reporting_periods: Annotated[ - list[ApiWeeklyReportingPeriodCreate] | None, - Field(alias="weeklyReportingPeriods"), - ] = None - - -class ApiReportingPeriodConfigurationRead(BaseItem): - id: str | None = None - version: int | None = None - creation_date: Annotated[AwareDatetime | None, Field(alias="creationDate")] = None - last_modified_date: Annotated[ - AwareDatetime | None, Field(alias="lastModifiedDate") - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, Field(alias="createdUserInfo") - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, Field(alias="lastModifiedUserInfo") - ] = None - monthly_reporting_periods: Annotated[ - list[ApiMonthlyReportingPeriodRead] | None, - Field( - alias="monthlyReportingPeriods", - description="List of monthly reporting periods.", - ), - ] = None - weekly_reporting_periods: Annotated[ - list[ApiWeeklyReportingPeriodRead] | None, - Field( - alias="weeklyReportingPeriods", - description="List of weekly reporting periods.", - ), - ] = None - status: ApiReportingPeriodConfigurationReadStatus | None = None - - -class ApiPageApiReportingPeriodConfigurationRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiReportingPeriodConfigurationRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiOrganizationRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiOrganizationRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiLibraryRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiLibraryRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiFileExportRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiFileExportRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiFileMergeRequestCreate(BaseItem): - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - parent_file_manager_entity_id: Annotated[ - str | None, - Field( - alias="parentFileManagerEntityId", - description="Identifies the parent directory. If NULL, the directory is positioned at the root level.", - ), - ] = None - output_file_name: Annotated[ - str | None, - Field( - alias="outputFileName", - description="The name of the file being generated in the requested merge operation.", - ), - ] = None - file_column_mappings: Annotated[ - dict[str, list[int]] | None, - Field( - alias="fileColumnMappings", - deprecated=True, - description="**Deprecated: use mappings instead.** Reference to the files and the columns to include in the merge operation.", - ), - ] = None - mappings: Annotated[ - list[FileMergeMappingCreate] | None, - Field( - description="Ordered list of file/column selections to merge (each entry has fileManagerFileId and its column indexes)." - ), - ] = None - - -class ApiPageApiFileManagerEntityRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiFileManagerDirectoryRead | ApiFileManagerFileRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiBasicMetricsRead(BaseItem): - state: Annotated[ - ApiBasicMetricsReadState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreviewRead] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - - -class ApiCountMetricsRead(BaseItem): - state: Annotated[ - ApiCountMetricsReadState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreviewRead] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( - None - ) - - -class ApiDateTypeDetailsRead(BaseItem): - range: Annotated[ - RangeZonedDateTimeRead | None, - Field( - description="A pair of values representing the earliest and latest values within this column." - ), - ] = None - ambiguous_date_time_formats: Annotated[ - list[ApiColumnDateTimeFormatRead] | None, - Field( - alias="ambiguousDateTimeFormats", - description="A list of possible date time formats, if multiple possible candidates are available.", - ), - ] = None - unambiguous_date_time_formats: Annotated[ - list[ApiColumnDateTimeFormatRead] | None, - Field( - alias="unambiguousDateTimeFormats", - description="A list of possible date time formats, if multiple possible candidates are available.", - ), - ] = None - - -class ApiNumericTypeDetailsRead(BaseItem): - range: Annotated[ - RangeBigDecimalRead | None, - Field( - description="A pair of values representing the min and max values within this column." - ), - ] = None - currency_format: Annotated[ - ApiCurrencyFormatRead | None, - Field( - alias="currencyFormat", - description="Metadata on the detected number format of this column.", - ), - ] = None - example_pair_from_currency_formatter: Annotated[ - list[str] | None, - Field( - alias="examplePairFromCurrencyFormatter", - description="A pair of values as examples in the event that two or more unambiguous number formats are detected in the same column.", - ), - ] = None - sum: Annotated[ - float | None, - Field( - description="The sum of all values in this column, up to a maximum of 10e50. Values smaller than 10e-50 will be rounded up." - ), - ] = None - capped_sum: Annotated[ - bool | None, - Field( - alias="cappedSum", - description="If `true` then the sum is larger than 10e50.", - ), - ] = None - capped_max: Annotated[ - bool | None, - Field( - alias="cappedMax", - description="If `true` then at least one individual value is larger than 10e50.", - ), - ] = None - - -class ApiTableMetadataRead(BaseItem): - cell_length_metrics: Annotated[ - ApiCountMetricsRead | None, - Field( - alias="cellLengthMetrics", - description="Metrics regarding cells that are larger than 2000 characters in the table.", - ), - ] = None - density_metrics: Annotated[ - ApiDensityMetricsRead | None, - Field( - alias="densityMetrics", description="Metrics regarding whole table density." - ), - ] = None - inconsistent_date_metrics: Annotated[ - ApiCountMetricsRead | None, - Field( - alias="inconsistentDateMetrics", - description="Metrics regarding inconsistent date formats within columns for the entire table.", - ), - ] = None - null_value_metrics: Annotated[ - ApiCountMetricsRead | None, - Field( - alias="nullValueMetrics", - description="Metrics regarding “null” values across the entire table.", - ), - ] = None - numeric_column_metrics: Annotated[ - ApiBasicMetricsRead | None, - Field( - alias="numericColumnMetrics", - description="Metrics regarding numeric columns within the table.", - ), - ] = None - overall_data_type_metrics: Annotated[ - ApiOverallDataTypeMetricsRead | None, - Field( - alias="overallDataTypeMetrics", - description="Metrics regarding detected data types across the entire table.", - ), - ] = None - scientific_notation_metrics: Annotated[ - ApiCountMetricsRead | None, - Field( - alias="scientificNotationMetrics", - description="Metrics regarding scientific notation across the entire table.", - ), - ] = None - sheet_metrics: Annotated[ - ApiSheetMetricsRead | None, - Field( - alias="sheetMetrics", - description="Metrics regarding excel sheets within the underlying excel file.", - ), - ] = None - special_character_metrics: Annotated[ - ApiCountMetricsRead | None, - Field( - alias="specialCharacterMetrics", - description="Metrics regarding special characters across the entire table.", - ), - ] = None - uneven_columns_metrics: Annotated[ - ApiHistogramMetricsRead | None, - Field( - alias="unevenColumnsMetrics", - description="Metrics regarding column length by row.", - ), - ] = None - - -class ApiTextTypeDetailsRead(BaseItem): - range: Annotated[ - RangeIntegerRead | None, - Field( - description="A pair of values representing the min and max length of text values within this column." - ), - ] = None - - -class ApiPageApiEngagementRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiEngagementRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiEngagementAccountGroupRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiEngagementAccountGroupRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiAsyncResult(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfo | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfo | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - type: Annotated[ - ApiAsyncResultType | None, - Field(description="Indicates the type of job being run."), - ] = None - status: Annotated[ - ApiAsyncResultStatus | None, - Field(description="Indicates the current state of the job."), - ] = None - entity_id: Annotated[ - str | None, - Field(alias="entityId", description="Identifies the entity used in the job."), - ] = None - entity_type: Annotated[ - ApiAsyncResultEntityType | None, - Field( - alias="entityType", - description="Identifies the entity type used in the job.", - ), - ] = None - error: Annotated[ - str | None, Field(description="The reason why the async job failed.") - ] = None - error_message: Annotated[str | None, Field(alias="errorMessage")] = None - - -class ApiPageApiEngagementAccountGroupingRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiEngagementAccountGroupingRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiDatabricksAuthorizationRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiDatabricksAuthorizationRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ActionableErrorResponse(BaseItem): - type: Annotated[ - str | None, - Field( - description="Indicates the type of error that occurred. Type values are formatted as URLs." - ), - ] = None - title: Annotated[str | None, Field(description="A description of the error.")] = ( - None - ) - problems: Annotated[ - list[Problem] | None, Field(description="The reason(s) why the error occurred.") - ] = None - instance: Annotated[ - str | None, Field(description="A unique identifier for this request.") - ] = None - status: Annotated[ - int | None, - Field(description="The HTTP status code determined by the error type."), - ] = None - origin: Annotated[ - str | None, - Field(description="The endpoint where this request originated from."), - ] = None - problem_count: Annotated[ - int | None, - Field(alias="problemCount", description="The total number of problems."), - ] = None - entity_type: Annotated[ - str | None, - Field( - alias="entityType", description="The type of entity impacted by the error." - ), - ] = None - entity_id: Annotated[ - str | None, - Field( - alias="entityId", description="Identifies the entity impacted by the error." - ), - ] = None - - -class ApiPageApiDataTableRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiDataTableRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiConnectionDataRequestCreate(BaseItem): - table_id: Annotated[ - str | None, - Field( - alias="tableId", - description="The identifier of the table to retrieve data from.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", - description="Identifies the engagement that the resulting Data Table will be associated with.", - ), - ] = None - tabular_schema_hint: Annotated[ - ApiTabularSchemaCreate | None, - Field( - alias="tabularSchemaHint", - description="Optional schema hint describing expected column types.", - ), - ] = None - filter: Annotated[ - ShieldQueryTermCreate | None, - Field(description="Optional filter to apply to the data retrieval."), - ] = None - limit: Annotated[ - int | None, Field(description="Maximum number of rows to return.") - ] = None - offset: Annotated[ - int | None, - Field(description="Number of rows to skip before returning results."), - ] = None - - -class ApiPageApiConnectionRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiConnectionRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiConnectionTestResultRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiConnectionTestResultRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiConnectionTableRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - tables_result_id: Annotated[ - str | None, - Field( - alias="tablesResultId", - description="The ID of the Connection Tables Result that discovered this table.", - ), - ] = None - connection_id: Annotated[ - str | None, - Field( - alias="connectionId", - description="The ID of the Connection this table belongs to.", - ), - ] = None - table_id: Annotated[ - str | None, - Field( - alias="tableId", - description="The identifier of the table within the external data source.", - ), - ] = None - name: Annotated[str | None, Field(description="The display name of the table.")] = ( - None - ) - schema_: Annotated[ - ApiTabularSchemaRead | None, - Field( - alias="schema", - description="The schema describing the columns of the table.", - ), - ] = None - - -class ApiPageApiConnectionTableRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiConnectionTableRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiConnectionTablesResultRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiConnectionTablesResultRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiConnectionDataSourceRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiConnectionDataSourceRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiChunkedFileRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiChunkedFileRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiAsyncResultRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiAsyncResultRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiApiTokenRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiApiTokenRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiAnalysisTypeRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - name: Annotated[str | None, Field(description="The name of the analysis type.")] = ( - None - ) - interim_name: Annotated[ - str | None, - Field( - alias="interimName", - description="The name of the analysis type when the analysis uses an interim time frame.", - ), - ] = None - description: Annotated[ - str | None, Field(description="The description of the analysis type.") - ] = None - account_mapping_required: Annotated[ - bool | None, - Field( - alias="accountMappingRequired", - description="Indicates whether or not account mapping must be performed.", - ), - ] = None - fund_supported: Annotated[ - bool | None, - Field( - alias="fundSupported", - description="Indicates whether or not the analysis supports restricted and unrestricted funds.", - ), - ] = None - interim_supported: Annotated[ - bool | None, - Field( - alias="interimSupported", - description="Indicates whether or not the analysis supports the interim time frame.", - ), - ] = None - periodic_supported: Annotated[ - bool | None, - Field( - alias="periodicSupported", - description="Indicates whether or not the analysis supports the periodic time frame.", - ), - ] = None - archived: Annotated[ - bool | None, - Field( - description="Indicates whether or not the analysis type has been archived." - ), - ] = None - max_period: Annotated[ - int | None, - Field( - alias="maxPeriod", - description="A configuration value for the max analysis period.", - ), - ] = None - source_configurations: Annotated[ - list[ApiSourceConfigurationRead] | None, - Field( - alias="sourceConfigurations", - description="A list of analysis source configurations that can be imported into the analysis, as determined by the analysis type.", - ), - ] = None - - -class ApiPageApiAnalysisTypeRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiAnalysisTypeRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiAnalysisTypeConfigurationRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiAnalysisTypeConfigurationRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiProposedDuplicateVirtualColumnCreate(ApiProposedVirtualColumnCreate): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", - description="The position of the column to be duplicated.", - ), - ] = None - - -class ApiProposedJoinVirtualColumnCreate(ApiProposedVirtualColumnCreate): - column_indices: Annotated[ - list[int] | None, - Field( - alias="columnIndices", - description="The positions of the columns to be joined.", - ), - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The character(s) that should be inserted to separate values." - ), - ] = None - - -class ApiProposedSplitByDelimiterVirtualColumnCreate(ApiProposedVirtualColumnCreate): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", description="The position of the column to be split." - ), - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The character(s) that should be used to separate the string into parts." - ), - ] = None - split_index: Annotated[ - int | None, - Field( - alias="splitIndex", - description="The position of the part to be used as a virtual column.", - ), - ] = None - - -class ApiProposedSplitByPositionVirtualColumnCreate(ApiProposedVirtualColumnCreate): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", description="The position of the column to be split." - ), - ] = None - start_position: Annotated[ - int | None, - Field( - alias="startPosition", - description="The starting position of the substring to be used as the new column. **Inclusive**.", - ), - ] = None - end_position: Annotated[ - int | None, - Field( - alias="endPosition", - description="The ending position of the substring to be used as the new column. **Exclusive**.", - ), - ] = None - - -class ApiDuplicateVirtualColumnRead(ApiVirtualColumnRead): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", description="The position of the duplicated column." - ), - ] = None - name: Annotated[str, Field(description="The name of the virtual column.")] - type: Annotated[ - ApiVirtualColumnReadType, Field(description="The type of virtual column.") - ] - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiJoinVirtualColumnRead(ApiVirtualColumnRead): - column_indices: Annotated[ - list[int] | None, - Field(alias="columnIndices", description="The position of the joined column."), - ] = None - delimiter: Annotated[ - str | None, Field(description="The character(s) used to separate values.") - ] = None - name: Annotated[str, Field(description="The name of the virtual column.")] - type: Annotated[ - ApiVirtualColumnReadType, Field(description="The type of virtual column.") - ] - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiProposedDuplicateVirtualColumnRead(ApiProposedVirtualColumnRead): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", - description="The position of the column to be duplicated.", - ), - ] = None - - -class ApiProposedJoinVirtualColumnRead(ApiProposedVirtualColumnRead): - column_indices: Annotated[ - list[int] | None, - Field( - alias="columnIndices", - description="The positions of the columns to be joined.", - ), - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The character(s) that should be inserted to separate values." - ), - ] = None - - -class ApiProposedSplitByDelimiterVirtualColumnRead(ApiProposedVirtualColumnRead): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", description="The position of the column to be split." - ), - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The character(s) that should be used to separate the string into parts." - ), - ] = None - split_index: Annotated[ - int | None, - Field( - alias="splitIndex", - description="The position of the part to be used as a virtual column.", - ), - ] = None - - -class ApiProposedSplitByPositionVirtualColumnRead(ApiProposedVirtualColumnRead): - column_index: Annotated[ - int | None, - Field( - alias="columnIndex", description="The position of the column to be split." - ), - ] = None - start_position: Annotated[ - int | None, - Field( - alias="startPosition", - description="The starting position of the substring to be used as the new column. **Inclusive**.", - ), - ] = None - end_position: Annotated[ - int | None, - Field( - alias="endPosition", - description="The ending position of the substring to be used as the new column. **Exclusive**.", - ), - ] = None - - -class ApiSplitByDelimiterVirtualColumnRead(ApiVirtualColumnRead): - column_index: Annotated[ - int | None, - Field(alias="columnIndex", description="The position of the split column."), - ] = None - delimiter: Annotated[ - str | None, - Field(description="The character(s) used to separate the string into parts."), - ] = None - split_index: Annotated[ - int | None, - Field( - alias="splitIndex", - description="The position of the part used as a virtual column.", - ), - ] = None - name: Annotated[str, Field(description="The name of the virtual column.")] - type: Annotated[ - ApiVirtualColumnReadType, Field(description="The type of virtual column.") - ] - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiSplitByPositionVirtualColumnRead(ApiVirtualColumnRead): - column_index: Annotated[ - int | None, - Field(alias="columnIndex", description="The position of the split column."), - ] = None - start_position: Annotated[ - int | None, - Field( - alias="startPosition", - description="The starting position of the substring in the new column. **Inclusive**.", - ), - ] = None - end_position: Annotated[ - int | None, - Field( - alias="endPosition", - description="The ending position of the substring in the new column. **Exclusive**.", - ), - ] = None - name: Annotated[str, Field(description="The name of the virtual column.")] - type: Annotated[ - ApiVirtualColumnReadType, Field(description="The type of virtual column.") - ] - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiAnalysisSourceTypeRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - name: Annotated[ - str | None, Field(description="The name of the analysis source type.") - ] = None - interim_name: Annotated[ - str | None, - Field( - alias="interimName", - description="The name of the analysis source type when the analysis uses an interim time frame.", - ), - ] = None - archived: Annotated[ - bool | None, - Field( - description="Indicates whether or not the analysis source type is archived." - ), - ] = None - features: Annotated[ - list[ApiAnalysisSourceTypeReadFeature] | None, - Field( - description="A list of the features used when importing data for this analysis source type." - ), - ] = None - column_definitions: Annotated[ - list[ApiColumnDefinitionRead] | None, - Field( - alias="columnDefinitions", - description="A list of MindBridge column definitions that this analysis source type supports.", - ), - ] = None - - -class ApiPageApiAnalysisSourceTypeRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiAnalysisSourceTypeRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class PageApiAnalysisResultRead(BaseItem): - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - pageable: PageablenullRead | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - first: bool | None = None - last: bool | None = None - size: int | None = None - content: list[ApiAnalysisResultRead] | None = None - number: int | None = None - sort: SortnullRead | None = None - empty: bool | None = None - - -class ApiPageApiAnalysisRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiAnalysisRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiAccountMappingRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiAccountMappingRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiAccountGroupRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiAccountGroupRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiAccountGroupingRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiAccountGroupingRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiBasicMetrics(BaseItem): - state: Annotated[ - ApiBasicMetricsState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreview] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - - -class ApiCountMetrics(BaseItem): - state: Annotated[ - ApiCountMetricsState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreview] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - count: Annotated[int | None, Field(description="The amount of a given metric.")] = ( - None - ) - - -class ApiDateTypeDetails(BaseItem): - range: Annotated[ - RangeZonedDateTime | None, - Field( - description="A pair of values representing the earliest and latest values within this column." - ), - ] = None - ambiguous_date_time_formats: Annotated[ - list[ApiColumnDateTimeFormat] | None, - Field( - alias="ambiguousDateTimeFormats", - description="A list of possible date time formats, if multiple possible candidates are available.", - ), - ] = None - unambiguous_date_time_formats: Annotated[ - list[ApiColumnDateTimeFormat] | None, - Field( - alias="unambiguousDateTimeFormats", - description="A list of possible date time formats, if multiple possible candidates are available.", - ), - ] = None - - -class ApiNumericTypeDetails(BaseItem): - range: Annotated[ - RangeBigDecimal | None, - Field( - description="A pair of values representing the min and max values within this column." - ), - ] = None - currency_format: Annotated[ - ApiCurrencyFormat | None, - Field( - alias="currencyFormat", - description="Metadata on the detected number format of this column.", - ), - ] = None - example_pair_from_currency_formatter: Annotated[ - list[str] | None, - Field( - alias="examplePairFromCurrencyFormatter", - description="A pair of values as examples in the event that two or more unambiguous number formats are detected in the same column.", - ), - ] = None - sum: Annotated[ - float | None, - Field( - description="The sum of all values in this column, up to a maximum of 10e50. Values smaller than 10e-50 will be rounded up." - ), - ] = None - capped_sum: Annotated[ - bool | None, - Field( - alias="cappedSum", - description="If `true` then the sum is larger than 10e50.", - ), - ] = None - capped_max: Annotated[ - bool | None, - Field( - alias="cappedMax", - description="If `true` then at least one individual value is larger than 10e50.", - ), - ] = None - - -class ApiTableMetadata(BaseItem): - cell_length_metrics: Annotated[ - ApiCountMetrics | None, - Field( - alias="cellLengthMetrics", - description="Metrics regarding cells that are larger than 2000 characters in the table.", - ), - ] = None - density_metrics: Annotated[ - ApiDensityMetrics | None, - Field( - alias="densityMetrics", description="Metrics regarding whole table density." - ), - ] = None - inconsistent_date_metrics: Annotated[ - ApiCountMetrics | None, - Field( - alias="inconsistentDateMetrics", - description="Metrics regarding inconsistent date formats within columns for the entire table.", - ), - ] = None - null_value_metrics: Annotated[ - ApiCountMetrics | None, - Field( - alias="nullValueMetrics", - description="Metrics regarding “null” values across the entire table.", - ), - ] = None - numeric_column_metrics: Annotated[ - ApiBasicMetrics | None, - Field( - alias="numericColumnMetrics", - description="Metrics regarding numeric columns within the table.", - ), - ] = None - overall_data_type_metrics: Annotated[ - ApiOverallDataTypeMetrics | None, - Field( - alias="overallDataTypeMetrics", - description="Metrics regarding detected data types across the entire table.", - ), - ] = None - scientific_notation_metrics: Annotated[ - ApiCountMetrics | None, - Field( - alias="scientificNotationMetrics", - description="Metrics regarding scientific notation across the entire table.", - ), - ] = None - sheet_metrics: Annotated[ - ApiSheetMetrics | None, - Field( - alias="sheetMetrics", - description="Metrics regarding excel sheets within the underlying excel file.", - ), - ] = None - special_character_metrics: Annotated[ - ApiCountMetrics | None, - Field( - alias="specialCharacterMetrics", - description="Metrics regarding special characters across the entire table.", - ), - ] = None - uneven_columns_metrics: Annotated[ - ApiHistogramMetrics | None, - Field( - alias="unevenColumnsMetrics", - description="Metrics regarding column length by row.", - ), - ] = None - - -class ApiTextTypeDetails(BaseItem): - range: Annotated[ - RangeInteger | None, - Field( - description="A pair of values representing the min and max length of text values within this column." - ), - ] = None - - -class ApiAnalysisSourceUpdate(BaseItem): - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - warnings_ignored: Annotated[ - bool | None, - Field( - alias="warningsIgnored", - description="Indicates whether or not warnings should be ignored.", - ), - ] = None - target_workflow_state: Annotated[ - ApiAnalysisSourceUpdateTargetWorkflowState | None, - Field( - alias="targetWorkflowState", - description="The state that the current workflow will advance to.", - ), - ] = None - apply_degrouper: Annotated[ - bool | None, - Field( - alias="applyDegrouper", - description="Indicates whether or not the degrouper should be applied.", - ), - ] = None - proposed_column_mappings: Annotated[ - list[ApiProposedColumnMappingUpdate] | None, - Field( - alias="proposedColumnMappings", - description="Details about the proposed column mapping.", - ), - ] = None - column_mappings: Annotated[ - list[ApiColumnMappingUpdate] | None, - Field(alias="columnMappings", description="Details about column mapping."), - ] = None - proposed_virtual_columns: Annotated[ - list[ - ApiProposedDuplicateVirtualColumnUpdate - | ApiProposedJoinVirtualColumnUpdate - | ApiProposedSplitByDelimiterVirtualColumnUpdate - | ApiProposedSplitByPositionVirtualColumnUpdate - ] - | None, - Field( - alias="proposedVirtualColumns", - description="Details about the proposed virtual columns added during the file import process.", - ), - ] = None - virtual_columns: Annotated[ - list[ - ApiDuplicateVirtualColumnUpdate - | ApiJoinVirtualColumnUpdate - | ApiSplitByDelimiterVirtualColumnUpdate - | ApiSplitByPositionVirtualColumnUpdate - ] - | None, - Field( - alias="virtualColumns", - description="Details about the virtual columns added during file ingestion. ", - ), - ] = None - proposed_ambiguous_column_resolutions: Annotated[ - list[ApiProposedAmbiguousColumnResolutionUpdate] | None, - Field( - alias="proposedAmbiguousColumnResolutions", - description="Details about the virtual columns added during file ingestion.", - ), - ] = None - ambiguous_column_resolutions: Annotated[ - list[ApiAmbiguousColumnUpdate] | None, - Field( - alias="ambiguousColumnResolutions", - description="Details about resolutions to ambiguity in a column.", - ), - ] = None - proposed_transaction_id_selection: Annotated[ - ApiTransactionIdSelectionUpdate | None, - Field( - alias="proposedTransactionIdSelection", - description="The proposed columns to include when selecting a transaction ID.", - ), - ] = None - transaction_id_selection: Annotated[ - ApiTransactionIdSelectionUpdate | None, - Field( - alias="transactionIdSelection", - description="Details about transaction ID selection.", - ), - ] = None - - -class ApiPageApiWebhookRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiWebhookRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPageApiTransactionIdPreviewRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiTransactionIdPreviewRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiDataTypeMetricsRead(BaseItem): - state: Annotated[ - ApiDataTypeMetricsReadState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreviewRead] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - non_null_value_count: Annotated[ - int | None, - Field( - alias="nonNullValueCount", - description="The number of non-null values in this column.", - ), - ] = None - type_counts: Annotated[ - dict[str, int] | None, - Field( - alias="typeCounts", - description="A map of column type to number of occurrences. A single column value can match multiple types.", - ), - ] = None - text_type_details: Annotated[ - ApiTextTypeDetailsRead | None, - Field( - alias="textTypeDetails", - description="Metrics regarding the text type values in this column.", - ), - ] = None - numeric_type_details: Annotated[ - ApiNumericTypeDetailsRead | None, - Field( - alias="numericTypeDetails", - description="Metrics regarding the number type values in this column.", - ), - ] = None - date_type_details: Annotated[ - ApiDateTypeDetailsRead | None, - Field( - alias="dateTypeDetails", - description="Metrics regarding the date type values in this column.", - ), - ] = None - detected_types: Annotated[ - list[ApiDataTypeMetricsReadDetectedType] | None, - Field( - alias="detectedTypes", - description="A list of all detected types in this column.", - ), - ] = None - dominant_type: Annotated[ - ApiDataTypeMetricsReadDominantType | None, - Field( - alias="dominantType", - description="The type determined to be the most prevalent in this column.", - ), - ] = None - - -class ApiAnalysisSourceCreate(BaseItem): - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - analysis_id: Annotated[ - str | None, - Field(alias="analysisId", description="Identifies the associated analysis."), - ] = None - analysis_period_id: Annotated[ - str | None, - Field( - alias="analysisPeriodId", - description="Identifies the analysis period within MindBridge.", - ), - ] = None - analysis_source_type_id: Annotated[ - str | None, - Field( - alias="analysisSourceTypeId", - description="Identifies the analysis source type.", - ), - ] = None - file_manager_file_id: Annotated[ - str | None, - Field( - alias="fileManagerFileId", - deprecated=True, - description="Identifies the specific file manager file within MindBridge.", - ), - ] = None - additional_data_column_field: Annotated[ - str | None, - Field( - alias="additionalDataColumnField", - description="When creating an additional data source type, this indicates which additional data column is being targeted.", - ), - ] = None - warnings_ignored: Annotated[ - bool | None, - Field( - alias="warningsIgnored", - description="Indicates whether or not warnings should be ignored.", - ), - ] = None - target_workflow_state: Annotated[ - ApiAnalysisSourceCreateTargetWorkflowState | None, - Field( - alias="targetWorkflowState", - description="The state that the current workflow will advance to.", - ), - ] = None - apply_degrouper: Annotated[ - bool | None, - Field( - alias="applyDegrouper", - description="Indicates whether or not the degrouper should be applied.", - ), - ] = None - proposed_column_mappings: Annotated[ - list[ApiProposedColumnMappingCreate] | None, - Field( - alias="proposedColumnMappings", - description="Details about the proposed column mapping.", - ), - ] = None - proposed_virtual_columns: Annotated[ - list[ - ApiProposedDuplicateVirtualColumnCreate - | ApiProposedJoinVirtualColumnCreate - | ApiProposedSplitByDelimiterVirtualColumnCreate - | ApiProposedSplitByPositionVirtualColumnCreate - ] - | None, - Field( - alias="proposedVirtualColumns", - description="Details about the proposed virtual columns added during the file import process.", - ), - ] = None - proposed_ambiguous_column_resolutions: Annotated[ - list[ApiProposedAmbiguousColumnResolutionCreate] | None, - Field( - alias="proposedAmbiguousColumnResolutions", - description="Details about the virtual columns added during file ingestion.", - ), - ] = None - proposed_transaction_id_selection: Annotated[ - ApiTransactionIdSelectionCreate | None, - Field( - alias="proposedTransactionIdSelection", - description="The proposed columns to include when selecting a transaction ID.", - ), - ] = None - - -class ApiDataTypeMetrics(BaseItem): - state: Annotated[ - ApiDataTypeMetricsState | None, - Field(description="Validation state of the metric within its context."), - ] = None - data_previews: Annotated[ - list[ApiDataPreview] | None, - Field( - alias="dataPreviews", - description="A list of values within the table relevant to the metric.", - ), - ] = None - non_null_value_count: Annotated[ - int | None, - Field( - alias="nonNullValueCount", - description="The number of non-null values in this column.", - ), - ] = None - type_counts: Annotated[ - dict[str, int] | None, - Field( - alias="typeCounts", - description="A map of column type to number of occurrences. A single column value can match multiple types.", - ), - ] = None - text_type_details: Annotated[ - ApiTextTypeDetails | None, - Field( - alias="textTypeDetails", - description="Metrics regarding the text type values in this column.", - ), - ] = None - numeric_type_details: Annotated[ - ApiNumericTypeDetails | None, - Field( - alias="numericTypeDetails", - description="Metrics regarding the number type values in this column.", - ), - ] = None - date_type_details: Annotated[ - ApiDateTypeDetails | None, - Field( - alias="dateTypeDetails", - description="Metrics regarding the date type values in this column.", - ), - ] = None - detected_types: Annotated[ - list[ApiDataTypeMetricsDetectedType] | None, - Field( - alias="detectedTypes", - description="A list of all detected types in this column.", - ), - ] = None - dominant_type: Annotated[ - ApiDataTypeMetricsDominantType | None, - Field( - alias="dominantType", - description="The type determined to be the most prevalent in this column.", - ), - ] = None - - -class ApiColumnMetadataRead(BaseItem): - cell_length_metrics: Annotated[ - ApiCountMetricsRead | None, - Field( - alias="cellLengthMetrics", - description="Metrics regarding cells that are larger than 2000 characters in the column.", - ), - ] = None - data_type_metrics: Annotated[ - ApiDataTypeMetricsRead | None, - Field( - alias="dataTypeMetrics", - description="Metrics regarding the data types of column values.", - ), - ] = None - density_metrics: Annotated[ - ApiDensityMetricsRead | None, - Field( - alias="densityMetrics", - description="Metrics regarding the density of column values.", - ), - ] = None - distinct_value_metrics: Annotated[ - ApiDistinctValueMetricsRead | None, - Field( - alias="distinctValueMetrics", - description="Metrics regarding the uniqueness of column values.", - ), - ] = None - null_value_metrics: Annotated[ - ApiCountMetricsRead | None, - Field( - alias="nullValueMetrics", - description="Metrics regarding “null” values in the column.", - ), - ] = None - scientific_notation_metrics: Annotated[ - ApiCountMetricsRead | None, - Field( - alias="scientificNotationMetrics", - description="Metrics regarding the use of scientific notation in the column.", - ), - ] = None - special_character_metrics: Annotated[ - ApiCountMetricsRead | None, - Field( - alias="specialCharacterMetrics", - description="Metrics regarding the use of special characters in the column.", - ), - ] = None - - -class ApiColumnMetadata(BaseItem): - cell_length_metrics: Annotated[ - ApiCountMetrics | None, - Field( - alias="cellLengthMetrics", - description="Metrics regarding cells that are larger than 2000 characters in the column.", - ), - ] = None - data_type_metrics: Annotated[ - ApiDataTypeMetrics | None, - Field( - alias="dataTypeMetrics", - description="Metrics regarding the data types of column values.", - ), - ] = None - density_metrics: Annotated[ - ApiDensityMetrics | None, - Field( - alias="densityMetrics", - description="Metrics regarding the density of column values.", - ), - ] = None - distinct_value_metrics: Annotated[ - ApiDistinctValueMetrics | None, - Field( - alias="distinctValueMetrics", - description="Metrics regarding the uniqueness of column values.", - ), - ] = None - null_value_metrics: Annotated[ - ApiCountMetrics | None, - Field( - alias="nullValueMetrics", - description="Metrics regarding “null” values in the column.", - ), - ] = None - scientific_notation_metrics: Annotated[ - ApiCountMetrics | None, - Field( - alias="scientificNotationMetrics", - description="Metrics regarding the use of scientific notation in the column.", - ), - ] = None - special_character_metrics: Annotated[ - ApiCountMetrics | None, - Field( - alias="specialCharacterMetrics", - description="Metrics regarding the use of special characters in the column.", - ), - ] = None - - -class ApiColumnDataRead(BaseItem): - column_name: Annotated[ - str | None, Field(alias="columnName", description="The name of the column.") - ] = None - position: Annotated[int | None, Field(description="The index of the column.")] = ( - None - ) - synthetic: Annotated[ - bool | None, - Field( - description="If `true` this column was generated, as opposed to being a part of the original data." - ), - ] = None - row_sample: Annotated[ - list[str] | None, - Field( - alias="rowSample", - description="A list of values from this column across multiple rows. All values are distinct.", - ), - ] = None - column_metadata: Annotated[ - ApiColumnMetadataRead | None, - Field(alias="columnMetadata", description="A collection of metrics."), - ] = None - - -class ApiTabularFileInfoRead(ApiFileInfoRead, ApiFileInfo): - header_row_index: Annotated[ - int | None, - Field( - alias="headerRowIndex", - description="The row number of the first detected header.", - ), - ] = None - first_line: Annotated[ - str | None, Field(alias="firstLine", description="The first line of the table.") - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The delimiter character used to separate cells. Only populated when the underlying file is a CSV file." - ), - ] = None - last_non_blank_row_index: Annotated[ - int | None, - Field( - alias="lastNonBlankRowIndex", - description="The row number of the last row that isn't blank.", - ), - ] = None - table_metadata: Annotated[ - ApiTableMetadataRead | None, - Field( - alias="tableMetadata", - description="A collection of metadata describing the table as a whole.", - ), - ] = None - column_data: Annotated[ - list[ApiColumnDataRead] | None, - Field( - alias="columnData", - description="A list of column metadata entities, describing each column.", - ), - ] = None - row_content_snippets: Annotated[ - list[list[str]] | None, - Field( - alias="rowContentSnippets", - description="A list of sample rows from the underlying file.", - ), - ] = None - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiAnalysisSourceRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", description="Identifies the associated engagement." - ), - ] = None - analysis_id: Annotated[ - str | None, - Field(alias="analysisId", description="Identifies the associated analysis."), - ] = None - analysis_period_id: Annotated[ - str | None, - Field( - alias="analysisPeriodId", - description="Identifies the analysis period within MindBridge.", - ), - ] = None - analysis_source_type_id: Annotated[ - str | None, - Field( - alias="analysisSourceTypeId", - description="Identifies the analysis source type.", - ), - ] = None - file_manager_file_id: Annotated[ - str | None, - Field( - alias="fileManagerFileId", - deprecated=True, - description="Identifies the specific file manager file within MindBridge.", - ), - ] = None - additional_data_column_field: Annotated[ - str | None, - Field( - alias="additionalDataColumnField", - description="When creating an additional data source type, this indicates which additional data column is being targeted.", - ), - ] = None - warnings_ignored: Annotated[ - bool | None, - Field( - alias="warningsIgnored", - description="Indicates whether or not warnings should be ignored.", - ), - ] = None - warnings: Annotated[ - list[ApiMessageRead] | None, - Field(description="Details about the warnings associated with the source."), - ] = None - errors: Annotated[ - list[ApiMessageRead] | None, - Field( - description="Details about the errors associated with the specific source." - ), - ] = None - workflow_state: Annotated[ - ApiAnalysisSourceReadWorkflowState | None, - Field(alias="workflowState", description="The current state of the workflow."), - ] = None - target_workflow_state: Annotated[ - ApiAnalysisSourceReadTargetWorkflowState | None, - Field( - alias="targetWorkflowState", - description="The state that the current workflow will advance to.", - ), - ] = None - detected_format: Annotated[ - ApiAnalysisSourceReadDetectedFormat | None, - Field( - alias="detectedFormat", - description="The data format that MindBridge detected.", - ), - ] = None - apply_degrouper: Annotated[ - bool | None, - Field( - alias="applyDegrouper", - description="Indicates whether or not the degrouper should be applied.", - ), - ] = None - degrouper_applied: Annotated[ - bool | None, - Field( - alias="degrouperApplied", - description="Indicates whether or not the degrouper was applied.", - ), - ] = None - file_info: Annotated[ - ApiTabularFileInfoRead | None, - Field( - alias="fileInfo", - description="Details about the file being imported into MindBridge.", - ), - ] = None - proposed_column_mappings: Annotated[ - list[ApiProposedColumnMappingRead] | None, - Field( - alias="proposedColumnMappings", - description="Details about the proposed column mapping.", - ), - ] = None - column_mappings: Annotated[ - list[ApiColumnMappingRead] | None, - Field(alias="columnMappings", description="Details about column mapping."), - ] = None - proposed_virtual_columns: Annotated[ - list[ - ApiProposedDuplicateVirtualColumnRead - | ApiProposedJoinVirtualColumnRead - | ApiProposedSplitByDelimiterVirtualColumnRead - | ApiProposedSplitByPositionVirtualColumnRead - ] - | None, - Field( - alias="proposedVirtualColumns", - description="Details about the proposed virtual columns added during the file import process.", - ), - ] = None - virtual_columns: Annotated[ - list[ - ApiDuplicateVirtualColumnRead - | ApiJoinVirtualColumnRead - | ApiSplitByDelimiterVirtualColumnRead - | ApiSplitByPositionVirtualColumnRead - ] - | None, - Field( - alias="virtualColumns", - description="Details about the virtual columns added during file ingestion. ", - ), - ] = None - proposed_ambiguous_column_resolutions: Annotated[ - list[ApiProposedAmbiguousColumnResolutionRead] | None, - Field( - alias="proposedAmbiguousColumnResolutions", - description="Details about the virtual columns added during file ingestion.", - ), - ] = None - ambiguous_column_resolutions: Annotated[ - list[ApiAmbiguousColumnRead] | None, - Field( - alias="ambiguousColumnResolutions", - description="Details about resolutions to ambiguity in a column.", - ), - ] = None - proposed_transaction_id_selection: Annotated[ - ApiTransactionIdSelectionRead | None, - Field( - alias="proposedTransactionIdSelection", - description="The proposed columns to include when selecting a transaction ID.", - ), - ] = None - transaction_id_selection: Annotated[ - ApiTransactionIdSelectionRead | None, - Field( - alias="transactionIdSelection", - description="Details about transaction ID selection.", - ), - ] = None - file_info_versions: Annotated[ - dict[str, str] | None, - Field( - alias="fileInfoVersions", - description="A map of providing a set of file info IDs by their Analysis Source File Version.", - ), - ] = None - file_manager_files: Annotated[ - dict[str, str] | None, - Field( - alias="fileManagerFiles", - description="A map of providing a set of file manager file IDs by their Analysis Source File Version.", - ), - ] = None - - -class ApiPageApiAnalysisSourceRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiAnalysisSourceRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiColumnData(BaseItem): - column_name: Annotated[ - str | None, Field(alias="columnName", description="The name of the column.") - ] = None - position: Annotated[int | None, Field(description="The index of the column.")] = ( - None - ) - synthetic: Annotated[ - bool | None, - Field( - description="If `true` this column was generated, as opposed to being a part of the original data." - ), - ] = None - row_sample: Annotated[ - list[str] | None, - Field( - alias="rowSample", - description="A list of values from this column across multiple rows. All values are distinct.", - ), - ] = None - column_metadata: Annotated[ - ApiColumnMetadata | None, - Field(alias="columnMetadata", description="A collection of metrics."), - ] = None - - -class ApiTabularFileInfo(ApiFileInfo): - header_row_index: Annotated[ - int | None, - Field( - alias="headerRowIndex", - description="The row number of the first detected header.", - ), - ] = None - first_line: Annotated[ - str | None, Field(alias="firstLine", description="The first line of the table.") - ] = None - delimiter: Annotated[ - str | None, - Field( - description="The delimiter character used to separate cells. Only populated when the underlying file is a CSV file." - ), - ] = None - last_non_blank_row_index: Annotated[ - int | None, - Field( - alias="lastNonBlankRowIndex", - description="The row number of the last row that isn't blank.", - ), - ] = None - table_metadata: Annotated[ - ApiTableMetadata | None, - Field( - alias="tableMetadata", - description="A collection of metadata describing the table as a whole.", - ), - ] = None - column_data: Annotated[ - list[ApiColumnData] | None, - Field( - alias="columnData", - description="A list of column metadata entities, describing each column.", - ), - ] = None - row_content_snippets: Annotated[ - list[list[str]] | None, - Field( - alias="rowContentSnippets", - description="A list of sample rows from the underlying file.", - ), - ] = None - version: Annotated[ - int, Field(description="Data integrity version to ensure data consistency.") - ] - - -class ApiPageApiFileInfoRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiTabularFileInfoRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition13(BaseItem): - type: Annotated[ - Literal["GROUP"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "GROUP" - operator: Annotated[ - ApiFilterGroupConditionOperator | None, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] = None - conditions: Annotated[ - list[ApiFilterCondition] | None, - Field(description="The entries within this condition group.", min_length=1), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13(BaseItem): - type: Annotated[ - Literal["GROUP"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "GROUP" - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator | None, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] = None - conditions: Annotated[ - list[ApiFilterCondition] | None, - Field(description="The entries within this condition group.", min_length=1), - ] = None - - -class ApiFilterUpdate(BaseItem): - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - filter_type: Annotated[ - ApiFilterUpdateFilterType | None, - Field( - alias="filterType", - description="The type of this filter. Determines in which context analyses can access it.", - title="Filter Type", - ), - ] = None - name: Annotated[ - dict[str, str] | None, Field(description="The name of this filter.") - ] = None - category: Annotated[ - dict[str, str] | None, Field(description="The category of this filter.") - ] = None - display_currency_code: Annotated[ - str | None, - Field( - alias="displayCurrencyCode", - description="The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected.", - ), - ] = None - display_locale: Annotated[ - str | None, - Field( - alias="displayLocale", - description="The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified.", - ), - ] = None - condition: Annotated[ - ApiFilterGroupConditionUpdate | None, - Field( - description="A group filter containing all the conditions included in this filter." - ), - ] = None - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead13(BaseItem): - type: Annotated[ - Literal["GROUP"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "GROUP" - operator: Annotated[ - ApiFilterGroupConditionReadOperator | None, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] = None - conditions: Annotated[ - list[ApiFilterCondition] | None, - Field(description="The entries within this condition group.", min_length=1), - ] = None - - -class ApiFilterRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field(description="Data integrity version to ensure data consistency."), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - analysis_type_id: Annotated[ - str | None, - Field( - alias="analysisTypeId", - description="Identifies the associated analysis type.", - ), - ] = None - organization_id: Annotated[ - str | None, - Field( - alias="organizationId", - description="Identifies the parent organization, if applicable. Can only be set if `filterType` is `ORGANIZATION` or `PRIVATE`.", - ), - ] = None - library_id: Annotated[ - str | None, - Field( - alias="libraryId", - description="Identifies the parent library, if applicable. Can only be set if `filterType` is `LIBRARY`.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", - description="Identifies the parent engagement, if applicable. Can only be set if `filterType` is `ENGAGEMENT`.", - ), - ] = None - filter_type: Annotated[ - ApiFilterReadFilterType | None, - Field( - alias="filterType", - description="The type of this filter. Determines in which context analyses can access it.", - title="Filter Type", - ), - ] = None - data_type: Annotated[ - ApiFilterReadDataType | None, - Field( - alias="dataType", - description="The intended data type for this filter.", - title="Filter Data Type", - ), - ] = None - name: Annotated[ - dict[str, str] | None, Field(description="The name of this filter.") - ] = None - category: Annotated[ - dict[str, str] | None, Field(description="The category of this filter.") - ] = None - display_currency_code: Annotated[ - str | None, - Field( - alias="displayCurrencyCode", - description="The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected.", - ), - ] = None - display_locale: Annotated[ - str | None, - Field( - alias="displayLocale", - description="The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified.", - ), - ] = None - condition: Annotated[ - ApiFilterGroupConditionRead | None, - Field( - description="A group filter containing all the conditions included in this filter." - ), - ] = None - legacy_filter_format: Annotated[ - bool | None, - Field( - alias="legacyFilterFormat", - description="If `true` this filter is saved in a legacy format that can't be represented in the API.", - ), - ] = None - - -class ApiPopulationTagUpdate(BaseItem): - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the population.", max_length=80, min_length=0), - ] = None - category: Annotated[ - str | None, - Field( - description="The category of the population.", max_length=80, min_length=0 - ), - ] = None - description: Annotated[ - str | None, - Field( - description="A description of the population.", max_length=250, min_length=0 - ), - ] = None - reason_for_change: Annotated[ - str | None, - Field( - alias="reasonForChange", - description="The reason for the latest change made to the population.", - max_length=250, - min_length=0, - ), - ] = None - disabled: bool | None = None - condition: Annotated[ - ApiFilterGroupConditionUpdate | None, - Field( - description="The filter condition used to determine which entries are included in the population." - ), - ] = None - display_currency_code: Annotated[ - str | None, - Field( - alias="displayCurrencyCode", - description="The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified.", - ), - ] = None - display_locale: Annotated[ - str | None, - Field( - alias="displayLocale", - description="The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified.", - ), - ] = None - - -class ApiPopulationTagRead(BaseItem): - id: Annotated[str | None, Field(description="The unique object identifier.")] = None - version: Annotated[ - int | None, - Field( - description="Indicates the data integrity version to ensure data consistency." - ), - ] = None - creation_date: Annotated[ - AwareDatetime | None, - Field( - alias="creationDate", - description="The date that the object was originally created.", - ), - ] = None - last_modified_date: Annotated[ - AwareDatetime | None, - Field( - alias="lastModifiedDate", - description="The date that the object was last updated or modified.", - ), - ] = None - created_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="createdUserInfo", - description="Details about the user who created the object.", - ), - ] = None - last_modified_user_info: Annotated[ - ApiUserInfoRead | None, - Field( - alias="lastModifiedUserInfo", - description="Details about the user who last modified or updated the object.", - ), - ] = None - analysis_type_id: Annotated[str | None, Field(alias="analysisTypeId")] = None - library_id: Annotated[ - str | None, - Field(alias="libraryId", description="The ID of the parent library."), - ] = None - engagement_id: Annotated[ - str | None, - Field(alias="engagementId", description="The ID of the parent engagement."), - ] = None - derived_from_library: Annotated[ - bool | None, - Field( - alias="derivedFromLibrary", - description="Indicates that the engagement population was derived from a library.", - ), - ] = None - disabled_for_analysis_ids: Annotated[ - list[str] | None, - Field( - alias="disabledForAnalysisIds", - description="Lists the analysis IDs where the engagement population is disabled.", - ), - ] = None - promoted_from_analysis_id: Annotated[ - str | None, - Field( - alias="promotedFromAnalysisId", - description="Identifies the analysis from which the engagement population was promoted.", - ), - ] = None - analysis_id: Annotated[ - str | None, - Field(alias="analysisId", description="The ID of the parent analysis."), - ] = None - derived_from_engagement: Annotated[ - bool | None, - Field( - alias="derivedFromEngagement", - description="Indicates whether the analysis population was derived from an engagement.", - ), - ] = None - base_population_id: Annotated[ - str | None, - Field( - alias="basePopulationId", - description="The ID of the population the current population is based on.", - ), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the population.", max_length=80, min_length=0), - ] = None - category: Annotated[ - str | None, - Field( - description="The category of the population.", max_length=80, min_length=0 - ), - ] = None - description: Annotated[ - str | None, - Field( - description="A description of the population.", max_length=250, min_length=0 - ), - ] = None - cloned_from: Annotated[ - str | None, - Field( - alias="clonedFrom", - description="Identifies the population the current population was cloned from.", - ), - ] = None - reason_for_change: Annotated[ - str | None, - Field( - alias="reasonForChange", - description="The reason for the latest change made to the population.", - max_length=250, - min_length=0, - ), - ] = None - disabled: bool | None = None - condition: Annotated[ - ApiFilterGroupConditionRead | None, - Field( - description="The filter condition used to determine which entries are included in the population." - ), - ] = None - legacy_filter_format: Annotated[ - bool | None, - Field( - alias="legacyFilterFormat", - description="If `true`, this population uses a legacy filter format that cannot be represented in the current condition format.", - ), - ] = None - display_currency_code: Annotated[ - str | None, - Field( - alias="displayCurrencyCode", - description="The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified.", - ), - ] = None - display_locale: Annotated[ - str | None, - Field( - alias="displayLocale", - description="The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified.", - ), - ] = None - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13(BaseItem): - type: Annotated[ - Literal["GROUP"] | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = "GROUP" - operator: Annotated[ - ApiFilterGroupConditionCreateOperator | None, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] = None - conditions: Annotated[ - list[ApiFilterCondition] | None, - Field(description="The entries within this condition group.", min_length=1), - ] = None - - -class ApiFilterCreate(BaseItem): - analysis_type_id: Annotated[ - str | None, - Field( - alias="analysisTypeId", - description="Identifies the associated analysis type.", - ), - ] = None - organization_id: Annotated[ - str | None, - Field( - alias="organizationId", - description="Identifies the parent organization, if applicable. Can only be set if `filterType` is `ORGANIZATION` or `PRIVATE`.", - ), - ] = None - library_id: Annotated[ - str | None, - Field( - alias="libraryId", - description="Identifies the parent library, if applicable. Can only be set if `filterType` is `LIBRARY`.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", - description="Identifies the parent engagement, if applicable. Can only be set if `filterType` is `ENGAGEMENT`.", - ), - ] = None - filter_type: Annotated[ - ApiFilterCreateFilterType | None, - Field( - alias="filterType", - description="The type of this filter. Determines in which context analyses can access it.", - title="Filter Type", - ), - ] = None - data_type: Annotated[ - ApiFilterCreateDataType | None, - Field( - alias="dataType", - description="The intended data type for this filter.", - title="Filter Data Type", - ), - ] = None - name: Annotated[ - dict[str, str] | None, Field(description="The name of this filter.") - ] = None - category: Annotated[ - dict[str, str] | None, Field(description="The category of this filter.") - ] = None - display_currency_code: Annotated[ - str | None, - Field( - alias="displayCurrencyCode", - description="The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected.", - ), - ] = None - display_locale: Annotated[ - str | None, - Field( - alias="displayLocale", - description="The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified.", - ), - ] = None - condition: Annotated[ - ApiFilterGroupConditionCreate | None, - Field( - description="A group filter containing all the conditions included in this filter." - ), - ] = None - - -class ApiPageApiFilterRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiFilterRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiPopulationTagCreate(BaseItem): - analysis_type_id: Annotated[str | None, Field(alias="analysisTypeId")] = None - library_id: Annotated[ - str | None, - Field(alias="libraryId", description="The ID of the parent library."), - ] = None - analysis_id: Annotated[ - str | None, - Field(alias="analysisId", description="The ID of the parent analysis."), - ] = None - base_population_id: Annotated[ - str | None, - Field( - alias="basePopulationId", - description="The ID of the population the current population is based on.", - ), - ] = None - name: Annotated[ - str | None, - Field(description="The name of the population.", max_length=80, min_length=0), - ] = None - category: Annotated[ - str | None, - Field( - description="The category of the population.", max_length=80, min_length=0 - ), - ] = None - description: Annotated[ - str | None, - Field( - description="A description of the population.", max_length=250, min_length=0 - ), - ] = None - disabled: bool | None = None - condition: Annotated[ - ApiFilterGroupConditionCreate | None, - Field( - description="The filter condition used to determine which entries are included in the population." - ), - ] = None - display_currency_code: Annotated[ - str | None, - Field( - alias="displayCurrencyCode", - description="The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified.", - ), - ] = None - display_locale: Annotated[ - str | None, - Field( - alias="displayLocale", - description="The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified.", - ), - ] = None - - -class ApiPageApiPopulationTagRead(BaseItem): - page_number: Annotated[int | None, Field(alias="pageNumber")] = None - total_pages: Annotated[int | None, Field(alias="totalPages")] = None - content: list[ApiPopulationTagRead] | None = None - number_of_elements: Annotated[int | None, Field(alias="numberOfElements")] = None - total_elements: Annotated[int | None, Field(alias="totalElements")] = None - pageable: Annotated[ApiPageableRead | None, Field(deprecated=True)] = None - page_size: Annotated[int | None, Field(alias="pageSize", deprecated=True)] = None - sort: Annotated[SortnullRead | None, Field(deprecated=True)] = None - first: Annotated[bool | None, Field(deprecated=True)] = None - last: Annotated[bool | None, Field(deprecated=True)] = None - size: Annotated[int | None, Field(deprecated=True)] = None - number: Annotated[int | None, Field(deprecated=True)] = None - - -class ApiDataTableExportToFileManagerRequestCreate(BaseItem): - data_table_id: Annotated[ - str | None, - Field( - alias="dataTableId", - description="The ID of the Data Table to export data from.", - ), - ] = None - engagement_id: Annotated[ - str | None, - Field( - alias="engagementId", - description="The engagement that the Data Table belongs to.", - ), - ] = None - name: Annotated[ - str | None, - Field(description="The name for the exported CSV file without extension."), - ] = None - parent_file_manager_entity_id: Annotated[ - str | None, - Field( - alias="parentFileManagerEntityId", - description="The ID of the File Manager directory to place the exported file in. If null, the file is placed in the engagement's root directory.", - ), - ] = None - query: Annotated[ - MindBridgeQueryTerm | None, - Field(description="An optional filter to apply to the data before exporting."), - ] = None - sort: Annotated[ - ApiDataTableQuerySortOrderCreate | None, - Field(description="An optional sort order to apply to the exported rows."), - ] = None - fields: Annotated[ - list[str] | None, - Field( - description="The list of field names (columns) to include in the export." - ), - ] = None - limit: Annotated[ - int | None, Field(description="The maximum number of rows to export.", ge=1) - ] = None - csv_configuration: Annotated[ - ApiCsvConfigurationCreate | None, - Field( - alias="csvConfiguration", - description="The configuration to use when generating the CSV file.", - ), - ] = None - inner_list_csv_configuration: Annotated[ - ApiCsvConfigurationCreate | None, - Field( - alias="innerListCsvConfiguration", - description="The configuration to use when formatting list values within cells in the CSV file.", - ), - ] = None - - -class ApiDataTableExportRequest(BaseItem): - query: Annotated[ - MindBridgeQueryTerm | None, - Field( - description="The MindBridge QL query used to filter data in the data table." - ), - ] = None - sort: Annotated[ - ApiDataTableQuerySortOrder | None, - Field( - description="Indicates how the data will be sorted.\n\nDefault sort order = ascending" - ), - ] = None - fields: Annotated[ - list[str] | None, - Field(description="The data table fields to be included in the results."), - ] = None - limit: Annotated[ - int | None, Field(description="The number of results to be returned.", ge=1) - ] = None - csv_configuration: Annotated[ - ApiCsvConfiguration | None, - Field( - alias="csvConfiguration", - description="The configuration to use when generating the CSV file.", - ), - ] = None - inner_list_csv_configuration: Annotated[ - ApiCsvConfiguration | None, - Field( - alias="innerListCsvConfiguration", - description="The configuration to use when formatting lists within cells in the CSV file.", - ), - ] = None - - -class ApiDataTableQueryRead(BaseItem): - query: Annotated[ - MindBridgeQueryTerm | None, - Field( - description="The MindBridge QL query used to filter data in the data table." - ), - ] = None - page: Annotated[ - int | None, - Field( - description="The specific page of results. This operates on a zero-based page index (0..N).", - ge=0, - ), - ] = None - page_size: Annotated[ - int | None, - Field( - alias="pageSize", - description="The number of results to be returned on each page.", - ge=1, - le=100, - ), - ] = None - sort: Annotated[ - ApiDataTableQuerySortOrderRead | None, - Field( - description="Indicates how the data will be sorted.\n\nDefault sort order = ascending" - ), - ] = None - fields: Annotated[ - list[str] | None, - Field(description="The data table fields to be included in the results."), - ] = None - exclude_fields: Annotated[list[str] | None, Field(alias="excludeFields")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm14(BaseItem): - field_and: Annotated[list[MindBridgeQueryTerm] | None, Field(alias="$and")] = None - - -class MindBridgeQueryTermMindBridgeQueryTerm15(BaseItem): - field_or: Annotated[list[MindBridgeQueryTerm] | None, Field(alias="$or")] = None - - -MindBridgeQueryTerm = RootModel[ - dict[str, int | float | bool | str] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm1] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm2] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm3] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm4] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm5] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm6] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm8] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm9] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm10] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm11] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm12] - | dict[str, MindBridgeQueryTermMindBridgeQueryTerm13] - | MindBridgeQueryTermMindBridgeQueryTerm14 - | MindBridgeQueryTermMindBridgeQueryTerm15 - | MindBridgeQueryTermMindBridgeQueryTerm16 - | MindBridgeQueryTermMindBridgeQueryTerm17 - | dict[str, Any] - | None -] - - -ApiFilterDateRangeCondition = RootModel[ - "ApiFilterDateRangeConditionApiFilterDateRangeCondition2" -] - - -ApiFilterDateValueCondition = RootModel[ - "ApiFilterDateValueConditionApiFilterDateValueCondition2" -] - - -class ApiFilterDateRangeConditionApiFilterDateRangeCondition2( - ApiFilterDateRangeConditionApiFilterDateRangeCondition -): - date_type: Annotated[ - Literal["BETWEEN"], Field(alias="dateType", title="Filter Date Type") - ] - field: str - negated: bool - range_end: Annotated[ - date, - Field( - alias="rangeEnd", - description="The end of an ISO date range to compare entries to.", - ), - ] - range_start: Annotated[ - date, - Field( - alias="rangeStart", - description="The start of an ISO date range to compare entries to.", - ), - ] - type: Annotated[Literal["DATE"], Field(title="Filter Condition Type")] - - -class ApiFilterDateValueConditionApiFilterDateValueCondition2( - ApiFilterDateValueConditionApiFilterDateValueCondition -): - date_type: Annotated[ - ApiFilterDateValueConditionDateType, - Field(alias="dateType", title="Filter Date Type"), - ] - field: str - negated: bool - type: Annotated[Literal["DATE"], Field(title="Filter Condition Type")] - value: Annotated[ - date, Field(description="An ISO date value to compare entries to.") - ] - - -ApiFilterMaterialityOptionCondition = RootModel[ - "ApiFilterMaterialityOptionConditionApiFilterMaterialityOptionCondition1" -] - - -ApiFilterMaterialityValueCondition = RootModel[ - "ApiFilterMaterialityValueConditionApiFilterMaterialityValueCondition1" -] - - -class ApiFilterMaterialityOptionConditionApiFilterMaterialityOptionCondition1( - ApiFilterMaterialityOptionConditionApiFilterMaterialityOptionCondition -): - field: str - materiality_option: Annotated[ - ApiFilterMaterialityOptionConditionMaterialityOption, - Field(alias="materialityOption", title="Filter Materiality Value Options"), - ] - negated: bool - type: Annotated[Literal["MATERIALITY"], Field(title="Filter Condition Type")] - - -class ApiFilterMaterialityValueConditionApiFilterMaterialityValueCondition1( - ApiFilterMaterialityValueConditionApiFilterMaterialityValueCondition -): - field: str - materiality_option: Annotated[ - Literal["PERCENTAGE"], - Field(alias="materialityOption", title="Filter Materiality Value Options"), - ] - negated: bool - type: Annotated[Literal["MATERIALITY"], Field(title="Filter Condition Type")] - value: Annotated[ - float, - Field( - description="The percentage value, as a decimal number, with 100.00 being 100%." - ), - ] - - -ApiFilterMonetaryValueRangeCondition = RootModel[ - "ApiFilterMonetaryValueRangeConditionApiFilterMonetaryValueRangeCondition2" -] - - -ApiFilterMonetaryValueValueCondition = RootModel[ - "ApiFilterMonetaryValueValueConditionApiFilterMonetaryValueValueCondition2" -] - - -class ApiFilterMonetaryValueRangeConditionApiFilterMonetaryValueRangeCondition2( - ApiFilterMonetaryValueRangeConditionApiFilterMonetaryValueRangeCondition -): - field: str - monetary_value_type: Annotated[ - Literal["BETWEEN"], - Field(alias="monetaryValueType", title="Filter Monetary Type"), - ] - negated: bool - range_end: Annotated[ - int, - Field( - alias="rangeEnd", - description="The end of the range, as a MONEY_100 formatted number to compare with entries.", - ), - ] - range_start: Annotated[ - int, - Field( - alias="rangeStart", - description="The start of the range, as a MONEY_100 formatted number to compare with entries.", - ), - ] - type: Annotated[Literal["MONEY"], Field(title="Filter Condition Type")] - - -class ApiFilterMonetaryValueValueConditionApiFilterMonetaryValueValueCondition2( - ApiFilterMonetaryValueValueConditionApiFilterMonetaryValueValueCondition -): - field: str - monetary_value_type: Annotated[ - ApiFilterMonetaryValueValueConditionMonetaryValueType, - Field(alias="monetaryValueType", title="Filter Monetary Type"), - ] - negated: bool - type: Annotated[Literal["MONEY"], Field(title="Filter Condition Type")] - value: Annotated[ - int, - Field(description="The MONEY_100 formatted number to compare with entries."), - ] - - -ApiFilterNumericalValueRangeCondition = RootModel[ - "ApiFilterNumericalValueRangeConditionApiFilterNumericalValueRangeCondition2" -] - - -ApiFilterNumericalValueValueCondition = RootModel[ - "ApiFilterNumericalValueValueConditionApiFilterNumericalValueValueCondition2" -] - - -class ApiFilterNumericalValueRangeConditionApiFilterNumericalValueRangeCondition2( - ApiFilterNumericalValueRangeConditionApiFilterNumericalValueRangeCondition -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal["BETWEEN"], - Field(alias="numericalValueType", title="Filter Numerical Value Type"), - ] - range_end: Annotated[ - int, - Field( - alias="rangeEnd", - description="The end value of a range to compare entries to.", - ), - ] - range_start: Annotated[ - int, - Field( - alias="rangeStart", - description="The start value of a range to compare entries to.", - ), - ] - type: Annotated[Literal["NUMERICAL"], Field(title="Filter Condition Type")] - - -class ApiFilterNumericalValueValueConditionApiFilterNumericalValueValueCondition2( - ApiFilterNumericalValueValueConditionApiFilterNumericalValueValueCondition -): - field: str - negated: bool - numerical_value_type: Annotated[ - ApiFilterNumericalValueValueConditionNumericalValueType, - Field(alias="numericalValueType", title="Filter Numerical Value Type"), - ] - type: Annotated[Literal["NUMERICAL"], Field(title="Filter Condition Type")] - value: Annotated[int, Field(description="A value to compare entries to.")] - - -ApiFilterRiskScoreHMLCondition = RootModel[ - "ApiFilterRiskScoreHMLConditionApiFilterRiskScoreHMLCondition1" -] - - -ApiFilterRiskScorePercentCondition = RootModel[ - "ApiFilterRiskScorePercentConditionApiFilterRiskScorePercentCondition1" -] - - -class ApiFilterRiskScoreHMLConditionApiFilterRiskScoreHMLCondition1( - ApiFilterRiskScoreHMLConditionApiFilterRiskScoreHMLCondition -): - field: str - negated: bool - risk_score_id: Annotated[str, Field(alias="riskScoreId")] - risk_score_type: Annotated[ - Literal["HML"], Field(alias="riskScoreType", title="Filter Risk Score Type") - ] - type: Annotated[Literal["RISK_SCORE"], Field(title="Filter Condition Type")] - values: Annotated[ - list[ApiFilterRiskScoreHMLConditionValue], - Field(description="A list of HML options to include in the filter."), - ] - - -class ApiFilterRiskScorePercentConditionApiFilterRiskScorePercentCondition1( - ApiFilterRiskScorePercentConditionApiFilterRiskScorePercentCondition -): - field: str - negated: bool - risk_score_id: Annotated[str, Field(alias="riskScoreId")] - risk_score_percent_type: Annotated[ - Literal[ - "ApiFilterRiskScorePercentCondition#-datamodel-code-generator-#-union_model-0-#-special-#" - ], - Field( - alias="riskScorePercentType", - description="Determines the type of risk score percent condition to filter.", - title="Filter Risk Score Percent Type", - ), - ] - risk_score_type: Annotated[ - Literal["PERCENT"], Field(alias="riskScoreType", title="Filter Risk Score Type") - ] - type: Annotated[Literal["RISK_SCORE"], Field(title="Filter Condition Type")] - - -ApiFilterRiskScorePercentRangeCondition = RootModel[ - "ApiFilterRiskScorePercentRangeConditionApiFilterRiskScorePercentRangeCondition2" -] - - -ApiFilterRiskScorePercentUnscoredCondition = RootModel[ - "ApiFilterRiskScorePercentUnscoredConditionApiFilterRiskScorePercentUnscoredCondition2" -] - - -ApiFilterRiskScorePercentValueCondition = RootModel[ - "ApiFilterRiskScorePercentValueConditionApiFilterRiskScorePercentValueCondition2" -] - - -class ApiFilterRiskScorePercentRangeConditionApiFilterRiskScorePercentRangeCondition2( - ApiFilterRiskScorePercentRangeConditionApiFilterRiskScorePercentRangeCondition -): - field: str - negated: bool - range_end: Annotated[ - int, - Field( - alias="rangeEnd", - description="The end of the number range between 0 and 10,000.", - ), - ] - range_start: Annotated[ - int, - Field( - alias="rangeStart", - description="The start of the number range between 0 and 10,000.", - ), - ] - risk_score_id: Annotated[str, Field(alias="riskScoreId")] - risk_score_percent_type: Annotated[ - ApiFilterRiskScorePercentRangeConditionRiskScorePercentType, - Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), - ] - risk_score_type: Annotated[ - Literal["PERCENT"], Field(alias="riskScoreType", title="Filter Risk Score Type") - ] - type: Annotated[Literal["RISK_SCORE"], Field(title="Filter Condition Type")] - - -class ApiFilterRiskScorePercentUnscoredConditionApiFilterRiskScorePercentUnscoredCondition2( - ApiFilterRiskScorePercentUnscoredConditionApiFilterRiskScorePercentUnscoredCondition -): - field: str - negated: bool - risk_score_id: Annotated[str, Field(alias="riskScoreId")] - risk_score_percent_type: Annotated[ - Literal["UNSCORED"], - Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), - ] - risk_score_type: Annotated[ - Literal["PERCENT"], Field(alias="riskScoreType", title="Filter Risk Score Type") - ] - type: Annotated[Literal["RISK_SCORE"], Field(title="Filter Condition Type")] - - -class ApiFilterRiskScorePercentValueConditionApiFilterRiskScorePercentValueCondition2( - ApiFilterRiskScorePercentValueConditionApiFilterRiskScorePercentValueCondition -): - field: str - negated: bool - risk_score_id: Annotated[str, Field(alias="riskScoreId")] - risk_score_percent_type: Annotated[ - ApiFilterRiskScorePercentValueConditionRiskScorePercentType, - Field(alias="riskScorePercentType", title="Filter Risk Score Percent Type"), - ] - risk_score_type: Annotated[ - Literal["PERCENT"], Field(alias="riskScoreType", title="Filter Risk Score Type") - ] - type: Annotated[Literal["RISK_SCORE"], Field(title="Filter Condition Type")] - value: Annotated[ - int, - Field( - description="A number between 0 and 10,000 used as part of a more than, or less than filter." - ), - ] - - -ApiFilterComplexMonetaryFlowCondition = RootModel[ - "ApiFilterComplexMonetaryFlowConditionApiFilterComplexMonetaryFlowCondition2" -] - - -ApiFilterSimpleMonetaryFlowCondition = RootModel[ - "ApiFilterSimpleMonetaryFlowConditionApiFilterSimpleMonetaryFlowCondition2" -] - - -ApiFilterSpecificMonetaryFlowCondition = RootModel[ - "ApiFilterSpecificMonetaryFlowConditionApiFilterSpecificMonetaryFlowCondition2" -] - - -class ApiFilterComplexMonetaryFlowConditionApiFilterComplexMonetaryFlowCondition2( - ApiFilterComplexMonetaryFlowConditionApiFilterComplexMonetaryFlowCondition -): - field: str - monetary_flow_type: Annotated[ - Literal["COMPLEX_FLOW"], - Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), - ] - negated: bool - type: Annotated[Literal["MONETARY_FLOW"], Field(title="Filter Condition Type")] - - -class ApiFilterSimpleMonetaryFlowConditionApiFilterSimpleMonetaryFlowCondition2( - ApiFilterSimpleMonetaryFlowConditionApiFilterSimpleMonetaryFlowCondition -): - field: str - monetary_flow_type: Annotated[ - Literal["SIMPLE_FLOW"], - Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), - ] - negated: bool - type: Annotated[Literal["MONETARY_FLOW"], Field(title="Filter Condition Type")] - - -class ApiFilterSpecificMonetaryFlowConditionApiFilterSpecificMonetaryFlowCondition2( - ApiFilterSpecificMonetaryFlowConditionApiFilterSpecificMonetaryFlowCondition -): - credit_account: Annotated[ - ApiFilterAccountSelection, - Field( - alias="creditAccount", - description="The selected credit account in the monetary flow.", - ), - ] - debit_account: Annotated[ - ApiFilterAccountSelection, - Field( - alias="debitAccount", - description="The selected debit account in the monetary flow.", - ), - ] - field: str - monetary_flow_type: Annotated[ - Literal["SPECIFIC_FLOW"], - Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), - ] - negated: bool - specific_monetary_flow_type: Annotated[ - Literal[ - "ApiFilterSpecificMonetaryFlowCondition#-datamodel-code-generator-#-union_model-1-#-special-#" - ], - Field( - alias="specificMonetaryFlowType", - description="The type of specific monetary flow.", - title="Filter Specific Monetary Flow Type", - ), - ] - type: Annotated[Literal["MONETARY_FLOW"], Field(title="Filter Condition Type")] - - -ApiFilterSpecificMonetaryFlowRangeCondition = RootModel[ - "ApiFilterSpecificMonetaryFlowRangeConditionApiFilterSpecificMonetaryFlowRangeCondition2" -] - - -ApiFilterSpecificMonetaryFlowValueCondition = RootModel[ - "ApiFilterSpecificMonetaryFlowValueConditionApiFilterSpecificMonetaryFlowValueCondition2" -] - - -class ApiFilterSpecificMonetaryFlowRangeConditionApiFilterSpecificMonetaryFlowRangeCondition2( - ApiFilterSpecificMonetaryFlowRangeConditionApiFilterSpecificMonetaryFlowRangeCondition -): - credit_account: Annotated[ApiFilterAccountSelection, Field(alias="creditAccount")] - debit_account: Annotated[ApiFilterAccountSelection, Field(alias="debitAccount")] - field: str - monetary_flow_type: Annotated[ - Literal["SPECIFIC_FLOW"], - Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), - ] - negated: bool - range_end: Annotated[ - int, - Field( - alias="rangeEnd", - description="The end of the range, as a MONEY_100 formatted number to compare with entries.", - ), - ] - range_start: Annotated[ - int, - Field( - alias="rangeStart", - description="The start of the range, as a MONEY_100 formatted number to compare with entries.", - ), - ] - specific_monetary_flow_type: Annotated[ - Literal["BETWEEN"], - Field( - alias="specificMonetaryFlowType", title="Filter Specific Monetary Flow Type" - ), - ] - type: Annotated[Literal["MONETARY_FLOW"], Field(title="Filter Condition Type")] - - -class ApiFilterSpecificMonetaryFlowValueConditionApiFilterSpecificMonetaryFlowValueCondition2( - ApiFilterSpecificMonetaryFlowValueConditionApiFilterSpecificMonetaryFlowValueCondition -): - credit_account: Annotated[ApiFilterAccountSelection, Field(alias="creditAccount")] - debit_account: Annotated[ApiFilterAccountSelection, Field(alias="debitAccount")] - field: str - monetary_flow_type: Annotated[ - Literal["SPECIFIC_FLOW"], - Field(alias="monetaryFlowType", title="Filter Monetary Flow Type"), - ] - negated: bool - specific_monetary_flow_type: Annotated[ - ApiFilterSpecificMonetaryFlowValueConditionSpecificMonetaryFlowType, - Field( - alias="specificMonetaryFlowType", title="Filter Specific Monetary Flow Type" - ), - ] - type: Annotated[Literal["MONETARY_FLOW"], Field(title="Filter Condition Type")] - value: Annotated[ - int, - Field(description="The MONEY_100 formatted number to compare with entries."), - ] - - -ApiFilterAccountCondition = RootModel[ - Union[ - "ApiFilterAccountConditionApiFilterAccountCondition14", - "ApiFilterAccountConditionApiFilterAccountCondition15", - "ApiFilterAccountConditionApiFilterAccountCondition16", - "ApiFilterAccountConditionApiFilterAccountCondition17", - "ApiFilterAccountConditionApiFilterAccountCondition18", - "ApiFilterAccountConditionApiFilterAccountCondition19", - "ApiFilterAccountConditionApiFilterAccountCondition20", - "ApiFilterAccountConditionApiFilterAccountCondition21", - "ApiFilterAccountConditionApiFilterAccountCondition22", - "ApiFilterAccountConditionApiFilterAccountCondition23", - "ApiFilterAccountConditionApiFilterAccountCondition24", - "ApiFilterAccountConditionApiFilterAccountCondition25", - "ApiFilterAccountConditionApiFilterAccountCondition26", - ] -] - - -ApiFilterControlPointCondition = RootModel[ - Union[ - "ApiFilterControlPointConditionApiFilterControlPointCondition14", - "ApiFilterControlPointConditionApiFilterControlPointCondition15", - "ApiFilterControlPointConditionApiFilterControlPointCondition16", - "ApiFilterControlPointConditionApiFilterControlPointCondition17", - "ApiFilterControlPointConditionApiFilterControlPointCondition18", - "ApiFilterControlPointConditionApiFilterControlPointCondition19", - "ApiFilterControlPointConditionApiFilterControlPointCondition20", - "ApiFilterControlPointConditionApiFilterControlPointCondition21", - "ApiFilterControlPointConditionApiFilterControlPointCondition22", - "ApiFilterControlPointConditionApiFilterControlPointCondition23", - "ApiFilterControlPointConditionApiFilterControlPointCondition24", - "ApiFilterControlPointConditionApiFilterControlPointCondition25", - "ApiFilterControlPointConditionApiFilterControlPointCondition26", - ] -] - - -ApiFilterDateCondition = RootModel[ - Union[ - "ApiFilterDateConditionApiFilterDateCondition14", - "ApiFilterDateConditionApiFilterDateCondition15", - "ApiFilterDateConditionApiFilterDateCondition16", - "ApiFilterDateConditionApiFilterDateCondition17", - "ApiFilterDateConditionApiFilterDateCondition18", - "ApiFilterDateConditionApiFilterDateCondition19", - "ApiFilterDateConditionApiFilterDateCondition20", - "ApiFilterDateConditionApiFilterDateCondition21", - "ApiFilterDateConditionApiFilterDateCondition22", - "ApiFilterDateConditionApiFilterDateCondition23", - "ApiFilterDateConditionApiFilterDateCondition24", - "ApiFilterDateConditionApiFilterDateCondition25", - "ApiFilterDateConditionApiFilterDateCondition26", - ] -] - - -ApiFilterGroupCondition = RootModel[ - Union[ - "ApiFilterGroupConditionApiFilterGroupCondition14", - "ApiFilterGroupConditionApiFilterGroupCondition15", - "ApiFilterGroupConditionApiFilterGroupCondition16", - "ApiFilterGroupConditionApiFilterGroupCondition17", - "ApiFilterGroupConditionApiFilterGroupCondition18", - "ApiFilterGroupConditionApiFilterGroupCondition19", - "ApiFilterGroupConditionApiFilterGroupCondition20", - "ApiFilterGroupConditionApiFilterGroupCondition21", - "ApiFilterGroupConditionApiFilterGroupCondition22", - "ApiFilterGroupConditionApiFilterGroupCondition23", - "ApiFilterGroupConditionApiFilterGroupCondition24", - "ApiFilterGroupConditionApiFilterGroupCondition25", - "ApiFilterGroupConditionApiFilterGroupCondition26", - ] -] - - -ApiFilterGroupConditionUpdate = RootModel[ - Union[ - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate14", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate15", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate16", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate17", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate18", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate19", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate20", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate21", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate22", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate23", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate24", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate25", - "ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate26", - ] -] - - -ApiFilterMaterialityCondition = RootModel[ - Union[ - "ApiFilterMaterialityConditionApiFilterMaterialityCondition14", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition15", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition16", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition17", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition18", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition19", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition20", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition21", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition22", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition23", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition24", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition25", - "ApiFilterMaterialityConditionApiFilterMaterialityCondition26", - ] -] - - -ApiFilterMonetaryFlowCondition = RootModel[ - Union[ - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition14", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition15", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition16", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition17", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition18", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition19", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition20", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition21", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition22", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition23", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition24", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition25", - "ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition26", - ] -] - - -ApiFilterMonetaryValueCondition = RootModel[ - Union[ - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition14", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition15", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition16", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition17", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition18", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition19", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition20", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition21", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition22", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition23", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition24", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition25", - "ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition26", - ] -] - - -ApiFilterNumericalValueCondition = RootModel[ - Union[ - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition14", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition15", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition16", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition17", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition18", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition19", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition20", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition21", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition22", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition23", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition24", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition25", - "ApiFilterNumericalValueConditionApiFilterNumericalValueCondition26", - ] -] - - -ApiFilterPopulationsCondition = RootModel[ - Union[ - "ApiFilterPopulationsConditionApiFilterPopulationsCondition14", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition15", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition16", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition17", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition18", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition19", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition20", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition21", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition22", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition23", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition24", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition25", - "ApiFilterPopulationsConditionApiFilterPopulationsCondition26", - ] -] - - -ApiFilterRiskScoreCondition = RootModel[ - Union[ - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition14", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition15", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition16", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition17", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition18", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition19", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition20", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition21", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition22", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition23", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition24", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition25", - "ApiFilterRiskScoreConditionApiFilterRiskScoreCondition26", - ] -] - - -ApiFilterStringArrayCondition = RootModel[ - Union[ - "ApiFilterStringArrayConditionApiFilterStringArrayCondition14", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition15", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition16", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition17", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition18", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition19", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition20", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition21", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition22", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition23", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition24", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition25", - "ApiFilterStringArrayConditionApiFilterStringArrayCondition26", - ] -] - - -ApiFilterStringCondition = RootModel[ - Union[ - "ApiFilterStringConditionApiFilterStringCondition14", - "ApiFilterStringConditionApiFilterStringCondition15", - "ApiFilterStringConditionApiFilterStringCondition16", - "ApiFilterStringConditionApiFilterStringCondition17", - "ApiFilterStringConditionApiFilterStringCondition18", - "ApiFilterStringConditionApiFilterStringCondition19", - "ApiFilterStringConditionApiFilterStringCondition20", - "ApiFilterStringConditionApiFilterStringCondition21", - "ApiFilterStringConditionApiFilterStringCondition22", - "ApiFilterStringConditionApiFilterStringCondition23", - "ApiFilterStringConditionApiFilterStringCondition24", - "ApiFilterStringConditionApiFilterStringCondition25", - "ApiFilterStringConditionApiFilterStringCondition26", - ] -] - - -ApiFilterTypeaheadEntryCondition = RootModel[ - Union[ - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition14", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition15", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition16", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition17", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition18", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition19", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition20", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition21", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition22", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition23", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition24", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition25", - "ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition26", - ] -] - - -ApiFilterGroupConditionRead = RootModel[ - Union[ - "ApiFilterGroupConditionReadApiFilterGroupConditionRead14", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead15", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead16", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead17", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead18", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead19", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead20", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead21", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead22", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead23", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead24", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead25", - "ApiFilterGroupConditionReadApiFilterGroupConditionRead26", - ] -] - - -ApiFilterGroupConditionCreate = RootModel[ - Union[ - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate14", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate15", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate16", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate17", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate18", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate19", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate20", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate21", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate22", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate23", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate24", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate25", - "ApiFilterGroupConditionCreateApiFilterGroupConditionCreate26", - ] -] - - -class ApiFilterAccountConditionApiFilterAccountCondition4(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition4(BaseItem): - type: Annotated[ - Literal["4"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate4(BaseItem): - type: Annotated[ - Literal["4"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition4(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition4(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition4(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate4(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition4(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition4(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition4(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition4(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition4(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition4(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition4(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition4(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition4(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead4(BaseItem): - type: Annotated[ - Literal["4"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead4(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate4(BaseItem): - type: Annotated[ - Literal["4"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate4(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition3(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition3(BaseItem): - type: Annotated[ - Literal["3"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate3(BaseItem): - type: Annotated[ - Literal["3"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition3(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition3(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition3(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate3(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition3(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition3(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition3(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition3(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition3(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition3(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition3(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition3(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition3(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead3(BaseItem): - type: Annotated[ - Literal["3"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead3(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate3(BaseItem): - type: Annotated[ - Literal["3"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate3(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition12(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition12(BaseItem): - type: Annotated[ - Literal["12"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate12(BaseItem): - type: Annotated[ - Literal["12"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition12(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition12(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition12(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate12(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition12(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition12(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition12(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition12(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition12(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition12(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition12(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition12(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition12(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead12(BaseItem): - type: Annotated[ - Literal["12"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead12(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate12(BaseItem): - type: Annotated[ - Literal["12"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate12(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition(BaseItem): - type: Annotated[ - Literal["0"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate(BaseItem): - type: Annotated[ - Literal["0"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead(BaseItem): - type: Annotated[ - Literal["0"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate(BaseItem): - type: Annotated[ - Literal["0"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition10(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition10(BaseItem): - type: Annotated[ - Literal["10"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate10(BaseItem): - type: Annotated[ - Literal["10"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition10(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition10(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition10(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate10(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition10(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition10(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition10(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition10(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition10(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition10(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition10(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition10(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition10(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead10(BaseItem): - type: Annotated[ - Literal["10"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead10(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate10(BaseItem): - type: Annotated[ - Literal["10"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate10(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition8(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition8(BaseItem): - type: Annotated[ - Literal["8"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate8(BaseItem): - type: Annotated[ - Literal["8"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition8(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition8(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition8(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate8(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition8(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition8(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition8(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition8(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition8(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition8(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition8(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition8(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition8(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead8(BaseItem): - type: Annotated[ - Literal["8"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead8(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate8(BaseItem): - type: Annotated[ - Literal["8"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate8(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition9(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition9(BaseItem): - type: Annotated[ - Literal["9"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate9(BaseItem): - type: Annotated[ - Literal["9"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition9(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition9(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition9(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate9(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition9(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition9(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition9(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition9(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition9(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition9(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition9(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition9(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition9(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead9(BaseItem): - type: Annotated[ - Literal["9"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead9(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate9(BaseItem): - type: Annotated[ - Literal["9"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate9(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition11(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition11(BaseItem): - type: Annotated[ - Literal["11"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate11(BaseItem): - type: Annotated[ - Literal["11"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition11(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition11(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition11(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate11(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition11(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition11(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition11(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition11(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition11(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition11(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition11(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition11(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition11(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead11(BaseItem): - type: Annotated[ - Literal["11"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead11(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate11(BaseItem): - type: Annotated[ - Literal["11"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate11(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition6(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition6(BaseItem): - type: Annotated[ - Literal["6"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate6(BaseItem): - type: Annotated[ - Literal["6"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition6(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition6(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition6(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate6(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition6(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition6(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition6(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition6(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition6(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition6(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition6(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition6(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition6(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead6(BaseItem): - type: Annotated[ - Literal["6"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead6(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate6(BaseItem): - type: Annotated[ - Literal["6"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate6(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition7(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition7(BaseItem): - type: Annotated[ - Literal["7"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate7(BaseItem): - type: Annotated[ - Literal["7"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition7(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition7(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition7(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate7(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition7(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition7(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition7(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition7(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition7(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition7(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition7(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition7(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition7(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead7(BaseItem): - type: Annotated[ - Literal["7"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead7(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate7(BaseItem): - type: Annotated[ - Literal["7"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate7(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition2(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition2(BaseItem): - type: Annotated[ - Literal["2"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate2(BaseItem): - type: Annotated[ - Literal["2"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition2(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition2(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition2(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate2(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition2(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition2(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition2(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition2(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition2(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition2(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition2(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition2(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition2(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead2(BaseItem): - type: Annotated[ - Literal["2"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead2(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate2(BaseItem): - type: Annotated[ - Literal["2"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate2(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition1(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition1(BaseItem): - type: Annotated[ - Literal["1"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate1(BaseItem): - type: Annotated[ - Literal["1"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition1(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition1(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition1(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate1(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition1(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition1(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition1(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition1(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition1(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition1(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition1(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition1(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition1(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead1(BaseItem): - type: Annotated[ - Literal["1"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead1(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate1(BaseItem): - type: Annotated[ - Literal["1"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate1(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition5(BaseItem): - type: Annotated[ - ApiFilterAccountConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionApiFilterCondition5(BaseItem): - type: Annotated[ - Literal["5"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterConditionUpdateApiFilterConditionUpdate5(BaseItem): - type: Annotated[ - Literal["5"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition5(BaseItem): - type: Annotated[ - ApiFilterControlPointConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterDateConditionApiFilterDateCondition5(BaseItem): - type: Annotated[ - ApiFilterDateConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionApiFilterGroupCondition5(BaseItem): - type: Annotated[ - ApiFilterGroupConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate5(BaseItem): - type: Annotated[ - ApiFilterGroupConditionUpdateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition5(BaseItem): - type: Annotated[ - ApiFilterMaterialityConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition5(BaseItem): - type: Annotated[ - ApiFilterMonetaryFlowConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition5(BaseItem): - type: Annotated[ - ApiFilterMonetaryValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition5(BaseItem): - type: Annotated[ - ApiFilterNumericalValueConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition5(BaseItem): - type: Annotated[ - ApiFilterPopulationsConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition5(BaseItem): - type: Annotated[ - ApiFilterRiskScoreConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition5(BaseItem): - type: Annotated[ - ApiFilterStringArrayConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterStringConditionApiFilterStringCondition5(BaseItem): - type: Annotated[ - ApiFilterStringConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition5(BaseItem): - type: Annotated[ - ApiFilterTypeaheadEntryConditionType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionReadApiFilterConditionRead5(BaseItem): - type: Annotated[ - Literal["5"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead5(BaseItem): - type: Annotated[ - ApiFilterGroupConditionReadType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterConditionCreateApiFilterConditionCreate5(BaseItem): - type: Annotated[ - Literal["5"], - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate5(BaseItem): - type: Annotated[ - ApiFilterGroupConditionCreateType | None, - Field(description="The type of condition.", title="Filter Condition Type"), - ] = None - - -class ApiFilterAccountConditionApiFilterAccountCondition18( - ApiFilterAccountConditionApiFilterAccountCondition4, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition18( - ApiFilterControlPointConditionApiFilterControlPointCondition4, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition18( - ApiFilterDateConditionApiFilterDateCondition4, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-4-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition18( - ApiFilterGroupConditionApiFilterGroupCondition4, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate18( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate4, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition18( - ApiFilterMaterialityConditionApiFilterMaterialityCondition4, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-4-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition18( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition4, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-4-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition18( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition4, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-4-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition18( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition4, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-4-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition18( - ApiFilterPopulationsConditionApiFilterPopulationsCondition4, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition18( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition4, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-4-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition18( - ApiFilterStringArrayConditionApiFilterStringArrayCondition4, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition18( - ApiFilterStringConditionApiFilterStringCondition4, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition18( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition4, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead18( - ApiFilterGroupConditionReadApiFilterGroupConditionRead4, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate18( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate4, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition17( - ApiFilterAccountConditionApiFilterAccountCondition3, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition17( - ApiFilterControlPointConditionApiFilterControlPointCondition3, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition17( - ApiFilterDateConditionApiFilterDateCondition3, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-3-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition17( - ApiFilterGroupConditionApiFilterGroupCondition3, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate17( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate3, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition17( - ApiFilterMaterialityConditionApiFilterMaterialityCondition3, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-3-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition17( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition3, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-3-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition17( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition3, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-3-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition17( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition3, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-3-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition17( - ApiFilterPopulationsConditionApiFilterPopulationsCondition3, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition17( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition3, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-3-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition17( - ApiFilterStringArrayConditionApiFilterStringArrayCondition3, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition17( - ApiFilterStringConditionApiFilterStringCondition3, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition17( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition3, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead17( - ApiFilterGroupConditionReadApiFilterGroupConditionRead3, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate17( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate3, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition26( - ApiFilterAccountConditionApiFilterAccountCondition12, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition26( - ApiFilterControlPointConditionApiFilterControlPointCondition12, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition26( - ApiFilterDateConditionApiFilterDateCondition12, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-12-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition26( - ApiFilterGroupConditionApiFilterGroupCondition12, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate26( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate12, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition26( - ApiFilterMaterialityConditionApiFilterMaterialityCondition12, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-12-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition26( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition12, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-12-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition26( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition12, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-12-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition26( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition12, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-12-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition26( - ApiFilterPopulationsConditionApiFilterPopulationsCondition12, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition26( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition12, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-12-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition26( - ApiFilterStringArrayConditionApiFilterStringArrayCondition12, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition26( - ApiFilterStringConditionApiFilterStringCondition12, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition26( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition12, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead26( - ApiFilterGroupConditionReadApiFilterGroupConditionRead12, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate26( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate12, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition14( - ApiFilterAccountConditionApiFilterAccountCondition, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition14( - ApiFilterControlPointConditionApiFilterControlPointCondition, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition14( - ApiFilterDateConditionApiFilterDateCondition, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-0-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition14( - ApiFilterGroupConditionApiFilterGroupCondition, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate14( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition14( - ApiFilterMaterialityConditionApiFilterMaterialityCondition, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-0-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition14( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-0-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition14( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-0-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition14( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-0-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition14( - ApiFilterPopulationsConditionApiFilterPopulationsCondition, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition14( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-0-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition14( - ApiFilterStringArrayConditionApiFilterStringArrayCondition, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition14( - ApiFilterStringConditionApiFilterStringCondition, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition14( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead14( - ApiFilterGroupConditionReadApiFilterGroupConditionRead, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate14( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition24( - ApiFilterAccountConditionApiFilterAccountCondition10, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition24( - ApiFilterControlPointConditionApiFilterControlPointCondition10, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition24( - ApiFilterDateConditionApiFilterDateCondition10, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-10-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition24( - ApiFilterGroupConditionApiFilterGroupCondition10, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate24( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate10, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition24( - ApiFilterMaterialityConditionApiFilterMaterialityCondition10, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-10-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition24( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition10, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-10-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition24( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition10, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-10-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition24( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition10, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-10-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition24( - ApiFilterPopulationsConditionApiFilterPopulationsCondition10, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition24( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition10, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-10-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition24( - ApiFilterStringArrayConditionApiFilterStringArrayCondition10, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition24( - ApiFilterStringConditionApiFilterStringCondition10, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition24( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition10, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead24( - ApiFilterGroupConditionReadApiFilterGroupConditionRead10, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate24( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate10, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition22( - ApiFilterAccountConditionApiFilterAccountCondition8, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition22( - ApiFilterControlPointConditionApiFilterControlPointCondition8, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition22( - ApiFilterDateConditionApiFilterDateCondition8, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-8-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition22( - ApiFilterGroupConditionApiFilterGroupCondition8, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate22( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate8, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition22( - ApiFilterMaterialityConditionApiFilterMaterialityCondition8, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-8-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition22( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition8, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-8-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition22( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition8, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-8-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition22( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition8, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-8-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition22( - ApiFilterPopulationsConditionApiFilterPopulationsCondition8, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition22( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition8, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-8-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition22( - ApiFilterStringArrayConditionApiFilterStringArrayCondition8, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition22( - ApiFilterStringConditionApiFilterStringCondition8, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition22( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition8, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead22( - ApiFilterGroupConditionReadApiFilterGroupConditionRead8, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate22( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate8, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition23( - ApiFilterAccountConditionApiFilterAccountCondition9, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition23( - ApiFilterControlPointConditionApiFilterControlPointCondition9, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition23( - ApiFilterDateConditionApiFilterDateCondition9, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-9-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition23( - ApiFilterGroupConditionApiFilterGroupCondition9, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate23( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate9, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition23( - ApiFilterMaterialityConditionApiFilterMaterialityCondition9, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-9-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition23( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition9, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-9-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition23( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition9, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-9-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition23( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition9, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-9-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition23( - ApiFilterPopulationsConditionApiFilterPopulationsCondition9, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition23( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition9, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-9-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition23( - ApiFilterStringArrayConditionApiFilterStringArrayCondition9, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition23( - ApiFilterStringConditionApiFilterStringCondition9, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition23( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition9, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead23( - ApiFilterGroupConditionReadApiFilterGroupConditionRead9, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate23( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate9, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition25( - ApiFilterAccountConditionApiFilterAccountCondition11, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition25( - ApiFilterControlPointConditionApiFilterControlPointCondition11, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition25( - ApiFilterDateConditionApiFilterDateCondition11, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-11-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition25( - ApiFilterGroupConditionApiFilterGroupCondition11, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate25( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate11, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition25( - ApiFilterMaterialityConditionApiFilterMaterialityCondition11, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-11-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition25( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition11, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-11-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition25( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition11, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-11-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition25( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition11, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-11-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition25( - ApiFilterPopulationsConditionApiFilterPopulationsCondition11, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition25( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition11, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-11-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition25( - ApiFilterStringArrayConditionApiFilterStringArrayCondition11, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition25( - ApiFilterStringConditionApiFilterStringCondition11, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition25( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition11, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead25( - ApiFilterGroupConditionReadApiFilterGroupConditionRead11, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate25( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate11, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition20( - ApiFilterAccountConditionApiFilterAccountCondition6, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition20( - ApiFilterControlPointConditionApiFilterControlPointCondition6, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition20( - ApiFilterDateConditionApiFilterDateCondition6, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-6-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition20( - ApiFilterGroupConditionApiFilterGroupCondition6, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate20( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate6, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition20( - ApiFilterMaterialityConditionApiFilterMaterialityCondition6, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-6-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition20( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition6, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-6-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition20( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition6, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-6-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition20( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition6, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-6-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition20( - ApiFilterPopulationsConditionApiFilterPopulationsCondition6, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition20( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition6, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-6-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition20( - ApiFilterStringArrayConditionApiFilterStringArrayCondition6, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition20( - ApiFilterStringConditionApiFilterStringCondition6, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition20( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition6, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead20( - ApiFilterGroupConditionReadApiFilterGroupConditionRead6, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate20( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate6, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition21( - ApiFilterAccountConditionApiFilterAccountCondition7, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition21( - ApiFilterControlPointConditionApiFilterControlPointCondition7, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition21( - ApiFilterDateConditionApiFilterDateCondition7, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-7-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition21( - ApiFilterGroupConditionApiFilterGroupCondition7, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate21( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate7, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition21( - ApiFilterMaterialityConditionApiFilterMaterialityCondition7, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-7-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition21( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition7, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-7-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition21( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition7, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-7-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition21( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition7, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-7-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition21( - ApiFilterPopulationsConditionApiFilterPopulationsCondition7, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition21( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition7, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-7-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition21( - ApiFilterStringArrayConditionApiFilterStringArrayCondition7, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition21( - ApiFilterStringConditionApiFilterStringCondition7, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition21( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition7, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead21( - ApiFilterGroupConditionReadApiFilterGroupConditionRead7, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate21( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate7, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition16( - ApiFilterAccountConditionApiFilterAccountCondition2, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition16( - ApiFilterControlPointConditionApiFilterControlPointCondition2, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition16( - ApiFilterDateConditionApiFilterDateCondition2, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-2-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition16( - ApiFilterGroupConditionApiFilterGroupCondition2, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate16( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate2, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition16( - ApiFilterMaterialityConditionApiFilterMaterialityCondition2, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-2-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition16( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition2, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-2-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition16( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition2, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-2-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition16( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition2, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-2-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition16( - ApiFilterPopulationsConditionApiFilterPopulationsCondition2, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition16( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition2, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-2-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition16( - ApiFilterStringArrayConditionApiFilterStringArrayCondition2, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition16( - ApiFilterStringConditionApiFilterStringCondition2, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition16( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition2, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead16( - ApiFilterGroupConditionReadApiFilterGroupConditionRead2, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate16( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate2, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition15( - ApiFilterAccountConditionApiFilterAccountCondition1, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition15( - ApiFilterControlPointConditionApiFilterControlPointCondition1, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition15( - ApiFilterDateConditionApiFilterDateCondition1, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-1-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition15( - ApiFilterGroupConditionApiFilterGroupCondition1, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate15( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate1, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition15( - ApiFilterMaterialityConditionApiFilterMaterialityCondition1, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-1-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition15( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition1, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-1-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition15( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition1, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-1-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition15( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition1, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-1-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition15( - ApiFilterPopulationsConditionApiFilterPopulationsCondition1, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition15( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition1, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-1-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition15( - ApiFilterStringArrayConditionApiFilterStringArrayCondition1, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition15( - ApiFilterStringConditionApiFilterStringCondition1, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition15( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition1, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead15( - ApiFilterGroupConditionReadApiFilterGroupConditionRead1, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate15( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate1, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterAccountConditionApiFilterAccountCondition19( - ApiFilterAccountConditionApiFilterAccountCondition5, - ApiFilterAccountConditionApiFilterAccountCondition13, -): - account_selections: Annotated[ - list[ApiFilterAccountSelection], Field(alias="accountSelections") - ] - field: str - negated: bool - type: Annotated[ - ApiFilterAccountConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -ApiFilterCondition = RootModel[ - ApiFilterConditionApiFilterCondition - | ApiFilterConditionApiFilterCondition1 - | ApiFilterConditionApiFilterCondition2 - | ApiFilterConditionApiFilterCondition3 - | ApiFilterConditionApiFilterCondition4 - | ApiFilterConditionApiFilterCondition5 - | ApiFilterConditionApiFilterCondition6 - | ApiFilterConditionApiFilterCondition7 - | ApiFilterConditionApiFilterCondition8 - | ApiFilterConditionApiFilterCondition9 - | ApiFilterConditionApiFilterCondition10 - | ApiFilterConditionApiFilterCondition11 - | ApiFilterConditionApiFilterCondition12 - | None -] - - -ApiFilterConditionUpdate = RootModel[ - ApiFilterConditionUpdateApiFilterConditionUpdate - | ApiFilterConditionUpdateApiFilterConditionUpdate1 - | ApiFilterConditionUpdateApiFilterConditionUpdate2 - | ApiFilterConditionUpdateApiFilterConditionUpdate3 - | ApiFilterConditionUpdateApiFilterConditionUpdate4 - | ApiFilterConditionUpdateApiFilterConditionUpdate5 - | ApiFilterConditionUpdateApiFilterConditionUpdate6 - | ApiFilterConditionUpdateApiFilterConditionUpdate7 - | ApiFilterConditionUpdateApiFilterConditionUpdate8 - | ApiFilterConditionUpdateApiFilterConditionUpdate9 - | ApiFilterConditionUpdateApiFilterConditionUpdate10 - | ApiFilterConditionUpdateApiFilterConditionUpdate11 - | ApiFilterConditionUpdateApiFilterConditionUpdate12 - | None -] - - -class ApiFilterControlPointConditionApiFilterControlPointCondition19( - ApiFilterControlPointConditionApiFilterControlPointCondition5, - ApiFilterControlPointConditionApiFilterControlPointCondition13, -): - control_points: Annotated[ - list[ApiFilterControlPointSelection], - Field(alias="controlPoints", description="A list of control point selections."), - ] - field: str - negated: bool - risk_level: Annotated[ - ApiFilterControlPointConditionRiskLevel, - Field( - alias="riskLevel", - description="The risk level of the selected control points.", - title="Filter Control Point Risk Level", - ), - ] - type: Annotated[ - ApiFilterControlPointConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterDateConditionApiFilterDateCondition19( - ApiFilterDateConditionApiFilterDateCondition5, - ApiFilterDateConditionApiFilterDateCondition13, -): - date_type: Annotated[ - Literal[ - "ApiFilterDateCondition#-datamodel-code-generator-#-union_model-5-#-special-#" - ], - Field( - alias="dateType", - description="The type of date condition.", - title="Filter Date Type", - ), - ] - field: str - negated: bool - type: Annotated[ - ApiFilterDateConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionApiFilterGroupCondition19( - ApiFilterGroupConditionApiFilterGroupCondition5, - ApiFilterGroupConditionApiFilterGroupCondition13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate19( - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate5, - ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionUpdateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionUpdateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMaterialityConditionApiFilterMaterialityCondition19( - ApiFilterMaterialityConditionApiFilterMaterialityCondition5, - ApiFilterMaterialityConditionApiFilterMaterialityCondition13, -): - field: str - materiality_option: Annotated[ - Literal[ - "ApiFilterMaterialityCondition#-datamodel-code-generator-#-union_model-5-#-special-#" - ], - Field( - alias="materialityOption", - description="The type of materiality comparison.", - title="Filter Materiality Value Options", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMaterialityConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition19( - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition5, - ApiFilterMonetaryFlowConditionApiFilterMonetaryFlowCondition13, -): - field: str - monetary_flow_type: Annotated[ - Literal[ - "ApiFilterMonetaryFlowCondition#-datamodel-code-generator-#-union_model-5-#-special-#" - ], - Field( - alias="monetaryFlowType", - description="The type of monetary flow this filter will match.", - title="Filter Monetary Flow Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryFlowConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition19( - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition5, - ApiFilterMonetaryValueConditionApiFilterMonetaryValueCondition13, -): - field: str - monetary_value_type: Annotated[ - Literal[ - "ApiFilterMonetaryValueCondition#-datamodel-code-generator-#-union_model-5-#-special-#" - ], - Field( - alias="monetaryValueType", - description="The type of monetary value condition.", - title="Filter Monetary Type", - ), - ] - negated: bool - type: Annotated[ - ApiFilterMonetaryValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterNumericalValueConditionApiFilterNumericalValueCondition19( - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition5, - ApiFilterNumericalValueConditionApiFilterNumericalValueCondition13, -): - field: str - negated: bool - numerical_value_type: Annotated[ - Literal[ - "ApiFilterNumericalValueCondition#-datamodel-code-generator-#-union_model-5-#-special-#" - ], - Field( - alias="numericalValueType", - description="The type of numerical value condition.", - title="Filter Numerical Value Type", - ), - ] - type: Annotated[ - ApiFilterNumericalValueConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterPopulationsConditionApiFilterPopulationsCondition19( - ApiFilterPopulationsConditionApiFilterPopulationsCondition5, - ApiFilterPopulationsConditionApiFilterPopulationsCondition13, -): - field: str - negated: bool - population_ids: Annotated[ - list[str], - Field( - alias="populationIds", - description="A list of population IDs and category names to be used in the filter.", - ), - ] - type: Annotated[ - ApiFilterPopulationsConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterRiskScoreConditionApiFilterRiskScoreCondition19( - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition5, - ApiFilterRiskScoreConditionApiFilterRiskScoreCondition13, -): - field: str - negated: bool - risk_score_id: Annotated[ - str, - Field(alias="riskScoreId", description="The risk score column being filtered."), - ] - risk_score_type: Annotated[ - Literal[ - "ApiFilterRiskScoreCondition#-datamodel-code-generator-#-union_model-5-#-special-#" - ], - Field( - alias="riskScoreType", - description="Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.", - title="Filter Risk Score Type", - ), - ] - type: Annotated[ - ApiFilterRiskScoreConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -class ApiFilterStringArrayConditionApiFilterStringArrayCondition19( - ApiFilterStringArrayConditionApiFilterStringArrayCondition5, - ApiFilterStringArrayConditionApiFilterStringArrayCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringArrayConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[str], Field(description="The set of text values used to filter entries.") - ] - - -class ApiFilterStringConditionApiFilterStringCondition19( - ApiFilterStringConditionApiFilterStringCondition5, - ApiFilterStringConditionApiFilterStringCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterStringConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - value: Annotated[str, Field(description="The text value used to filter entries.")] - - -class ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition19( - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition5, - ApiFilterTypeaheadEntryConditionApiFilterTypeaheadEntryCondition13, -): - field: str - negated: bool - type: Annotated[ - ApiFilterTypeaheadEntryConditionType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - values: Annotated[ - list[ApiTypeaheadEntry], - Field( - description="A list of typeahead entry selections to be used in the filter." - ), - ] - - -ApiFilterConditionRead = RootModel[ - ApiFilterConditionReadApiFilterConditionRead - | ApiFilterConditionReadApiFilterConditionRead1 - | ApiFilterConditionReadApiFilterConditionRead2 - | ApiFilterConditionReadApiFilterConditionRead3 - | ApiFilterConditionReadApiFilterConditionRead4 - | ApiFilterConditionReadApiFilterConditionRead5 - | ApiFilterConditionReadApiFilterConditionRead6 - | ApiFilterConditionReadApiFilterConditionRead7 - | ApiFilterConditionReadApiFilterConditionRead8 - | ApiFilterConditionReadApiFilterConditionRead9 - | ApiFilterConditionReadApiFilterConditionRead10 - | ApiFilterConditionReadApiFilterConditionRead11 - | ApiFilterConditionReadApiFilterConditionRead12 - | None -] - - -class ApiFilterGroupConditionReadApiFilterGroupConditionRead19( - ApiFilterGroupConditionReadApiFilterGroupConditionRead5, - ApiFilterGroupConditionReadApiFilterGroupConditionRead13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionReadOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionReadType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -ApiFilterConditionCreate = RootModel[ - ApiFilterConditionCreateApiFilterConditionCreate - | ApiFilterConditionCreateApiFilterConditionCreate1 - | ApiFilterConditionCreateApiFilterConditionCreate2 - | ApiFilterConditionCreateApiFilterConditionCreate3 - | ApiFilterConditionCreateApiFilterConditionCreate4 - | ApiFilterConditionCreateApiFilterConditionCreate5 - | ApiFilterConditionCreateApiFilterConditionCreate6 - | ApiFilterConditionCreateApiFilterConditionCreate7 - | ApiFilterConditionCreateApiFilterConditionCreate8 - | ApiFilterConditionCreateApiFilterConditionCreate9 - | ApiFilterConditionCreateApiFilterConditionCreate10 - | ApiFilterConditionCreateApiFilterConditionCreate11 - | ApiFilterConditionCreateApiFilterConditionCreate12 - | None -] - - -class ApiFilterGroupConditionCreateApiFilterGroupConditionCreate19( - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate5, - ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13, -): - conditions: Annotated[ - list[ApiFilterCondition], - Field(description="The entries within this condition group.", min_length=1), - ] - operator: Annotated[ - ApiFilterGroupConditionCreateOperator, - Field( - description="The operator to be applied to conditions within this group.", - title="Filter Group Operator", - ), - ] - type: Annotated[ - ApiFilterGroupConditionCreateType, - Field(description="The type of condition.", title="Filter Condition Type"), - ] - - -ApiFilterGroupConditionApiFilterGroupCondition13.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate13.model_rebuild() -ApiFilterUpdate.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead13.model_rebuild() -ApiFilterRead.model_rebuild() -ApiPopulationTagUpdate.model_rebuild() -ApiPopulationTagRead.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate13.model_rebuild() -ApiFilterCreate.model_rebuild() -ApiPopulationTagCreate.model_rebuild() -ApiDataTableExportToFileManagerRequestCreate.model_rebuild() -ApiDataTableExportRequest.model_rebuild() -ApiDataTableQueryRead.model_rebuild() -MindBridgeQueryTermMindBridgeQueryTerm14.model_rebuild() -MindBridgeQueryTermMindBridgeQueryTerm15.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition18.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate18.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead18.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate18.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition17.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate17.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead17.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate17.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition26.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate26.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead26.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate26.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition14.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate14.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead14.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate14.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition24.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate24.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead24.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate24.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition22.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate22.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead22.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate22.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition23.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate23.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead23.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate23.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition25.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate25.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead25.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate25.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition20.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate20.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead20.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate20.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition21.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate21.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead21.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate21.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition16.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate16.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead16.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate16.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition15.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate15.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead15.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate15.model_rebuild() -ApiFilterGroupConditionApiFilterGroupCondition19.model_rebuild() -ApiFilterGroupConditionUpdateApiFilterGroupConditionUpdate19.model_rebuild() -ApiFilterGroupConditionReadApiFilterGroupConditionRead19.model_rebuild() -ApiFilterGroupConditionCreateApiFilterGroupConditionCreate19.model_rebuild() diff --git a/pyproject.toml b/pyproject.toml index a66df1df7..bb3803cd3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -89,7 +89,7 @@ test = [ "pytest>=8.3.4", "pytest-cov>=5", "pytest-mock>=3.14", - "pytest-timeout>=2.4.0", + "pytest-timeout>=2.4", "pytest-xdist>=3.3.1", "time-machine>=3.1", "watchfiles>=1.1", diff --git a/tests/main/openapi/test_main_openapi.py b/tests/main/openapi/test_main_openapi.py index 811ae9d6b..e12bbafc5 100644 --- a/tests/main/openapi/test_main_openapi.py +++ b/tests/main/openapi/test_main_openapi.py @@ -5317,11 +5317,14 @@ def test_main_reuse_model_with_type_alias(output_file: Path) -> None: ], ) + @pytest.mark.timeout(30) def test_main_to_be_renamed_later(output_file: Path) -> None: - run_main_and_assert( + """To be updated later.""" + run_main_and_assert( input_path=OPEN_API_DATA_PATH / "to_be_renamed_later.json", output_path=output_file, input_file_type="openapi", assert_func=assert_file_content, + extra_args=["--disable-timestamp"], ) From 7deb47d63e854dee014b6b5403d1151a653b825a Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Thu, 16 Apr 2026 12:46:05 -0400 Subject: [PATCH 13/23] whitespace changes to help view the code better --- src/datamodel_code_generator/parser/base.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/datamodel_code_generator/parser/base.py b/src/datamodel_code_generator/parser/base.py index ecbad8e72..e11c08791 100644 --- a/src/datamodel_code_generator/parser/base.py +++ b/src/datamodel_code_generator/parser/base.py @@ -502,8 +502,10 @@ def sort_data_models( # noqa: PLR0912, PLR0915 """Sort data models by dependency order for correct forward references.""" if sorted_data_models is None: sorted_data_models = OrderedDict() + if require_update_action_models is None: require_update_action_models = [] + sorted_model_count: int = len(sorted_data_models) unresolved_references: list[DataModel] = [] @@ -521,6 +523,7 @@ def sort_data_models( # noqa: PLR0912, PLR0915 add_model_path_to_list(require_update_action_models, model) else: unresolved_references.append(model) + if unresolved_references: if sorted_model_count != len(sorted_data_models) and recursion_count: try: @@ -552,6 +555,7 @@ def sort_data_models( # noqa: PLR0912, PLR0915 for b in model.base_classes if b.reference and b.reference.path in path_to_index ] + if indexes: ordered_models.append(( max(indexes), @@ -562,9 +566,11 @@ def sort_data_models( # noqa: PLR0912, PLR0915 -1, model, )) + sorted_unresolved_models = [m[1] for m in sorted(ordered_models, key=operator.itemgetter(0))] if sorted_unresolved_models == unresolved_references: break + unresolved_references = sorted_unresolved_models # circular reference @@ -578,16 +584,19 @@ def sort_data_models( # noqa: PLR0912, PLR0915 if update_action_parent: add_model_path_to_list(require_update_action_models, model) continue + if not unresolved_model - unsorted_data_model_names: sorted_data_models[model.path] = model add_model_path_to_list(require_update_action_models, model) continue + # unresolved unresolved_classes = ", ".join( f"[class: {item.path} references: {item.reference_classes}]" for item in unresolved_references ) msg = f"A Parser can not resolve classes: {unresolved_classes}." raise Exception(msg) # noqa: TRY002 + return unresolved_references, sorted_data_models, require_update_action_models From c380a72a6a80cb4913495e6858da19f81b604507 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Thu, 16 Apr 2026 17:37:41 -0400 Subject: [PATCH 14/23] Produce smaler openapi example (still fails) --- tests/data/openapi/to_be_renamed_later.json | 64 ++++++++++++++++++++- uv.lock | 6 +- 2 files changed, 66 insertions(+), 4 deletions(-) diff --git a/tests/data/openapi/to_be_renamed_later.json b/tests/data/openapi/to_be_renamed_later.json index e5e26f81b..2370d0dfe 100644 --- a/tests/data/openapi/to_be_renamed_later.json +++ b/tests/data/openapi/to_be_renamed_later.json @@ -1 +1,63 @@ -{"openapi":"3.1.0","info":{"title":"MindBridge API","description":"The MindBridge API is an HTTP REST API that provides access to MindBridge entities and processes. Request and response bodies are\ngenerally JSON formatted, with some exceptions.\n\n## Endpoint model\n\nEndpoints are structured in a standard way:\n\n### Create\n\n`POST /{entityName}` - Creates an entity with the properties specified in the request body.\n\n### Read\n\n`GET /{entityName}/{entityId}` – Reads the entity identified by the ID.\n\n### Update\n\n`PUT /{entityName}/{entityId}` – Updates the entity identified by the ID with the content of the request body.\n\nEvery time an entity is saved, the `version` property is incremented. To prevent multiple calls from overwriting each other's changes,\nthe `version` property in the updated request body must match the latest version on MindBridge's servers.\n\n### Delete\n\n`DELETE /{entityName}/{entityId}` – Deletes the entity identified by the ID.\n\n### Query\n\n`POST /{entityName}/query` – Performs a paged query of the entity collection.\n\n## Entity model\n\nAll endpoint requests and responses for a given entity use the same model structure, with some fields being either read-only or editable\ndepending on the method. If a property is not editable for the endpoint in question, it will be ignored.\n\nFor example, if the following organization entity body is used with the `Create Organization` endpoint, then the `id` property will be\nignored and a new organization will be created with a new id and \"New organization\" as the name.\n\n```json\n{\n \"id\": \"4b8360d00000000000000001\",\n \"name\": \"New organization\"\n}\n```\n\nUsing this approach, an entity can be created or updated using the same model read from a read entity call, as read-only fields will not be\noverwritten by changes made to the _create_ or _update_ body.\n\nIf a property that is not present on the model is included in a create or update request, then the request body will be considered invalid\nand an error will be returned.\n\n## MindBridge Query Language\n\n### Overview\n\nMindBridge Query Language (QL) is the standard unified query language used to interact with all the underlying data tables and\ncollections within MindBridge. This query language has been extended to the MindBridge API, which uses this syntax for all `/query`\nendpoints within the API, as well as several other endpoints.\n\n### Syntax\n\nThe query is expressed as a JSON object. The example below looks for values equal to 10000 in the `credit` column.\n\n```json\n{\n \"credit\": {\n \"$eq\": 10000\n }\n}\n```\n\nAbove, `$eq` is the equality operator. Other operators are listed below. As a shortcut for equality, you can specify the value directly.\n\n```json\n{\n \"credit\": 10000\n}\n```\n\nIn order to conform to the syntax of a valid JSON object, all operators and fields must be enclosed in quotes. For more details on the\nJSON language, refer to [json.org](https://json.org).\n\nLogical `AND` and `OR` conditions are available. If you want to specify two columns, the conditions can be combined with `$and`.\n\n```json\n{\n \"$and\": [\n {\n \"account\": {\n \"$eq\": \"1023345\"\n }\n },\n {\n \"risk\": {\n \"$gte\": 5000\n }\n }\n ]\n}\n```\n\n#### Simplified Syntax\n\nThe example `$and` query above can be simplified using the syntax seen below.\n\n```json\n{\n \"account\": {\n \"$eq\": \"1023345\"\n },\n \"risk\": {\n \"$gte\": 5000\n }\n}\n```\n\nYou can combine `$or` and `$and` to build up a more complex structure, such as the one seen below, which combines all the techniques\nseen so far.\n\n```json\n{\n \"risk\": {\n \"$gte\": 5000,\n \"$lt\": 7000\n },\n \"$or\": [\n {\n \"transaction\": {\n \"$iprefix\": \"ABC1\"\n }\n },\n {\n \"transaction\": {\n \"$iprefix\": \"ABC2\"\n }\n }\n ],\n \"$and\": [\n {\n \"source\": {\n \"$ne\": \"MA\"\n }\n },\n {\n \"source\": {\n \"$iprefix\": \"M\"\n }\n }\n ]\n}\n```\n\nYou can use two operators on the same column at the same time:\n\n```json\n{\n \"credit\": {\n \"$gte\": 1000,\n \"$lt\": 10000\n }\n}\n```\n\n#### Unique Names\n\nEvery field in a JSON object or sub-object must be **unique**. The following is not valid because `source` appears twice at the top level.\n\n```json\n{\n \"source\": {\n \"$ne\": \"MA\"\n },\n \"source\": {\n \"$ne\": \"MB\"\n }\n}\n```\n\nInstead, wrap it in `$and`:\n\n```json\n{\n \"$and\": [\n {\n \"source\": {\n \"$ne\": \"MA\"\n }\n },\n {\n \"source\": {\n \"$ne\": \"MB\"\n }\n }\n ]\n}\n```\n\nOr use another operator like `$nin`:\n\n```json\n{\n \"source\": {\n \"$nin\": [\n \"MA\",\n \"MB\"\n ]\n }\n}\n```\n\nYou can use two operators on the same column at the same time:\n\n```json\n{\n \"credit\": {\n \"$gte\": 1000,\n \"$lt\": 10000\n }\n}\n```\n\n### Column Operators\n\n**Column operators** apply a filter to a specific column.\n\n| Description | Description | Column Types | Field Conditions |\n|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|\n| `$eq` | Tests if the value in the column **is identical** to the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`equalitySearch` must be true |\n| `$ne` | Tests if the value in the column **is not identical** to the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`equalitySearch` must be true |\n| `$gt` | Tests if the value in the column is **greater than** the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`rangeSearch` must be true |\n| `$gte` | Tests if the value in the column is **greater than or equal** to the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`rangeSearch` must be true |\n| `$lt` | Tests if the value in the column is **less than** the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`rangeSearch` must be true |\n| `$lte` | Tests if the value in the column is **less than or equal** to the literal value. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`rangeSearch` must be true |\n| `$contains` | Tests if an array **contains** a literal value.
For example, given a transaction with entries from accounts 12345 and 23456, the following query on the `gl_journal_tx` data table would match the transaction:
```{ \"accounts\": { \"$contains\": \"12345\" } }``` | ARRAY_STRINGS | case-insensitive on STRING values
`containsSearch` must be true |\n| `$ncontains` | Tests if an array **does not contain** a literal value. | ARRAY_STRINGS | case-insensitive on STRING values
`containsSearch` must be true |\n| `$in` | Tests if a column is equal to one of the values in an array of literals. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`equalitySearch` must be true |\n| `$nin` | Tests if a column is **not equal** to any values in an array of literals. | STRING
DATE_TIME
INT32
INT64
FLOAT32
FLOAT64
MONEY_100
PERCENTAGE_FIXED_POINT
OBJECT_ID | case-insensitive on STRING values
`equalitySearch` must be true |\n| `$flags` | Accepts an object with one or more keys with boolean values. Tests if the flags (keys) match the values.
For example, to search for entries that triggered the [2 Digit Benford](https://support.mindbridge.ai/hc/en-us/articles/360056059834) control point, use this query on the `gl_journal_lines` data table.
```{ \"cp_failed\": {\"$flags\": { \"journal_entry_two_digit_benford\": true }}}``` | BOOLEAN_FLAGS | |\n| `$isubstr` | Tests if a literal value **matches** the value in the column. For example, the following query on the `engagements/query`
endpoint will match engagements named \"abc\", \"aBc\", and \"zabcd\".
```{ \"name\": { \"$isubstr\": \"abc\" } }``` | STRING | case-insensitive on STRING values
`allowCaseInsensitiveSubstringSearch` must be true |\n| `$iprefix` | Tests if a literal value **matches** the start of the value in the column. For example, the following query on the `gl_journal_tx` data table will match transactions \"T1234\", \"t1234\", and \"T12345\".
```{ \"transaction\": { \"$iprefix\": \"T1234\" } }``` | STRING | case-insensitive on STRING values
`caseInsensitivePrefixSearch` must be true |\n| `$niprefix` | Tests if a literal value **does not match** the start of the value in the column. | STRING | case-insensitive on STRING values
`caseInsensitivePrefixSearch` must be true |\n\n### Root Operators\n\n#### Logical Operators\n\n**Logical operators** allow MindBridge to combine Column Operation queries to allow for more sophisticated calls.\n\n| Operator | Description |\n|----------|----------------------------------------------------------------|\n| `$and` | Tests that **all** contained terms are evaluated to be `true`. |\n| `$or` | Tests that **any** contained terms are evaluated to be `true`. |\n\n#### Keyword Operators\n\n**Keyword operators** are applied simultaneously to all columns that support keyword searches. This is controlled by the keywordSearch\nattribute associated with the column’s metadata.\n\n| Operator | Description |\n|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `$keyword_prefix` | Performs a case-insensitive prefix search of all words in the row (operand must be a STRING).
For example, the following query on the `gl_journal_tx` data table will return transactions with rows that contain the words **abc** , **abcdef**, or **aBcd** in any column.
```{ \"$keyword_prefix\": \"abc\" }``` |\n| `$keyword_prefix_not` | Inverted case-insensitive prefix search (operand must be a STRING). |\n\n#### Population Operators\n\n**Population operators** test whether the specified entry is or is not included within the specified population, identified by its ID. The\npopulation in question must be accessible from the analysis, meaning the population must be part of the analysis, engagement, or library\nthat this data table resides in.\n\n| Operator | Description |\n|-------------------|---------------------------------------------------------------------------------|\n| `$population` | Tests that entries are part of the population specified by the provided ID. |\n| `$not_population` | Tests that entries are not part of the population specified by the provided ID. |\n\nThe correct usage of `$population` and `$not_population` is as follows, with `643eff00ec992f7ec42ed9f7` being a valid population ID:\n\n```json\n{\n \"$population\": \"643eff00ec992f7ec42ed9f7\"\n}\n```\n\n```json\n{\n \"$not_population\": \"643eff00ec992f7ec42ed9f7\"\n}\n```\n\n### Data Formats\n\nBecause the MindBridge QL is based on JSON, `strings`, `numbers`, and `booleans` are natively included in the language definition, but\nother values require some conversion. The following table describes the values MindBridge QL accepts in relation to our internal data\nstructure. The contents of the \"Column Type\" column (below) represent the data types supported internally and how they are mapped to the\nJSON object structure.\n\n| Column Type | Format |\n|--------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `STRING` | Value must be a JSON string. |\n| `DATE_TIME` | A JSON string in ISO8601 date-time format, such as **2019-08-10T00:50:00Z**. |\n| `BOOLEAN` | Value must be a JSON boolean (true or false). |\n| `INT32` | Value must be a JSON number in the range **[-2^31, 2^31-1]**. |\n| `INT64` | Value must be a JSON number in the range **[-2^63, 2^63-1]**. |\n| `FLOAT32, FLOAT64` | Value must be a JSON number.
FLOAT32 **[1.2E-38, 3.4E+38]**
FLOAT64 **[2.2E-308, 1.7E+308]** |\n| `MONEY_100` | Currently we express currency values as integers, essentially multiplying by 100 to store, and dividing by 100 when displaying the value.
This allows MindBridge to operate with floating point numbers without loss of precision. Value must be a JSON number in the range **[-2^63,2^63-1]**. No division by 100 is performed on the actual data.
For example, in a `MONEY_100` column, such as credit, the following query on the `gl_journal_lines` data table will find values greater than 1234.
```{ \"credit\": { \"$gt\": 1234 } }``` |\n| `PERCENTAGE_FIXED_POINT` | Value must be a JSON number in the range **[0, 10000]** where 10000 means 100%. |\n| `ARRAY_STRINGS` | Value must be an array of JSON strings. |\n| `OBJECT_ID` | A 12-byte database identifier, represented by a 24-character hexadecimal string. Organizations, engagements, analyses, and analysis sources all use **OBJECT_ID** for their `id` fields.
For example, `6686add55cd5c94147ecebdb` |\n\n## Rate limiting\n\n**Rate limiting** restricts the number of API calls that can be made to certain endpoints over a given period of time, and has been applied\nto the endpoints indicated below. Once the limit is reached, further calls to any of these endpoints will fail until the rate limit resets.\n\nThese failures will show the HTTP status: `429 Too Many Requests`, along with a response header: `X-User-Hour-Limit-Remaining`. The\nvalue in the response header represents the number of seconds until the rate limit resets.\n\nFor example, suppose the `POST /users` endpoint has a rate limit of `100` calls per `1 hour`. If more than 100 requests are made within the\ngiven hour, any subsequent requests would fail and return the error indicated above.\n\nSince rate limiting is applied tenant-wide, all tokens share the same rate limit.\n\n### Rate limits\n\n| Name | Reset time remaining header | Limit | Duration | Endpoints |\n|-------------------------|-------------------------------|-------|----------|---------------------------------------------------------------|\n| Modify users rate limit | `X-User-Hour-Limit-Remaining` | 100 | 1 hour | - Create user
- Update user
- Resend activation email |\n\n### Platform-level rate limits\n\nAdditional rate limits are applied at the platform level on a per-IP address basis to protect against potential abuse or client-side\nsoftware incidents, and are set high enough that customers should not encounter them in regular use. Platform-level rate limits will return\nthe HTTP status `429` with no `X-User-Hour-Limit-Remaining` header, and requests can be retried after approximately 30 seconds.\n","contact":{"name":"MindBridge","url":"https://mindbridge.ai","email":"support@mindbridge.ai"},"version":"1.8.3"},"servers":[{"url":"https://test.mindbridge.ai/api","description":"Generated server url"}],"security":[{"mindbridge-api":[]}],"tags":[{"name":"Tasks","description":"**Tasks** are data table transactions or entries that have been added to the audit plan for further investigation.\n","x-tag-expanded":"false"},{"name":"Account Mappings","description":"_Account mapping_ aligns your organization's accounts with MindBridge Account Classification (MAC) codes based on their\nnature, ensuring that MindBridge can consistently and effectively analyze datasets across the engagement.\n\nBefore an analysis can be run, all account mappings within the given engagement must be marked as _Verified_ or _MAC code_.\n\n## Mapping statuses\n\n- **Verified**: Indicates that the account has been mapped to a MAC code or grouping code _automatically_, and/or was\n previously manually verified.\n- **Unverified**: Indicates that MindBridge _automatically_ mapped the account to a lowest level account grouping code\n based on the grouping code and/or account description, and should be verified for accuracy before you proceed.\n- **MAC code**: When using a MindBridge default library, this indicates that the imported general ledger file included\n a \"MAC code\" column that accurately reflects the lowest-level MAC code for each account group in the ledger — in this\n case, MindBridge uses _direct matching_ to map the accounts.\n- **Modified**: Indicates that an account's MAC code was updated when copied between account groupings — this may happen\n if a _different library_ is selected while rolling an analysis forward or duplicating an analysis into a _new\n engagement_.\n- **Manual**: Indicates that the account mapping was changed manually by a member of your team.\n- **Inferred**: When a less granular grouping code or MAC code is provided, this indicates that MindBridge has\n automatically mapped the account to a Level 3 MAC code based on the provided code and account description, and should\n be verified for accuracy before you proceed.\n- **Unmapped**: Indicates that the account has not yet been mapped to a valid MAC code or grouping code.\n","x-tag-expanded":"false"},{"name":"File Manager","description":"The **file manager** is a secure, centralized holding area designed to store files related to an engagement. It supports a folder-based\nhierarchy, allowing data to be utilized for various purposes. Files stored in the file manager can be imported into appropriate analysis\nsources*.\n\n***Note:** The file manager can hold any number of files, but the analysis source types available within an engagement are controlled by the\nselected library and the analysis types it supports.\n","x-tag-expanded":"false"},{"name":"Engagement Account Groupings","description":"An **engagement account grouping** is an engagement-level copy of an account grouping that is generated upon creation of a new\nengagement. Subsequent changes made to the original account grouping and/or its account groups will not be copied into the\nengagement account grouping, and vice versa.\n","x-tag-expanded":"false"},{"name":"API Tokens","description":"**API tokens** are used to authenticate requests made to the MindBridge API. During creation, each token is assigned permissions that\ncontrol the actions it can perform.\n\nAPI tokens are valid until their expiry date, after which they can no longer be used. A token may be active for a maximum of 2 years from\nthe date of creation.\n\nAdditionally, API tokens can be configured to limit access to specific IP addresses or CIDR blocks by setting the `allowedAddresses`\nproperty to a valid IPv4 or IPv6 address, or CIDR range.\n\n## API Token Users\n\nOnce an API token is created, an **API Token User** is automatically created and assigned to the API token. This non-human user account\nrepresents the API token, and any action that the API takes will be attributed to that user. Because each API Token User is linked to a\nunique API token, these accounts cannot be deleted or disabled, except by deleting the associated API token itself.\n","x-tag-expanded":"false"},{"name":"Async Results","description":"**Async results** can be used to track the status of asynchronous background jobs (such as data ingestion) for which results may not be\nimmediately available. Users can poll these records to view the status of their requests. Once the requests have been completed, users can\ncall the relevant entity’s `Read` endpoint to view the results of the job.\n\n### Permissions\n\nThe **permissions** needed to access this collection are controlled by the target data you are attempting to access.\n","x-tag-expanded":"false"},{"name":"Connection Test Results","description":"**Connection Test Results** represent the outcome of running a Connection's \"Test Connection\" operation. The Connection Test Result\nis stored as a record containing a message indicating whether the connection was successful or describing the failure.\n\n#### Cleanup task\n\nA cleanup task is regularly run that will delete Connection Test Results that are older than 7 days.\n","x-tag-expanded":"false"},{"name":"Task History","description":"**Task Histories** are the history entries related to an individual task within the system.\n","x-tag-expanded":"false"},{"name":"Data Transformation","description":"The **data transformation** endpoint is a collection of data manipulation techniques that can be performed on file manager files. These\ntransformations can be applied to one or more files, and typically generate new files based on specified input configurations.\n","x-tag-expanded":"false"},{"name":"Analysis Source Types","description":"An **Analysis Source Type** describes the features applied when importing an analysis source, such as the effective date\nrange, transaction ID selection, etc., as well as relevant MindBridge column definitions. These features determine which\nsteps occur during the analysis source import process.\n\n### Alternative MindBridge field names for non-MAC account groupings\n\nWhen using a non-MAC based account grouping, some MindBridge fields use a different name (for example, `mac_code`\nbecomes `custom_code`). This is identified by the `mindbridgeFieldNameForNonMacGroupings` field, which describes which\nMindBridge field name to use instead.\n\nAdditionally, when using a non-MAC based account grouping, some fields may become required. This is indicated by\nthe `requiredForNonMacGroupings` field, which is set for all fields that specify\na `mindbridgeFieldNameForNonMacGroupings` value.\n","x-tag-expanded":"false"},{"name":"Data Tables","description":"After running the analysis, the **data table** provides results details about the imported financial data for the\ncurrent period.\n\n### Logical names and types\n\nData tables types can be identified by either their `logicalName` or `type` field, depending on the data table, and can\nbe queried accordingly using the following fields:\n\n| Table | Field | Value |\n|------------------------------------------------------------|---------------|------------------------------------|\n| General Ledger Entries | `logicalName` | `gl_journal_lines` |\n| General Ledger Transactions | `logicalName` | `gl_journal_tx` |\n| Monetary Flows | `type` | `flows_compact` |\n| Accounts Payable Entries | `logicalName` | `ap_detail_entries` |\n| Accounts Receivable Entries | `logicalName` | `ar_detail_entries` |\n| Accounts Payable: End of Period Outstanding Payable | `logicalName` | `ap_detail_union_open_payables` |\n| Accounts Receivable: End of Period Outstanding Receivables | `logicalName` | `ar_detail_union_open_receivables` |\n| Configured Analysis Entries | `logicalName` | `output_entries_virtual` |\n","x-tag-expanded":"false"},{"name":"Connections","description":"**Connections** represent external data source (such as Databricks) configured in MindBridge. Connections allow you to connect to\nexternal databases, test connectivity, discover available tables, and retrieve data for use in MindBridge.\n","x-tag-expanded":"false"},{"name":"Populations","description":"**Populations** allow users to group entries within an analysis to support more efficient sampling. Unique populations can be defined within\nlibraries, engagements, and analyses, and can be used to surface or exclude groups of entries from the analysis results.\n\nSome fields (below) within population entities may only be defined for populations depending on their parent entity.\n\nLibrary populations:\n\n- `libraryId`\n\nEngagement populations:\n\n- `engagementId`\n- `derivedFromLibrary`\n- `disabledForAnalysisIds`\n- `promotedFromAnalysisId`\n\nAnalysis populations:\n\n- `analysisId`\n- `derivedFromEngagement`\n\nEach population inherits permissions from its parent entity type. In order to access library, engagement, and analysis populations, you will\nneed to be able to access libraries, engagements, and analyses respectively. If the API token does not provide sufficient access, those\npopulations will be excluded from `GET` and /`query` results.\n\n### Population conditions\n\nPopulations use the same condition format as saved filters. Please refer to the saved filters documentation for a description on how the\ncondition formats work.\n\nPopulation conditions have additional restrictions in addition to those applied to saved filters:\n\n- The following fields cannot be used as part of a population condition: `populations`, `account_tags_decreasing`,\n `account_tags_increasing`, `status` and `risk_range`.\n- Populations can only be applied to general ledger analysis types.\n\nUnlike filters, populations are validated on creation and when updated. A create or update to a population condition that doesn't align with\nthe analysis' data table definition will fail.\n\nAdditionally, unlike filters, populations can only be applied to general ledger entries, not transactions.\n\nSimilar to filters, populations include the fields `legacyFilterFormat`, `displayCurrencyCode` and `displayLocale`, which function in the\nsame way as they do for saved filters.\n","x-tag-expanded":"false"},{"name":"Webhook event logs","description":"The webhook event logs provide a way to track events as they are sent by the system, and allow the user\nto help track messages, or diagnose issues with webhooks.\n\nSee the webhooks documentation for more information on receiving webhooks, or the webhook section for information\nabout the webhooks themselves.\n","x-tag-expanded":"false"},{"name":"Users","description":"**Users** generally represent you and your team and can be assigned to various roles and tasks within the platform. Users may also represent\nMindBridge Customer Support staff who are active in customer assistance requests, as well as portal users when connecting integrations and\nAPI Token Users.\n\n### User roles\n\nUser roles determine which actions a user can perform within MindBridge.\n\n| Role ID | User Role | Description |\n|-------------------------------------------------|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ROLE_ADMIN | App Admin | App Admins have full access to the MindBridge tenant. They can invite and manage users, and view/edit all organizations and engagements. |\n| ROLE_USER_ADMIN | User Admin | User Admins can invite and manage tenant users, and create new organizations. |\n| ROLE_ORGANIZATION_ADMIN | Organization Creator | Organization Creators have the same privileges as users, but can also create new organizations. |\n| ROLE_USER | User | Users can be invited to existing organizations and engagements, but they cannot create new organizations. |\n| ROLE_CLIENT | Client | Clients must be [invited to connect](https://support.mindbridge.ai/hc/en-us/articles/1500001350402) to MindBridge. Once the client account has been activated via email, access is limited to the page that allows them to set up a data source. |\n| ROLE_MINDBRIDGE_SUPPORT | MindBridge Support | MindBridge Support accounts have limited access to engagements, enabling them to assist with specific support requests. |\n| * ROLE_ADMIN and `serviceAccount` equals `true` | API Token User | API Token Users are non-human user accounts linked to unique API tokens. Any action that an API takes will be attributed to this user account. |\n\n### Enabling and disabling users\n\nThe `enabled` property can be used to enable and disable user accounts within a single tenant. If a user’s account is _disabled_, they will\nno longer have access to the tenant until they are _enabled_.\n\n**Note:** A user who is disabled in one tenant will still be able to access other tenants where they are enabled.\n\n### Account activation emails\n\nWhen a new user is created, they will be sent an **account activation email**. This email contains a link they must use to activate their\naccount. Until the account is activated, the user will not be able to sign in.\n\nActivation links expire after 7 days, but additional account activation emails can be sent using the `Resend Activation Link` endpoint.\n\nWhen a user who is `disabled` becomes `enabled` again, they will be sent an activation email. These users must use the account activation\nlink before they can sign in.\n\n### API token permissions\n\nThe following table details the actions that users of the API may be permitted to take:\n\n| Role | Read | Query | Create | Update user enabled status | Update user role | Can update role to | Delete | Can be sent account activation emails |\n|----------------------|:----:|:-----:|:------:|:--------------------------:|:----------------:|:------------------:|:------:|:-------------------------------------:|\n| App Admin | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ |\n| User Admin | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Organization Manager | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| User | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Client | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ |\n| MindBridge Support | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |\n| API Token | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |\n\nApp Admins cannot be deleted, nor have their roles updated. This restriction prevents an API token from accidentally locking out a\nlegitimate administrator, resulting in the loss of administration to the entire tenant.\n\nMindBridge Support and API Token Users cannot be created, updated, deleted or sent account activation emails to. These accounts are\nautomatically managed by support access requests and API tokens accordingly.\n\nClient users serve a special purpose and cannot be created, nor have their roles updated. These users can only provide access to an\nintegration service.\n","x-tag-expanded":"false"},{"name":"Account Groups","description":"An **account group** is an individual entry within an account grouping. The lowest-level category for each account group\nmust be mapped\nto [MindBridge Account Classification (MAC) codes](https://support.mindbridge.ai/hc/en-us/articles/22819163288343-MindBridge-Account-Classification-code-system-MAC-v-2),\nand optionally, assigned account tags for further classification.\n\nAccount groups can be updated as needed until the account grouping is published. Once published, existing account groups\ncannot be updated, but new account groups can be added to the account grouping using the `append` endpoint.\n","x-tag-expanded":"false"},{"name":"JSON Tables","description":"A JSON Table is a collection of tabular data structured into one or more pages of JSON arrays, imported into the MindBridge platform. Each\narray consists of objects, where for each object, the keys represent column headers and their associated values represent the data for\nthat column. Data must be uploaded sequentially, one page at a time, as concurrent page uploads are not supported.\n\nOnce all data has been appended to the JSON Table, a file manager file can be created using the file manager's\n`Import From JSON Table` endpoint, which merges all the parts into a concatenated CSV file.\n\nThe headers in the resulting file are based on those specified in the JSON Table, and the order of the headers will correspond to the\nsequence in which each unique header appears in the source data.\n\nFor example, given the following two pages of JSON Table data:\n\n```json\n[\n {\n \"Account\": \"First Account\",\n \"Amount\": \"10.11$\",\n \"Date\": \"2020-01-01\"\n },\n {\n \"Account\": \"Second Account\",\n \"Amount\": \"89.99$\",\n \"Date\": \"2020-01-02\"\n }\n]\n```\n\n```json\n[\n {\n \"Account\": \"Third Account\",\n \"Amount\": \"33.31$\",\n \"Date\": \"2020-01-03\"\n },\n {\n \"Account\": \"Fourth Account\",\n \"Amount\": \"10.11$\",\n \"Memo\": \"My Memo\"\n }\n]\n```\n\nThe resulting CSV file would be the following:\n```\n\"Account\",\"Amount\",\"Date\",\"Memo\"\n\"First Account\",\"10.11$\",\"2020-01-01\",\"\"\n\"Second Account\",\"89.99$\",\"2020-01-02\",\"\"\n\"Third Account\",\"33.31$\",\"2020-01-03\",\"\"\n\"Fourth Account\",\"10.11$\",\"\",\"My Memo\"\n```\n\n### JSON Table entities cleanup\nJSON Table entities that are more than **7 days** old will be deleted. To avoid data loss, ensure that all JSON Table entries are imported\nas file manager files once all the data has been imported.\n","x-tag-expanded":"false"},{"name":"Transaction ID Previews","description":"**Transaction ID previews** contain the data behind our transaction ID generation and analysis system. In this object, analytic data about a proposed transaction ID is provided to guide the selection of the most appropriate, granular transaction ID, with as few single-entry transactions as possible. An appropriate transaction ID enables MindBridge’s analytics engine to detect anomalies that are more relevant and insightful.\n","x-tag-expanded":"false"},{"name":"Connection Data Sources","description":"**Connection Data Sources** represent a table from an external connection that has been registered for use in MindBridge. A connection data\nsource stores a chosen table ID and a schema defining which columns to include — the schema does not need to include all columns from the\ntable, allowing you to exclude columns that are not needed. Once created, data can be retrieved from the source for use in MindBridge.\n","x-tag-expanded":"false"},{"name":"Saved Filters","description":"**Saved Filters** are used to filter data tables in order to easily and repeatedly extract insights on large sets of data. The saved filters\nendpoint allows for easy creation and management of saved filters, and validation of the applicability of filters across different data\ntables and even across engagements and organizations.\n\nSaved filters contain **conditions**, which are definitions on how the filter applies constraints on the underlying data table. These\nconditions contain a field, type and various parameters depending on the condition type.\n\nThe field can either specify a column in the data table (with some constraints), or a special case field name, which provides the ability to\nfilter the data table on features of the dataset that are not represented by a specific column.\n\nThe condition type determines how the data will be filtered. Which types can be applied depends on the data table's column type and other\nproperties. For special case filters the type parameters depend on the underlying data table and analysis features. See the *Condition\nTypes* section for more details.\n\nSaved filters can be used to filter general ledger, accounts payable, and accounts receivable analyses. They cannot be used as part of\ncustom analysis types.\n\n### Validation\n\nSaved filters are different from other entities in the MindBridge API in that the filter conditions are not immediately validated upon\ncreation. This is because they may or may not be applicable to different target data tables based on the analysis features and the column\npresent in the data table, and their types. To validate whether a given filter is compatible on a target data table a `/validate` endpoint\nis provided, which will return a list of errors and warnings explaining incompatibilities between the provided filter and the target data\ntable.\n\n### Display fields\n\nSaved Filter conditions include various fields that are used in generating a description of the filter for each condition. This description\nis visible in the web application and presents the filter in plain English.\n\nIn the web application, filters can only be created in either a library or analysis context, and have immediate context with which to base\nthe display fields on. The API doesn't require this context, and can therefore create filters in contexts the web application can't, such as\non an organization or engagement without any analyses. In order to generate a sensible filter description for use in the web application,\nusers of the API can optionally provide these values, and verify if they align with a target data table using the `/validate` endpoint.\n\n### Filter types\n\nFilters can be of one of four types:\n\n`LIBRARY`, `ORGANIZATION`, `ENGAGEMENT` and `PRIVATE`\n\nLibrary, organization, and engagement types determine which parent entity type the filter is stored under, and in some cases restrict which\nfields can be used on those filters.\n\nPrivate filters function like organization filters, but they are only accessible by the user that created them. This also applies to the API\nusers, who can only see private filters created by that same token user. The API cannot be used to access private filter created by other\nusers, including other token users.\n\n### Filter data type\n\nFilter data type is used to determine what kind of data the filter intends to target, and can be set to the values: `TRANSACTION_FILE`,\n`ENTRIES_FILE` or `LIBRARY_ADMIN_TABLE`.\n\nThe `TRANSACTION_FILE` value corresponds to the transactions data table in a general ledger analysis.\n\nThe `ENTRIES_FILE` corresponds to a general ledger, accounts payable and accounts receivable entries tables.\n\n### Disallowed fields\n\nThe following fields cannot be used as conditions:\n\n- `account`, if the analysis is a general ledger analysis\n- `accounts` or `mac_hierarchy`, if the data table column type is `ARRAY_STRINGS`\n- `txid`, `rowid` or `matched_entry_id`, if the data table column type is `INT64`\n- `total_amt`, if the data table column type is `MONEY_100`\n- `invoice_paid_zero_date`, if the data table column type is `DATE_TIME`\n- Any data table column whose field name starts with \"`cp_score_`\"\n- Any data table column whose field name starts with \"`risk`\", and has data table column type `PERCENTAGE_FIXED_POINT`\n- Any column that does not have a data table column type of `KEYWORD_SEARCH` or `LEGACY_ACCOUNT_TAG_EFFECTS`, and without one of\n `equalitySearch`, `rangeSearch` and `containsSearch` being `true`\n\n### Condition types\n\nCondition's types are determined by their `type` field. Some condition types also contain subtypes, which further determine what fields are\nrequired to configure them.\n\nBroadly there are 2 types of conditions: Group type conditions, and value conditions.\n\nGroup conditions don't require a field or other properties, and instead contain a sub-list of conditions that are applied against the data\ntable entries.\n\nValue conditions filter a specific field and cover all other condition types other than `GROUP`. In addition to `field` they have the\nfollowing properties:\n\n- `fieldLabel` - An optional display name for the field which is used in the full condition description.\n- `negated` - When `true` the condition will instead exclude any entry that matches the condition from the result.\n- `fullConditionDescription` - A description of the filter in plain English, using the provided display values such as `fieldLabel` and\n others.\n\n#### `GROUP` type conditions\n\nGroup conditions, also known as rules, don't require a field, and contain both an operator and a list of conditions. The operation can be\neither `AND` or `OR`, and the condition will match records that meet all or any of the conditions, depending on the operator. Group\nconditions can be nested, and the value of the `condition` field on a saved filter must be a group condition, though it can be either type.\n\n```json\n{\n \"type\": \"GROUP\",\n \"operator\": \"AND\",\n \"conditions\": [\n ...\n ]\n}\n```\n\n#### `STRING` type conditions\n\nString type conditions compare a field against a specific string value. This condition can only be applied to the following special case\nfields:\n\n| **Field** | **Name** | **Allowed Values** | **Notes** |\n|------------------|-----------------|---------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|\n| `accountScoping` | Account Scoping | SIGNIFICANT, INSIGNIFICANT, UNSCOPED | Only allowed on general ledger analyses. |\n| `riskGroup` | Risk Group | Not `GENERAL` or `MindBridge Score`

ASSETS, LIABILITIES_EQUITY, PROFIT_LOSS, or any custom account group by `category` name. | Only allowed on general ledger analyses. |\n\n#### `STRING_ARRAY` type conditions\n\nString array conditions compare the field against a set of string values. It can be applied to any data table column with the following\nproperties:\n\n- Data table column type is `STRING` and `caseInsensitivePrefixSearch` is `true`.\n- Data table column type is `KEYWORD_SEARCH`.\n\n#### `CONTROL_POINT` type conditions\n\nControl point conditions match a set of selected control points within their respective high, medium and low risk scores.\n\nThe control point type can only be used with the field `cp_failed` and when the data table column type is `BOOLEAN_FLAGS`.\n\nThe `riskLevel` property can be set to `HIGH_RISK`, `MEDIUM_RISK` or `LOW_RISK`.\n\nThe `controlPoints` contains a list of control point selection models, with the following properties:\n\n- `id` - The unique ID of the control point prefixed with `custom_`, in the case of custom control points, or the symbolic name, in the case\n of MindBridge control points.\n- `name` - The display name of the control point. Optional.\n- `symbolicName` - The symbolic name of the control point. In the case of custom control points it must be the symbolic name of the\n underlying MindBridge control point.\n- `isRulesBased` - Must be `true` if the target control point is rules based. Rules based control points can only have high and low risk\n values, and therefore cannot be selected with a `riskLevel` of `MEDIUM_RISK`.\n\nHere is an example of both a MindBridge and a custom control point:\n\n```json\n{\n \"type\": \"CONTROL_POINT\",\n \"field\": \"cp_failed\",\n \"fieldLabel\": \"Control point\",\n \"negated\": false,\n \"riskLevel\": \"HIGH_RISK\",\n \"controlPoints\": [\n {\n \"id\": \"custom_682fab332f732c4d0b8d1ced\",\n \"name\": \"Expert Rules - Example Custom Control Point\",\n \"symbolicName\": \"journal_entry_flat_expert_flow_v2\",\n \"rulesBased\": false\n },\n {\n \"id\": \"journal_entry_two_digit_benford_v2\",\n \"name\": \"2 Digit Benford\",\n \"symbolicName\": \"journal_entry_two_digit_benford_v2\",\n \"rulesBased\": false\n }\n ]\n}\n```\n\n#### `ACCOUNT_NODE_ARRAY` type conditions\n\nAccount node array type conditions match an entry if it's within an account group or specific account code within varying contexts.\n\nThis condition type can only be used for general ledger analyses.\n\nThe following fields use the account node array type:\n\n| **Field** | **Name** | **Notes** |\n|---------------------------|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------|\n| `account_hierarchy_codes` | Account | Matches if the entry is associated with an account within the selection of accounts. |\n| `increasingCredits` | Increasing Credits | Matches if the entry is associated with an account within the selection of accounts and the credit value within those accounts are increasing. |\n| `increasingDebits` | Increasing Debits | Matches if the entry is associated with an account within the selection of accounts and the debit value within those accounts are increasing. |\n\nBoth `increasingCredits` and `increasingDebits` are special case fields and can be used even if they are not present as data table columns.\n\nWhen using an `ACCOUNT_NODE_ARRAY` condition a list of account selections must be provided with the following properties:\n\n- `name` - The display name of the account. Optional.\n- `code` - The account group or account ID of the account.\n- `useAccountId` - If `true` the condition should match the account id from the account mapping instead of the account group ID for this\n selection.\n\nHere is an example of a condition that matches both an account group and a mapped account:\n\n```json\n{\n \"type\": \"ACCOUNT_NODE_ARRAY\",\n \"field\": \"increasingCredits\",\n \"fieldLabel\": \"Increasing credits\",\n \"negated\": false,\n \"accountSelections\": [\n {\n \"name\": \"Assets\",\n \"code\": \"1000\",\n \"useAccountId\": false\n },\n {\n \"name\": \"Accounts Payable\",\n \"code\": \"21011\",\n \"useAccountId\": true\n }\n ]\n}\n```\n\n#### `TYPEAHEAD_ENTRY` type condition\n\nThe typeahead entry type condition can be used to match one or more string values within a known set of allowed values. They are used both\nto filter columns that have been mapped to certain MindBridge field and additional columns marked as filterable. There are also additional\nspecial case field that can be used for various purposes.\n\n| **Field** | **Name** | **Notes** |\n|-------------------------------|-------------------------|-----------------------------------------------------------------------------------------|\n| `status` | Status | Matches entries which contain corresponding tasks with the selected statuses. |\n| `memo` | Suspicious keyword | Allowed values are from the Suspicious keyword control point. |\n| `entriesFundRestriction` | Fund restriction | Allowed values are `restricted`, `unrestricted` and `none` |\n| `transactionsFundRestriction` | Fund restriction | Allowed values are `restricted`, `unrestricted`, `both` and `none` |\n| `account_tags_increasing` | Increasing account tags | Matches entries whose accounts using the provided account tags have increased in value. |\n| `account_tags_decreasing` | Decreasing account tags | Matches entries whose accounts using the provided account tags have decreased in value. |\n\nIn addition to the above field, any data table column with the type `STRING` or `ARRAY_STRINGS` and an ID set for `typeaheadDataTableId` can\nbe used in a typeahead entry condition. The allowed values for typeahead based fields are any of the values present in the column. Typeahead\ncolumn values are not currently validated, so no warnings will be produced if a value that is not present in the column is used as an entry.\n\nA value selection for a typeahead entry has three properties: `lookupId`, which is the value being selected, `displayName`, which is the\ndisplay name of the underlying value, and `hideLookupId`, which hides the lookup ID when displaying the full display name.\n\nHere is an example of a typeahead entry condition:\n\n```json\n{\n \"type\": \"TYPEAHEAD_ENTRY\",\n \"field\": \"entriesFundRestriction\",\n \"fieldLabel\": \"Fund restriction\",\n \"negated\": false,\n \"values\": [\n {\n \"lookupId\": \"none\",\n \"displayName\": \"No fund information\",\n \"hideLookupId\": true\n },\n {\n \"lookupId\": \"restricted\",\n \"displayName\": \"Restricted funds\",\n \"hideLookupId\": true\n }\n ]\n}\n```\n\n#### `POPULATIONS` type condition\n\nThe populations type condition matches any entries that are within the provided populations.\n\nPopulation type conditions can only be used in general ledger analyses, and can only be used in saved filters at the analysis level.\n\nPopulations type conditions must use the special case field `population`. Population type conditions can only be applied to general ledger\nanalyses.\n\nTo include a population in the condition it simply needs to be added to the `populationIds` field. In addition to IDs, population category\nnames can be present in the population IDs list for display purposes.\n\nHere is an example of a populations filter:\n\n```json\n{\n \"type\": \"POPULATIONS\",\n \"field\": \"population\",\n \"fieldLabel\": \"Population\",\n \"negated\": false,\n \"populationIds\": [\n \"Custom Category\",\n \"67d06587edfa507f5e80c7c2\"\n ]\n}\n```\n\n#### `RISK_SCORE` type condition\n\nA risk score condition matches entries whose risk score falls within the constraints configured in the condition.\n\nThe specific risk score being tested is selected by setting the `riskScoreId` field to the field of the target risk score, as found in the\ndata table column metadata.\n\nRisk scores are used on the special case fields `riskScoresHml` or `riskScoresPercentage`, depending on the library configuration for the\nanalysis. Additionally, the `riskScoreType` must be set to `HML` or `PERCENT` accordingly.\n\nFor HML type risk score conditions a set of the values `HIGH`, `MEDIUM`, `LOW` or `UNSCORED`, which match entries that fall within the\nconfigured risk range for the selected risk score.\n\nHere is an example of a HML risk score filter on a custom risk score:\n\n```json\n{\n \"type\": \"RISK_SCORE\",\n \"field\": \"riskScoresHml\",\n \"fieldLabel\": \"Risk score\",\n \"negated\": false,\n \"riskScoreType\": \"HML\",\n \"riskScoreId\": \"risk_67d2f16d9ffead02b4f54aad\",\n \"riskScoreLabel\": \"My custom risk score\",\n \"values\": [\n \"MEDIUM\",\n \"UNSCORED\"\n ]\n}\n```\n\nFor percentage risk score conditions a `riskScorePercentType` of `MORE_THAN`, `LESS_THAN`, `BETWEEN`, `CUSTOM_RANGE` or `UNSCORED` is set.\nThese determine how the rule will be applied, and which parameters can be set.\n\nFor `UNSCORED` only entries that haven't been scored are matched.\n\nFor `MORE_THAN` and `LESS_THAN`, a `value` parameter must be set with a number from 0 to 10,000, representing a percentage between 0% to\n100%, and matching entries with scores above or below the specified value.\n\nFor `CUSTOM_RANGE` a pair of percentage values `rangeStart` and `rangeEnd` are set. Any entries whose score falls between the values will be\nmatched.\n\n`BETWEEN` is functionally equivalent to custom range, with the restriction that the `rangeStart` and `rangeEnd` must equal the start and end\nvalues of one of the risk score's risk range entries (high, medium or low risk). In the web application this is represented as the user\nselecting an existing risk range, rather than manually entering a pair of percentages as custom range requires.\n\nHere is an example of a percentage risk score filter:\n\n```json\n{\n \"type\": \"RISK_SCORE\",\n \"field\": \"riskScoresPercentage\",\n \"fieldLabel\": \"Risk score\",\n \"negated\": false,\n \"riskScoreType\": \"PERCENT\",\n \"riskScoreId\": \"risk\",\n \"riskScoreLabel\": \"MindBridge score\",\n \"riskScorePercentType\": \"MORE_THAN\",\n \"value\": 0\n}\n```\n\n#### `MONETARY_FLOW` type condition\n\nThe `MONETARY_FLOW` type condition matches entries that are part of a monetary flow corresponding to the filter's configuration.\n\nThis condition type can only be used in general ledger analyses.\n\nOnly the special case field `monetarySpecificFlow` can be used with this condition type.\n\nThe property `monetaryFlowType` must be set to one of the following values, which determine what kind of flow to include entries from:\n`SIMPLE_FLOW`, `COMPLEX_FLOW` or `SPECIFIC_FLOW`.\n\nFor simple and complex flow values, entries that are part of simple account to account flows, or flows that are too complex to assign to an\naccount are included.\n\nFor specific flows a pair of credit and debit account selections, `creditAccount` and `debitAccount` accordingly are set. These use the same\nparameters as the account node array condition. In addition, the code may be set to `complex` to match flows whose credit or debit account\nis\ndetermined to be too complex to match.\n\nAdditionally for specific flows a value for `specificMonetaryFlowType` must be set, which further filters the entries based on the specific\nvalue of the flow. The following values can be used:\n\n- `SPECIFIC_VALUE` - by setting the `value` field to a currency amount only entries whose flow amount matches the value exactly will be\n matched.\n\n- `MORE_THAN` - by setting the `value` field to a currency amount only entries where the flow value exceeds that amount will be matched.\n\n- `BETWEEN` - a pair of `rangeStart` and `rangeEnd` values only entries whose value is between the specified currency amounts.\n\nCurrency amounts are expressed as integers, and do not include decimal places. They follow the same formatting rules as `MONEY_100` fields.\nSee the *Data Formats* section for more information.\n\nHere is an example of a monetary flow condition:\n\n```json\n{\n \"type\": \"MONETARY_FLOW\",\n \"field\": \"monetarySpecificFlow\",\n \"fieldLabel\": \"Monetary flow\",\n \"negated\": false,\n \"monetaryFlowType\": \"SPECIFIC_FLOW\",\n \"creditAccount\": {\n \"name\": \"Flows too complex to determine a match\",\n \"code\": \"complex\",\n \"useAccountId\": false\n },\n \"debitAccount\": {\n \"name\": \"Operational assets\",\n \"code\": \"1100\",\n \"useAccountId\": false\n },\n \"specificMonetaryFlowType\": \"BETWEEN\",\n \"rangeStart\": 0,\n \"rangeEnd\": 1037979412\n}\n```\n\n#### `MONEY` type condition\n\nThe money type condition matches entries whose value for the provided field is within the configured bounds of the condition.\n\nThe money type condition can be applied to any field with a data table column type of `MONEY_100`.\n\nThe following `monetaryValueType` values can be used to configure how the entries are matched:\n\n- `MORE_THAN` - Matches entries whose value is more than the configured `value` field.\n- `LESS_THAN` - Matches entries whose value is less than the configured `value` field.\n- `SPECIFIC_VALUE` - Matches entries whose value is equal to the configured `value` field.\n- `BETWEEN` - Matches entries whose value is between the provided `rangeStart` and `rangeEnd` values.\n\nThe values for `value`, `rangeStart` and `rangeEnd` follow the same formatting rules as the `MONEY_100` data type.\n\nHere is an example of a money type condition:\n\n```json\n{\n \"type\": \"MONEY\",\n \"field\": \"bs_delta\",\n \"fieldLabel\": \"Balance sheet impact\",\n \"negated\": false,\n \"monetaryValueType\": \"MORE_THAN\",\n \"value\": 0\n}\n```\n\n#### `MATERIALITY` type condition\n\nThe materiality type condition matches entries that are above, below or above a percentage of the threshold.\n\nThe materiality type condition can be applied to general ledger analyses with a materiality judgment value set, and can only be applied to\nthe special case `materiality` field.\n\nThe following `materialityOption` values can be used to configure how the entries are matched:\n\n- `ABOVE` - Matches entries whose value is above the materiality threshold.\n- `BELOW` - Matches entries whose value is below the materiality threshold.\n- `PERCENTAGE` - Matches entries whose value is above a percent of the materiality threshold. The percent is a decimal number set in the\n `value` field, and can be greater than 100%.\n\nHere is an example of a materiality type condition, and represents a percentage value of 110.25%:\n\n```json\n{\n \"type\": \"MATERIALITY\",\n \"field\": \"materiality\",\n \"fieldLabel\": \"Materiality\",\n \"negated\": false,\n \"materialityOption\": \"PERCENTAGE\",\n \"value\": 110.25\n}\n```\n\n#### `NUMERICAL` type condition\n\nThe numerical type condition matches entries whose value for the provided field is within the configured bounds of the condition.\n\nThis condition can be applied to any field with a data table column types of `INT32`, `INT64`, `FLOAT32` and `FLOAT64`.\n\nThe following `numericalValueType` values can be used to configure how the entries are matched:\n\n- `MORE_THAN` - Matches entries whose value is more than the configured `value` field.\n- `LESS_THAN` - Matches entries whose value is less than the configured `value` field.\n- `SPECIFIC_VALUE` - Matches entries whose value is equal to the configured `value` field.\n- `BETWEEN` - Matches entries whose value is between the provided `rangeStart` and `rangeEnd` values.\n\nHere is an example of a numerical type condition:\n\n```json\n{\n \"type\": \"NUMERICAL\",\n \"field\": \"entries_count\",\n \"fieldLabel\": \"Entries count\",\n \"negated\": false,\n \"numericalValueType\": \"MORE_THAN\",\n \"value\": 0\n}\n```\n\n#### `DATE` type condition\n\nThe date type condition matches entries whose value for the provided field is within the configured bounds of the condition.\n\nThe numerical type condition can be applied to any field with a data table column types of `DATE` and `DATE_TIME`.\n\nThe following `numericalValueType` values can be used to configure how the entries are matched:\n\n- `AFTER` - Matches entries whose value is more than the configured `value` field.\n- `BEFORE` - Matches entries whose value is less than the configured `value` field.\n- `SPECIFIC_VALUE` - Matches entries whose value is equal to the configured `value` field.\n- `BETWEEN` - Matches entries whose value is between the provided `rangeStart` and `rangeEnd` values.\n\nThe values for `value`, `rangeStart` and `rangeEnd` should be expressed as ISO date strings, without a timestamp or timezone.\n\nHere is an example of a date type condition:\n\n```json\n{\n \"type\": \"DATE\",\n \"field\": \"effective_date\",\n \"fieldLabel\": \"Effective date\",\n \"negated\": false,\n \"dateType\": \"SPECIFIC_VALUE\",\n \"value\": \"2010-01-01\"\n}\n```\n\n### Legacy filters\n\nSaved filters with the `legacyFilterFormat` field set to `true` are using a legacy format which is not supported by the API, and will have\ntheir `condition` property set to `null`.\n","x-tag-expanded":"false"},{"name":"Account Groupings","description":"An **account grouping** is a custom financial hierarchy that MindBridge uses to interpret accounts and the relationships\nbetween them, and defines how accounts are aggregated and presented in analysis results across the MindBridge platform\nand reports. When you create an account grouping, you must map account groups\nto [MindBridge Account Classification (MAC) codes](https://support.mindbridge.ai/hc/en-us/articles/22819163288343-MindBridge-Account-Classification-code-system-MAC-v-2).\nThis mapping enables MindBridge to effectively analyze datasets across any engagements and analyses that use a given\naccount grouping.\n\n## Creating a new account grouping\n\nTo create a new account grouping, import a\ncompleted [MACv2_AccountGroupingTemplate](https://support.mindbridge.ai/hc/en-us/articles/22819163288343)* Excel file or\na _CCH group trial balance_ file as a chunked file. Import the new file using the `/import-from-chunked-file` endpoint.\nThis action will create a new account grouping entry and a complete set of account groups and MAC mappings, as defined\nin the imported file.\n\n***Note:** The exportable template is located at the bottom of the linked article. Once you have the template, follow\nthe steps linked here to [create a new account grouping](https://support.mindbridge.ai/hc/en-us/articles/360056330754).\n\n## Appending to an existing account grouping\n\nTo append to an existing account grouping, export the most current version of your MindBridge account grouping, then add\nnew account groups to the bottom of the account grouping, starting from the first empty row. Next, save the file and\nimport it as a chunked file, then import the new file using the `/append-from-chunked-file` endpoint. This action will\nadd the new account groups and mappings to the end of the existing account grouping.\n\n**Note:** _CCH group trial balance_ files may not be used when appending to an existing account grouping.\n\n## Publishing an account grouping\n\nAccount groupings must be published before they can be added to a library. In order to be published, errors must be\nresolved for all account groups within the account grouping, and the lowest-level account categories for each account\ngroup must be mapped to a MAC code. To publish an account grouping, set the `publishStatus` field to `PUBLISHED`.\n\nUpon publishing, all the account groups within the account grouping are finalized and can no longer be updated, however\nthe account grouping can still be appended to. Appending will change the account grouping’s `publishStatus`\nto `UNPUBLISHED_CHANGES`.\n\nFrom the `UNPUBLISHED_CHANGES`, the account grouping can be re-published after fixing all account group errors, then\nupdating the `publishStatus` field to `PUBLISHED`.\n","x-tag-expanded":"false"},{"name":"File Results","description":"**File results** are the results of asynchronous processes that produce files. They can be exported once the async result reports that the task\nis complete.\n\nFile results are restricted to the API token that started the export process. File results created by another user or API token cannot be accessed.\n","x-tag-expanded":"false"},{"name":"Analysis Types","description":"**Analysis types** describe the features of each analysis, such as specific account mappings or whether the analysis\nsupports fund accounts, as well as the source configurations used for a given analysis type.\n\n[Learn more about the types of analyses available within MindBridge](https://support.mindbridge.ai/hc/en-us/articles/360058198913-Analysis-types-available-in-MindBridge)\n","x-tag-expanded":"false"},{"name":"Admin reports","description":"**Admin reports** are reports that can be run to summarize user and system activity.\n\nCurrently, the following reports can be run:\n- **Activity report** – This report lists activity between the specified dates and filters\n- **Analysis overview report** – This report lists analyses and the associated risk score results.\n- **Row usage report** – This report lists analyses completed within your specified date range along with the number of rows in each primary current period data file.\n","x-tag-expanded":"false"},{"name":"Analysis Results","description":"An **analysis result** is a logical grouping of financial data that has been run through a series of rules-based,\nstatistical, and machine-learning tests.\n\nEach time an analysis is run (or re-run), it will generate a distinct analysis result. Running an analysis multiple\ntimes will result in multiple sets of analysis results.\n\n### Task and data table migration for the periodic time frame\n\nWhen an analysis using the _periodic_ time frame is re-run, any existing tasks or data tables created on the latest\nanalysis result will be migrated to the new analysis result. Upon completion, the `id` field will be updated to a new\nvalue, and the `analysisResultId` field will be updated with the ID of the new analysis result.\n\n**Note**: This does not apply to _full_ or _interim_ time frames, wherein rolling forward, duplicating, or converting interim\nanalyses causes a new analysis being created, with the original analysis results' tasks and data tables remaining in\nplace.\n","x-tag-expanded":"false"},{"name":"File Info","description":"_File Info_ is an entity used to describe metadata for a file within the MindBridge application. Every file has an associated File Info\nrecord. If the system detects tabular data in the file, the File Info is automatically upgraded to a Tabular File Info, which includes\nadditional metadata describing the table and columns.\n\nThe type of file info is determined by the `type` field. If the value is `FILE_INFO`, the record is a file info. If the value is\n`TABULAR_FILE_INFO`, the record is a tabular file info.\n","x-tag-expanded":"false"},{"name":"Engagement Account Groups","description":"An **engagement account group** is an individual entry within an engagement account grouping. \n","x-tag-expanded":"false"},{"name":"Chunked Files","description":"Importing **chunked files** allows you to bypass the 8 GiB import limit by splitting a large file into smaller files (“chunks”). Each chunk\ncan be individually retried in case of a network failure, but the entire import process must be completed within 7 days.\n\n### How it works:\n\n- Create a chunked file.\n- Add chunked file parts.\n- Create a file manager file from a chunked file.\n","x-tag-expanded":"false"},{"name":"Analysis Sources","description":"An **analysis source** represents a table of data (often from a file) that is required to run an analysis. These objects\ncontain ingestion metadata, including data formats, density and frequency analysis, and much more. The analysis sources\nare the core object types used during the data import process and provide the data necessary to complete the analysis.\n\n### Analysis source type\n\nAn **analysis source type** determines which features are available during the analysis source import process, and must\nbe selected when creating an analysis source.\n\nRefer to the `Analysis Type` endpoint to determine which analysis source types can be applied to a given analysis.\n\nRefer to the `Analysis Source Type` endpoint to determine the features and column mappings for a given analysis source\ntype.\n\n#### Additional Analysis Data\n\n**Additional data** is available as an analysis source type for all analysis types. When creating an additional data\nanalysis source, the `additionalDataColumnField` property must be set to the additional data field added during the\nimport of other source types. A list of the analysis' additional data columns is available from its `importantColumns`\nfield.\n\n### Async create and update responses\n\nUnlike other entities, the analysis source entity may perform long-running background jobs as a result of a `Create`\nor `Update` call. As a result, calls to `Create` or `Update` an analysis source will return an **async result** entity.\nUsers should poll this entity and await its completion before re-loading the analysis source and making further changes.\n\n### Analysis Source workflow\n\nUnlike other entities, importing an analysis source relies on a multi-step workflow process. Which steps are included is\ndetermined by which **features** the analysis source type supports. These features include multiple **workflow states**,\nwhich determine the current location of the analysis source within the workflow.\n\nThere are two workflow state types: **step states** and **transition states**.\n\n- Step states allow users to configure properties on an analysis source, or the analysis more broadly. Some step states\n are provided for the MindBridge web app interface and may have little to no meaningful interaction with the API.\n\n- Transition states indicate that the analysis source is performing work asynchronously, and will eventually transition\n to another state.\n\nHere is a list of features and their possible workflow states:\n\n| Feature | State name | State type |\n|--------------------------|----------------------------------|------------|\n| Feature independent | STARTED | Transition |\n| Format detection | DETECTING_FORMAT | Transition |\n| | FORMAT_DETECTED | Step |\n| | FORMAT_DETECTION_COMPLETED | Transition |\n| Data validation | ANALYZING_COLUMNS | Transition |\n| | COLUMNS_ANALYZED | Step |\n| Column mapping | DATA_VALIDATION_CONFIRMED | Step |\n| | COLUMN_MAPPINGS_CONFIRMED | Transition |\n| Effective date metrics | ANALYZING_EFFECTIVE_DATE_METRICS | Transition |\n| | EFFECTIVE_DATE_METRICS_ANALYZED | Step |\n| | ANALYSIS_PERIOD_SELECTED | Transition |\n| Transaction ID selection | CHECKING_INTEGRITY | Transition |\n| | INTEGRITY_CHECKED | Step |\n| Parse | PARSING | Transition |\n| | PARSED | Step |\n| Review Funds | FUNDS_REVIEWED | Step |\n| Confirm Settings | SETTINGS_CONFIRMED | Transition |\n| Feature independent | COMPLETED | Step |\n| | FAILED | Step |\n\n### Transitioning between states\n\nTo transition between workflow states, set the `targetWorkflowState` property to the name of the desired workflow state.\nOnce set, the workflow will attempt to advance to that state, passing through all states between the current and target\nstate without stopping.\n\nIf the target state is a transition state, the workflow will continue past it until it reaches the next step state.\n\nWhen creating a new analysis source, if `targetWorkflowState` is not set, the workflow will advance to the first valid\nstep state, then stop.\n\nThese rules apply to all transitions, with a few exceptions:\n\n- If an [ungrouped format](https://support.mindbridge.ai/hc/en-us/articles/10437018464407) is detected within the\n selected source file, the FORMAT_DETECTED state will be ignored. Setting `targetWorkflowState` to FORMAT_DETECTED on a\n source file containing ungrouped data will result in the workflow continuing to the next step state.\n- If the final workflow state type is a step state, the workflow will advance to COMPLETED instead of stopping. This is\n often the case with the PARSED state, as it is the final feature state for many source types.\n- If an error occurs during a workflow process, the workflow will transition to FAILED. The cause of the failure can\n often be found in the async result or in the analysis source’s `errors` property.\n\n### Feature properties\n\nCertain feature properties may only be read or set on or after specific workflow states. Here is a breakdown of the\nrelationship between workflow states and analysis source properties:\n\n#### Format detection\n\nIf a [grouped data](https://support.mindbridge.ai/hc/en-us/articles/10437018464407) format is detected, the workflow\nwill stop at the FORMAT_DETECTED state. Then, the `detectedFormat` property will return the name of the detected format.\nFrom there, the `applyDegrouper` can be set. If `applyDegrouper` is true then when advancing to the next step, the\nrelevant formatter will be used to convert the file into a readable format. If not, the file will be used as is.\n\n`applyDegrouper` can be set immediately upon creation of the analysis source. If this is done and grouped data is\ndetected within the workflow, instead of stopping on FORMAT_DETECTED it will implicitly apply the formatter and continue\nto the next workflow state.\n\nIf the formatter is used in either scenario, the `degrouperApplied` property will be set to `true`.\n\n#### Data validation\n\nUpon reaching the COLUMNS_ANALYZED state, the `fileInfo` property is populated with information, including metadata for\nthe individual columns (which is available as part of the `columnData` property) and for the file as a whole (available\nunder the `metadata` property).\n\nMetrics contain a `state` property, which may appear as `PASS`, `WARN`, or `FAIL`. These serve as status indicators and\nmay warn of problems with the file’s data.\n\n#### Column mapping\n\nUpon reaching the DATA_VALIDATION_CONFIRMED state, the `proposedVirtualColumns`, `proposedColumnMappings`,\nand `proposedAmbiguousColumnResolutions` properties are applied, and the `virtualColumns`, `columnMappings`,\nand `ambiguousColumnResolutions` properties are updated accordingly. More information on the proposed fields is\navailable in the **Full source import automation** section.\n\nIf no value is present for `proposedColumnMappings`, then a set of recommended column mappings will be applied to the\nfile.\n\nThe API handles column mapping by assigning a column from the file to a MindBridge field with a compatible data type. To\ndo this, an entry in the `columnMappings` array must contain both the `position` of the column from the source file and\nthe target `mindbridgeField` to assign it to.\n\n#### Virtual columns\n\n[Virtual columns](https://support.mindbridge.ai/hc/en-us/articles/10442701235223) can be added, modified, and removed by\nchanging the `virtualColumns` property. Once created, virtual columns have a `position` property that can be used in\ncolumn mapping; the metrics in `fileInfo` will be updated accordingly.\n\n#### Ambiguous column resolution\n\nWhile MindBridge can detect usable date formats, including different formats that appear within a single column, in some\ncases the format of date and currency fields cannot be determined from the dataset provided. For example, the date\nformat `1/2/2022` could either be January 2nd, 2022, or February 1st, 2022, depending on which date format is being\nused. When ambiguous columns are detected, an entry in the `ambiguousColumnResolutions` property will be created with a\nlist of all the possible formats in its `ambiguousFormats` property. To resolve this issue, the correct format from the\nlist of `ambiguousFormats` should be set in the `selectedFormat` property.\n\n#### Additional data\n\nUnmapped columns may be added as additional data columns. To do so, a special mapping must be created with\nthe `mindbridgeField` left blank, and a value set for `additionalColumnName`. Once this source has completed the import\nprocess, a new source with the same name set for `additionalDataColumnField` and the source type ID corresponding to the\nAdditional Data Source Type can be created.\n\n#### Effective date metrics\n\nThis step confirms that the file’s entries fall within the current analysis period. Once this state has been reached,\nthe `analysis-sources/{analysisSourceId}/effective-date-metrics` endpoint can be used to get a set of metrics regarding\nthe number of entries within the source’s analysis period. A `period` value can be used to set the resolution of the\nhistogram to days, weeks, or months.\n\n#### Transaction ID selection\n\nTransitioning into the [transaction ID](https://support.mindbridge.ai/hc/en-us/articles/8740577590295) selection feature\nwill generate a preview of the selected transaction by `proposedTransactionIdSelection` and set\nthe `transactionIdSelection` property to this value. If no value is set, a set of potential transaction ID selections\nwill be generated and what is determined to be the best selection, according to MindBridge's internal tooling, will be\nset to the `transactionIdSelection` property.\n\nDetails about these **transaction ID previews** can be viewed via the transaction ID preview endpoints.\n\nWhen on the INTEGRITY_CHECKED state, changing the `transactionIdSelection` will either select an existing preview with\nthe same properties as the currently selected transaction ID, or, if it doesn’t exist, will generate a new preview for\nthe selection, and select it.\n\n#### Review funds and confirm settings\n\nThese features have no direct interaction with the API and are only relevant with respect to the web application.\n\n### Full source import automation\n\nWhen creating a new analysis source it is possible to perform the entire import process by setting\nthe `targetWorkflowState` property to `COMPLETED`. As a result of performing all workflow steps at once, some features\nrequire input to be provided immediately, specifically the column mapping and transaction ID selection features. To\nprovide these values, separate `proposed` fields can be set in order to provide these values instead of relying on the\ndefault column mapping and transaction ID selection behavior.\n\n#### Column mapping\n\nThe `proposedVirtualColumns`, `proposedColumnMappings`, and `proposedAmbiguousColumnResolutions` properties provide the\nability to pre-define their respective properties ahead of running validation. These proposed versions of the properties\nhave some key differences from their applied counterparts:\n\n- As validation has not been run and the column positions have not been determined, the `position` property for virtual\n columns isn’t available. As an alternative to the `proposedColumnMappings` property, a `virtualColumnIndex` property\n is available and should be used to reference a specific virtual column definition in the `proposedVirtualColumns`\n array.\n- `proposedAmbiguousColumnResolutions` are not able to determine the ambiguous formats ahead of validating the file, so\n the `ambiguousFormats` property is not available. Additionally, the `position` property can only refer to a physical\n column, and not a virtual one.\n\n#### Transaction ID selection\n\nThe `proposedTransactionIdSelection` property can be defined immediately upon creating the analysis source. If it is set\nwhile entering the transaction ID selection feature then a transaction ID preview will only be generated for that\nselection, and `transactionIdSelection` property will be updated accordingly.\n","x-tag-expanded":"false"},{"name":"Data Connection Tables","description":"**Connection Tables** represent individual tables discovered from an external connection. When a Connection's \"Get Tables\" operation\nis performed, the results are stored as Connection Table records. Each record contains the table's identifier, display name, and\nschema (column definitions), and is linked back to both the Connection and the Connection Tables Result that produced it.\n\nIf the \"Get Tables\" operation is run multiple times on the same Connection, tables are added, removed, or updated based on their\n`tableId`, rather than creating duplicate entries.\n","x-tag-expanded":"false"},{"name":"Analysis Type Configuration","description":"An analysis type configuration is the configuration of analysis properties for a given analysis type. Libraries, engagements and analyses\nall have analysis type configurations as child entities for each of their supported analysis types.\n\nWhen an engagement is created, it will copy the analysis type configuration from the related library, and again when an analysis is created\nit will copy the analysis type configuration from its related engagement in turn.\n\nAnalysis type configuration allows configuration of settings related to control points, including grouping and weighting of control points,\nas well as the selection of related risk ranges.\n","x-tag-expanded":"false"},{"name":"Connection Tables Results","description":"**Connection Tables Results** represent the outcome of running a Connection's \"Get Tables\" operation. The Connection Tables Result\nis stored as a record containing the total number of tables found. The individual tables discovered are stored as separate\nConnection Table records linked back to this Connection Tables Result.\n","x-tag-expanded":"false"},{"name":"Reporting Period Configuration","description":"The reporting period configuration allows users to define specific reporting periods for analysis.\n\nThe request requires both monthly and weekly reporting periods to ensure comprehensive coverage of reporting needs. Both lists must refer to the same date ranges.\n\nThe monthly reporting period entries should include the period number, quarter number, the year, start date, and end date for each period.\nSimilarly, the weekly reporting period entries should contain the week number, year, start date, and end date.\n","x-tag-expanded":"false"},{"name":"Organizations","description":"**Organizations** represent each business/client/company/entity that you analyze with MindBridge. Organizations house all of your client’s\nengagements (audit/analysis), account mappings, and any other data imported into MindBridge for that client.\n","x-tag-expanded":"false"},{"name":"Webhooks","description":"The webhooks entity provides a way to configure webhook integrations with other systems. Once created and active webhooks will send event payloads to the configured URL.\n\nSee the webhooks documentation for more information on receiving webhooks.\n","x-tag-expanded":"false"},{"name":"Libraries","description":"**Libraries** allow teams to standardize their engagements firm-wide by setting the parameters for each type of analysis\navailable in MindBridge, including account groupings, ratios, filters, and risk scores.\n\nNew libraries must be created based on an existing library (i.e., a “base library”). When a base library is selected,\nits point-in-time settings and permissions are copied to the new library.\n\nThe following system libraries can be selected as base libraries:\n\n* MindBridge for-profit\n* MindBridge not-for-profit\n* MindBridge not-for-profit with funds\n* MindBridge review\n","x-tag-expanded":"false"},{"name":"Analyses","description":"An **analysis** is a logical grouping of financial data that can be run through a series of rules-based, statistical, and machine-learning\ntests in order to generate analysis results. Once a set of financial data has been configured and imported, an analysis can be run to\nproduce an _Analysis Result_ entity, which contains insights into the provided data.\n\nAnalyses require a number of supporting documents in order to run successfully. After running an analysis, you can view\nthe results and leverage them to support your audit work.\n\n### Analysis Type\n\nWhen creating an analysis, you must identify the **type of analysis** you want to create. To do so, set\nthe `analysisTypeId` field to the corresponding ID for the specific analysis type.\n\nThe analysis type must be supported by the library used by the engagement. The supported analysis types are listed in\nthe library’s `analysisTypeIds` field.\n\nRefer to the Analysis Type endpoint to select an analysis type and review its settings.\n\n### Analysis Periods\n\nAn **analysis period** is the date range for a given period under analysis. MindBridge supports the analysis of one\ncurrent period and up to four prior periods.\n\nTo add analysis periods, add analysis period objects to the appropriate locations in the `analysisPeriods` array.\n\nTo modify analysis periods, update the `analysisPeriods` array.\n\n**Note**: Analysis periods will appear in order, with the most recent appearing in the current period. Periods must not\noverlap or have date gaps between them. The `interimAsAtDate` must not be set for prior periods.\n\nTo resize an analysis period, update the `startDate`, `interimAsAtDate` and/or `endDate` to the desired date. See\n“Interim Time Frames” below for details.\n\nTo remove an analysis period, remove the target object in the `analysisPeriods` array. The current period (index `0`)\nmay not be removed, nor analysis periods that have associated analysis sources.\n\nIf you remove the ID from an analysis period, the analysis period will be removed and a new period with the same values\nwill be added, resulting in a new ID being returned.\n\n[Learn more about analysis periods](https://support.mindbridge.ai/hc/en-us/articles/360056524494-What-is-an-analysis-period)\n\n#### Full Time Frames\n\nThe **full time frame** allows your team to import a complete\ndataset. [Learn more](https://support.mindbridge.ai/hc/en-us/articles/19029762802967)\n\nTo create an analysis with a full time frame, the `interim` and `periodic` fields must be `false` in the body of the\nCreate\nAnalysis request.\n\n#### Interim Time Frames\n\nThe **interim time frame** allows your team to import a portion of a dataset before\nyear-end. [Learn more](https://support.mindbridge.ai/hc/en-us/articles/19030451443223)\n\nTo create an analysis with an `interim` time frame, the interim field must be `true` in the body of the Create Analysis\nrequest. You must also provide an `interimAsAtDate` for the current period, which defines the last day of the interim\nperiod.\n\n**Note**: The `interim` field cannot be combined with the `periodic` field, which must be `false` if `interim` is `true`.\n\n**Note**: The interim time frame must be supported by the analysis type in order to use it.\n\n#### Periodic Time Frames\n\nThe **periodic time frame** allows your team to import data on an ongoing basis, such as monthly or quarterly, over the\ncourse of the analysis period. [Learn more](https://support.mindbridge.ai/hc/en-us/articles/19034004957591)\n\nTo create an analysis with a periodic time frame, the `periodic` field must be `true` in the body of the Create Analysis\nrequest.\n\n**Note**: The `periodic` field cannot be combined with the `interim` field, which must be `false` if `periodic`\nis `true`.\n\n**Note**: The periodic time frame must be supported by the analysis type in order to use it. Additionally, the periodic\ntime frame and the risk monitoring dashboard are disabled by default in the library's analysis configuration, and must\nbe enabled by an App Admin before they can be accessed.\n\n### Currency\n\nThe **currency code** indicates the type of currency used in the analysis.\n\nA valid currency code must be provided in the `currencyCode` field.\n\n**Note**: MindBridge supports the majority of currencies indicated\nin [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). Currency code labels used within MindBridge may not\nmatch ISO labels exactly, but support for those currencies still exists.\n\n**Note**: MindBridge does not support currencies that use more than two decimal places.\n\n### Reporting Periods\n\nMindBridge supports custom reporting periods. If your organization has a custom reporting period configuration, you can specify it when\ncreating an analysis by providing the `reportingPeriodConfigurationId` field with the ID of the desired reporting period configuration.\n\nIf no reporting period configuration ID is provided, it inherits the reporting period set in the engagement. On an update, the existing\nvalue will be used if no value is provided.\n","x-tag-expanded":"false"},{"name":"Engagements","description":"An **engagement** represents a service or activity performed for one of your clients. When you create an engagement within an organization,\nit will always be associated with that organization. Engagements house the analyses you run within MindBridge, like the general ledger\nanalysis.\n\nTypically engagements represent an annual audit, so using MindBridge over the course of several years will result in multiple engagements\nwithin an organization, each corresponding to a fiscal year.\n\nThe reportingPeriodConfigurationId is an optional field. If provided, it will use the custom reporting period configuration specified by\nthe ID. If not provided, it will default to the default reporting period configuration.\n","x-tag-expanded":"false"},{"name":"Risk Ranges","description":"Risk ranges are customized scoring parameters for grouping risk scores into low, medium, and high risk range bounds.\n\nEach risk range bound has a low threshold and a high threshold. These values represent percentage values with two-decimal precision. The thresholds are\n`PERCENTAGE_FIXED_POINT` values, which are percentages with two decimal places, represented as numbers from 0 to 10,000. For more details on this data format,\nrefer to the Data Formats section of the API reference.\n\nYou are not required to utilize all risk range bounds, however you must define at least two ranges. The values must be continuous with no gaps, and no\noverlapping values. If a low risk range has a high threshold of 15% (represented as `1500`), the low threshold of the next risk range must start at 15.01% (\nrepresented as `1501`).\n\nRisk ranges are designed to be used in conjunction with analysis type configurations.\n\nRisk ranges can only be added to libraries, and are copied onto new engagements that select the library when created. Once copied to the engagement, the risk\nrange can no longer be updated.\n","x-tag-expanded":"false"}],"paths":{"/v1/webhooks/{webhookId}":{"get":{"tags":["Webhooks"],"summary":"Read Webhook","description":"Read an existing Webhook, identified by its ID.\n\n### Permissions\n- `api.webhooks.read`","operationId":"readWebhook","parameters":[{"name":"webhookId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhook_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Webhooks"],"summary":"Update Webhook","description":"Update an existing webhook, identified by its ID.\n\n### Permissions\n- `api.webhooks.write`","operationId":"updateWebhook","parameters":[{"name":"webhookId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhook_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhook_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Webhooks"],"summary":"Delete Webhook","description":"Delete an existing **Webhook**.\n\n### Permissions\n- `api.webhooks.delete`","operationId":"deleteWebhook","parameters":[{"name":"webhookId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/users/{userId}":{"get":{"tags":["Users"],"summary":"Read User","description":"Read an existing user, identified by its ID.\n\n### Permissions\n- `api.users.read`","operationId":"readUser","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Users"],"summary":"Update User","description":"Update an existing user, identified by their user ID.\n\nOnly the `enabled` and `role` properties can be updated, with some exceptions.\n\nThe `enabled` property cannot be changed for users with the following roles:\n- `ROLE_ADMIN`\n- `ROLE_MINDBRIDGE_SUPPORT`\n- API Token Users with the `serviceAccount` property set to `true`\n\nThe `role` property cannot be changed for users with the following roles:\n- `ROLE_ADMIN`\n- `ROLE_CLIENT`\n- `ROLE_MINDBRIDGE_SUPPORT`\n- API Token Users with the `serviceAccount` property set to `true`\n\n### Rate limit\n\nThis endpoint is subject to a maximum limit of 100 requests per hour. Once the limit is exceeded, the `X-User-Hour-Limit-Remaining` response\nheader will be set, and it’s value will indicate the number of seconds until the rate limit resets.\n\n**Note:** This rate limit is shared with the `Create User` and `Resend activation email` endpoints. Once the limit is reached, subsequent calls to\nany of these endpoints will fail until the rate limit resets.\n\n### Permissions\n- `api.users.write`","operationId":"updateUser","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Users"],"summary":"Delete User","description":"Delete an existing user, identified by its ID.\n\nUsers with the following roles cannot be deleted:\n\n- `ROLE_ADMIN`\n- `ROLE_MINDBRIDGE_SUPPORT`\n- API Token Users with the `serviceAccount` property set to `true`\n\n### Permissions\n- `api.users.delete`","operationId":"deleteUser","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/tasks/{taskId}":{"get":{"tags":["Tasks"],"summary":"Read Task","description":"Read an existing task, identified by its ID.\n\n### Permissions\n- `api.tasks.read`","operationId":"readTask","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Tasks"],"summary":"Update Task","description":"Update an existing task, identified by its ID.\n\n### Permissions\n- `api.tasks.write`","operationId":"updateTask","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Tasks"],"summary":"Delete Task","description":"Delete an existing task, identified by its ID.\n\n### Permissions\n- `api.tasks.delete`","operationId":"deleteTask","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/saved-filters/{filterId}":{"get":{"tags":["Saved Filters"],"summary":"Read Saved Filter","description":"Read a saved filter, identified by its ID.\n","operationId":"readSavedFilter","parameters":[{"name":"filterId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilter_Read"}}}}}},"put":{"tags":["Saved Filters"],"summary":"Update Saved Filter","description":"Update a saved filter, identified by its ID.\n\n### Permissions\n- `api.filters.write`","operationId":"updateSavedFilter","parameters":[{"name":"filterId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilter_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilter_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Saved Filters"],"summary":"Delete Saved Filter","description":"Delete a saved filter, identified by its ID.\n\n### Permissions\n- `api.filters.delete`","operationId":"deleteSavedFilter","parameters":[{"name":"filterId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/risk-ranges/{riskRangesId}":{"get":{"tags":["Risk Ranges"],"summary":"Read Risk Range","description":"Retrieve an existing set of risk ranges by its ID.\n\n### Permissions\n- `api.risk-ranges.read`","operationId":"readRiskRange","parameters":[{"name":"riskRangesId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRiskRanges_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Risk Ranges"],"summary":"Update Risk Range","description":"Update an existing set of risk ranges by its ID.\n\n### Permissions\n- `api.risk-ranges.write`","operationId":"updateRiskRange","parameters":[{"name":"riskRangesId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRiskRanges_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRiskRanges_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Risk Ranges"],"summary":"Delete Risk Range","description":"Delete an existing set of risk ranges.\n\n### Permissions\n- `api.risk-ranges.delete`","operationId":"deleteRiskRange","parameters":[{"name":"riskRangesId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/populations/{populationTagId}":{"get":{"tags":["Populations"],"summary":"Read Population","description":"Read an existing population, identified by its ID.\n\n### Permissions\n\n- `api.libraries.read`\n- `api.engagements.read`\n- `api.analyses.read`\n","operationId":"readPopulation","parameters":[{"name":"populationTagId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPopulationTag_Read"}}}}}},"put":{"tags":["Populations"],"summary":"Update Population","description":"Update an existing population, identified by its ID.\n\nEngagement populations cannot be updated.\n\n### Permissions\n\n- `api.libraries.write`\n- `api.analyses.write`\n","operationId":"updatePopulation","parameters":[{"name":"populationTagId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPopulationTag_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPopulationTag_Read"}}}}}},"delete":{"tags":["Populations"],"summary":"Delete Population","description":"Delete a population, identified by its ID.\n\nEngagement populations cannot be deleted.\n\n### Permissions\n\n- `api.libraries.delete`\n- `api.analyses.delete`\n","operationId":"deletePopulation","parameters":[{"name":"populationTagId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}}}},"/v1/organizations/{organizationId}":{"get":{"tags":["Organizations"],"summary":"Read Organization","description":"Read an existing organization, identified by its ID.\n\n### Permissions\n- `api.organizations.read`","operationId":"readOrganization","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganization_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Organizations"],"summary":"Update Organization","description":"Update an existing organization, identified by its ID.\n\n### Permissions\n- `api.organizations.write`","operationId":"updateOrganization","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganization_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganization_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Organizations"],"summary":"Delete Organization","description":"Delete an existing organization, identified by its ID.\n\n### Permissions\n- `api.organizations.delete`","operationId":"deleteOrganization","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/libraries/{libraryId}":{"get":{"tags":["Libraries"],"summary":"Read Library","description":"Read an existing library, identified by its ID.\n\n### Permissions\n- `api.libraries.read`","operationId":"readLibrary","parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Libraries"],"summary":"Update Library","description":"Update an existing library, identified by its ID.\n\nRestrictions\n\n- System libraries cannot be updated.\n\n### Permissions\n- `api.libraries.write`","operationId":"updateLibrary","parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Libraries"],"summary":"Delete Library","description":"Delete an existing library, identified by its ID.\n\nRestrictions\n\n* System libraries cannot be deleted.\n* Libraries in use by engagements cannot be deleted.\n* Libraries that are used as the basis of other libraries cannot be deleted.\n\n### Permissions\n- `api.libraries.delete`","operationId":"deleteLibrary","parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/{fileManagerEntityId}":{"get":{"tags":["File Manager"],"summary":"Read File Manager Entity","description":"Read an existing **file manager entity**, identified by its ID.\n\n### Permissions\n- `api.file-manager.read`","operationId":"readFileManagerEntity","parameters":[{"name":"fileManagerEntityId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ApiFileManagerDirectory_Read"},{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}]}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["File Manager"],"summary":"Update File Manager Entity","description":"Update an existing **file manager entity**, identified by its ID.\n\n### Permissions\n- `api.file-manager.write`","operationId":"updateFileManagerEntity","parameters":[{"name":"fileManagerEntityId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ApiFileManagerDirectory_Update"},{"$ref":"#/components/schemas/ApiFileManagerFile_Update"}]}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ApiFileManagerDirectory_Read"},{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}]}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["File Manager"],"summary":"Delete File Manager Entity","description":"Delete an existing **file manager entity**, identified by its ID.\n\n### Permissions\n- `api.file-manager.delete`","operationId":"deleteFileManagerEntity","parameters":[{"name":"fileManagerEntityId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/engagements/{engagementId}":{"get":{"tags":["Engagements"],"summary":"Read Engagement","description":"Read an existing engagement, identified by its ID.\n\n### Permissions\n- `api.engagements.read`","operationId":"readEngagement","parameters":[{"name":"engagementId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagement_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Engagements"],"summary":"Update Engagement","description":"Update an existing engagement, identified by its ID.\n\n### Permissions\n- `api.engagements.write`","operationId":"updateEngagement","parameters":[{"name":"engagementId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagement_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagement_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Engagements"],"summary":"Delete Engagement","description":"Delete an existing engagement, identified by its ID.\n\n### Permissions\n- `api.engagements.delete`","operationId":"deleteEngagement","parameters":[{"name":"engagementId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groups/{engagementAccountGroupId}":{"get":{"tags":["Engagement Account Groups"],"summary":"Read Engagement Account Group","description":"Read an existing engagement account group, identified by its ID.\n\n### Permissions\n- `api.engagement-account-groupings.read`","operationId":"readEngagementAccountGroup","parameters":[{"name":"engagementAccountGroupId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Engagement Account Groups"],"summary":"Update Engagement Account Group","description":"Update an existing engagement account group by its ID.\n\nUpdates to existing engagement account groups must adhere to the following conditions:\n\n- Engagement account groups cannot be hidden or have their code changed if they are in use.\n- Updated codes must be unique within the engagement account grouping.\n- In order to ensure the integrity of the balance sheet and income statement MAC codes in the 1000, 2000, or 3000 range cannot be changed to\n codes in the 4000 or 5000 range, and vice versa.\n- Engagement account groups that are part of a MAC account grouping cannot be updated.\n\n### Permissions\n- `api.engagement-account-groupings.write`","operationId":"updateEngagementAccountGroup","parameters":[{"name":"engagementAccountGroupId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Engagement Account Groups"],"summary":"Delete Engagement Account Group","description":"Delete an existing engagement account group by its ID.\n\nThe following restrictions apply when deleting engagement account groups:\n\n- Engagement account groups that are in use by an account mapping, or have child groups that are in use, cannot be deleted.\n- Engagement account groups derived from a library-level account grouping cannot be deleted.\n- Engagement account groups that are part of a MAC account grouping cannot be deleted.\n\n### Permissions\n- `api.engagement-account-groupings.write`","operationId":"deleteEngagementAccountGroup","parameters":[{"name":"engagementAccountGroupId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}},"security":[{"mindbridge-api":[]}]}},"/v1/databricks-auth":{"put":{"tags":["Databricks Authorization"],"summary":"Update Databricks Authorization","description":"Update an existing Databricks authorization.\n\n### Permissions\n\n- `api.connections.write`\n","operationId":"updateDatabricksAuthorization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Read"}}}}}},"post":{"tags":["Databricks Authorization"],"summary":"Create Databricks Authorization","description":"Create a new Databricks authorization.\n\n### Permissions\n\n- `api.connections.write`\n","operationId":"createDatabricksAuthorization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Read"}}}}}}},"/v1/api-tokens/{apiTokenId}":{"get":{"tags":["API Tokens"],"summary":"Read API Token","description":"Read an existing API token, identified by its ID.\n\n### Permissions\n- `api.api-tokens.read`","operationId":"readApiToken","parameters":[{"name":"apiTokenId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApiToken_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["API Tokens"],"summary":"Update API Token","description":"Update an existing API token, identified by its ID.\n\n### Permissions\n- `api.api-tokens.write`","operationId":"updateApiToken","parameters":[{"name":"apiTokenId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApiToken_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApiToken_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["API Tokens"],"summary":"Delete API Token","description":"Delete an existing API token, identified by its token ID.\n\nThis will de-authorize the token and automatically delete the associated API Token User.\n\n### Permissions\n- `api.api-tokens.delete`","operationId":"deleteApiToken","parameters":[{"name":"apiTokenId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-type-configuration/{analysisTypeConfigurationId}":{"get":{"tags":["Analysis Type Configuration"],"summary":"Read","description":"Retrieve an existing analysis type configuration by its ID.\n\n### Permissions\n- `api.analysis-type-configuration.read`","operationId":"read","parameters":[{"name":"analysisTypeConfigurationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisTypeConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Analysis Type Configuration"],"summary":"Update","description":"Update an existing analysis type configuration by its ID.\n\nThe configurable properties of an analysis type configuration are grouped into Risk Groups. They can be configured as follows:\n\n- Risk groups can be enabled and disabled by setting the `disabled` property. Only engagement-level analysis type configuration can be\n disabled.\n- The risk range for use by the risk group can be set by the `selectedRiskRange`, and must also be included in the list of\n `applicableRiskRanges`.\n- A `filter` field can optionally be set to limit the risk group to only apply to a set of accounts, rather than all accounts.\n- The control point weights can be adjusted by setting the value of the `controlPointWeights` key-value map, where the key is the control\n point's symbolic name. Setting a control point weight to `0` disables the control point within the risk group.\n\nAdditionally, analysis type configurations cannot be updated if:\n\n- The `system` or `template` properties are `true`.\n- The analysis type configuration is at the analysis level, with a defined `analysisId`.\n\n### Permissions\n- `api.analysis-type-configuration.write`","operationId":"update","parameters":[{"name":"analysisTypeConfigurationId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisTypeConfiguration_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisTypeConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-sources/{analysisSourceId}":{"get":{"tags":["Analysis Sources"],"summary":"Read Analysis Source","description":"Read an existing analysis source, identified by its ID.\n\n### Permissions\n- `api.analysis-sources.read`","operationId":"readAnalysisSource","parameters":[{"name":"analysisSourceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisSource_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Analysis Sources"],"summary":"Update Analysis Source","description":"Update an existing analysis source, identified by its ID.\n\n### Permissions\n- `api.analysis-sources.write`","operationId":"updateAnalysisSource","parameters":[{"name":"analysisSourceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisSource_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Analysis Sources"],"summary":"Delete Analysis Source","description":"Delete an existing analysis source, identified by its ID.\n\n### Permissions\n- `api.analysis-sources.delete`","operationId":"deleteAnalysisSource","parameters":[{"name":"analysisSourceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses/{analysisId}":{"get":{"tags":["Analyses"],"summary":"Read Analysis","description":"Read an existing analysis, identified by its ID.\n\n### Permissions\n- `api.analyses.read`","operationId":"readAnalysis","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysis_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Analyses"],"summary":"Update Analysis","description":"Update an existing analysis, identified by its ID.\n\nIf no `reportingPeriodConfigurationId` is provided, the existing value will be kept.\n\n### Permissions\n- `api.analyses.write`","operationId":"updateAnalysis","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysis_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysis_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Analyses"],"summary":"Delete Analysis","description":"Delete an existing analysis, identified by its ID.\n\n### Permissions\n- `api.analyses.delete`","operationId":"deleteAnalysis","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/account-mappings/{accountMappingId}":{"get":{"tags":["Account Mappings"],"summary":"Get Account Mapping","description":"Read an existing account mappings, identified by its ID.\n\n### Permissions\n- `api.analyses.read`","operationId":"getAccountMapping","parameters":[{"name":"accountMappingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountMapping_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Account Mappings"],"summary":"Update Account Mapping","description":"Update an existing account mapping, identified by its ID.\n\n### Permissions\n- `api.analyses.write`","operationId":"updateAccountMapping","parameters":[{"name":"accountMappingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountMapping_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountMapping_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groups/{accountGroupId}":{"get":{"tags":["Account Groups"],"summary":"Read Account Group","description":"Read an existing account group, identified by its ID.\n\n### Permissions\n- `api.account-groupings.read`","operationId":"readAccountGroup","parameters":[{"name":"accountGroupId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Account Groups"],"summary":"Update Account Group","description":"Update an existing account group, identified by its ID.\n\n## Lowest level only properties\n\nThe following properties can only be set on the lowest-level category of each account group:\n\n- `macCode`\n- `accountTags`\n\n### Permissions\n- `api.account-groupings.write`","operationId":"updateAccountGroup","parameters":[{"name":"accountGroupId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGroup_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groupings/{accountGroupingId}":{"get":{"tags":["Account Groupings"],"summary":"Read Account Grouping","description":"Read an existing account grouping, identified by its ID.\n\n### Permissions\n- `api.account-groupings.read`","operationId":"readAccountGrouping","parameters":[{"name":"accountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGrouping_Read"}}}}},"security":[{"mindbridge-api":[]}]},"put":{"tags":["Account Groupings"],"summary":"Update Account Grouping","description":"Update an existing account grouping, identified by its ID.\n\n**Note:** If LLM AG Mapping is enabled for the tenant, publishing the account grouping will automatically mark all suggested Mac Code mappings as Verified.\n\n### Permissions\n- `api.account-groupings.write`","operationId":"updateAccountGrouping","parameters":[{"name":"accountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGrouping_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGrouping_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Account Groupings"],"summary":"Delete Account Grouping","description":"Delete an existing account grouping, identified by its ID.\n\n### Permissions\n- `api.account-groupings.delete`","operationId":"deleteAccountGrouping","parameters":[{"name":"accountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/webhooks":{"post":{"tags":["Webhooks"],"summary":"Create Webhook","description":"Create a new webhook.\n\n### Permissions\n- `api.webhooks.write`","operationId":"createWebhook","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhook_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhook_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/webhooks/query":{"post":{"tags":["Webhooks"],"summary":"Query Webhooks","description":"Query webhooks, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `name` - `STRING`\n- `url` - `STRING`\n- `events` - `LIST`\n\n### Permissions\n- `api.webhooks.read`","operationId":"queryWebhooks","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiWebhook_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/webhook-event-logs/query":{"post":{"tags":["Webhook event logs"],"summary":"Query Webhook Event Logs","description":"Query webhook event logs, optionally applying a filter.\n\n### Queryable Fields\n\n- `status` - `STRING`\n- `webhookId` - `OBJECT_ID`\n- `attemptStartDate` - `DATE_TIME`\n- `eventType` - `STRING`\n- `responseStatusCode` - `INT32`\n\n### Permissions\n- `api.webhooks.read`","operationId":"queryWebhookEventLogs","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiWebhookEventLog_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/users":{"post":{"tags":["Users"],"summary":"Create User","description":"Create a new user.\n\nWhen creating a user, you must provide the user’s email address and a user role. The email address must not be associated with an existing\nuser.\n\nThe following roles may not be created with the `Create User` endpoint:\n\n- `ROLE_MINDBRIDGE_SUPPORT`\n- `ROLE_CLIENT`\n\nUpon creation, an account activation email will be sent to the provided email address.\n\n### Rate limit\n\nThis endpoint is subject to a maximum limit of 100 requests per hour. Once the limit is exceeded, the `X-User-Hour-Limit-Remaining` response\nheader will be set, and it’s value will indicate the number of seconds until the rate limit is reset.\n\n**Note:** This rate limit is shared with the `Update User` and `Resend activation email` endpoints. Once the limit is reached, subsequent\ncalls to any of these endpoints will fail until the rate limit resets.\n\n### Permissions\n- `api.users.write`","operationId":"createUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/users/{userId}/resend-activation-link":{"post":{"tags":["Users"],"summary":"Resend Activation Link","description":"Send a previously invited user a new activation email.\n\nUsers who have `validated` equal to `true` or `enabled` equal to `false` cannot be sent activation emails.\n\n### Rate limit\n\nThis endpoint is subject to a maximum limit of 100 requests per hour. Once the limit is exceeded, the `X-User-Hour-Limit-Remaining` response\nheader will be set, and it’s value will indicate the number of seconds until the rate limit is reset.\n\n**Note:** This rate limit is shared with the `Create User` and `Update User` endpoints. Once the limit is reached, subsequent calls to\nany of these endpoints will fail until the rate limit resets.\n\n### Permissions\n- `api.users.write`","operationId":"resendActivationLink","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/users/query":{"post":{"tags":["Users"],"summary":"Query User","description":"Query users, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `email` - `STRING`\n- `role` - `STRING`\n- `enabled` - `BOOLEAN`\n\n### Permissions\n- `api.users.read`","operationId":"queryUser","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiUser_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/transaction-id-previews/query":{"post":{"tags":["Transaction ID Previews"],"summary":"Query Transaction Id Preview","description":"Query transaction ID previews, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `analysisSourceId` - `OBJECT_ID`\n\n### Permissions\n- `api.analysis-sources.read`","operationId":"queryTransactionIdPreview","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiTransactionIdPreview_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/tasks":{"post":{"tags":["Tasks"],"summary":"Create Task","description":"Create a new task.\n\nTasks are created on entries or transactions based on their transaction type, and row ID or transaction ID fields.\n\nThe analysis type determines which transaction types are permitted to create new tasks:\n\nFor general ledger (for-profit), general ledger (not-for-profit), and general ledger (not-for-profit with funds) analyses:\n\n- `ENTRY`\n- `TRANSACTION`\n\nFor accounts payable analyses:\n\n- `AP_ENTRY`\n- `AP_OUTSTANDING_ENTRY`\n\nFor accounts receivable analyses:\n\n- `AR_ENTRY`\n- `AR_OUTSTANDING_ENTRY`\n\nThe task type determines which of `rowId` and `transactionId` are required when creating a new task. The following table outlines which\nfields must be set for a given task type:\n\n| Type | `rowId` | `transactionId` |\n|------------------------|:-------:|:---------------:|\n| `ENTRY` | ✅ | ✅ |\n| `TRANSACTION` | ❌ | ✅ |\n| `AP_ENTRY` | ✅ | ❌ |\n| `AR_ENTRY` | ✅ | ❌ |\n| `AP_OUTSTANDING_ENTRY` | ✅ | ❌ |\n| `AR_OUTSTANDING_ENTRY` | ✅ | ❌ |\n\nAll tasks created by this endpoint will have `sampleType` set to `MANUAL`.\n\n### Permissions\n- `api.tasks.write`","operationId":"createTask","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/tasks/{taskId}/add-comment":{"post":{"tags":["Tasks"],"summary":"Add Task Comment","description":"Add a comment to a task.\n\n### Permissions\n- `api.tasks.write`","operationId":"addTaskComment","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTaskComment_Create"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTask_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/tasks/query":{"post":{"tags":["Tasks"],"summary":"Query Task","description":"Query tasks, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisResultId` - `OBJECT_ID`\n- `analysisId` - `OBJECT_ID`\n- `analysisTypeId` - `OBJECT_ID`\n- `transaction` - `STRING`\n- `name` - `STRING`\n- `rowId` - `INT64`\n- `transactionId` - `INT64`\n- `status` - `STRING`\n- `assignedId` - `OBJECT_ID`\n- `auditAreas` - `ARRAY_STRINGS`\n- `assertions` - `ARRAY_STRINGS`\n- `type` - `STRING`\n- `sampleType` - `STRING`\n\n### Permissions\n- `api.tasks.read`","operationId":"queryTask","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiTask_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/task-histories/query":{"post":{"tags":["Task History"],"summary":"Query Task History","description":"Query task histories, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `taskId` - `OBJECT_ID`\n\n### Required Query Restrictions\n\nWhen querying for task history, a `taskId` field and either an `$eq` or `$in` term must be\nincluded. Queries without these restrictions will fail.\n\n### Permissions\n- `api.tasks.read`","operationId":"queryTaskHistory","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiTaskHistory_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/saved-filters":{"post":{"tags":["Saved Filters"],"summary":"Create Saved Filter","description":"Create a saved filter.\n\n### Permissions\n- `api.filters.write`","operationId":"createSavedFilter","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilter_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilter_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/saved-filters/validate":{"post":{"tags":["Saved Filters"],"summary":"Validate Saved Filter","description":"Validate a saved filter for correctness against the provided data table ID, returning a list of actionable errors describing\nincompatibilities between the provided filter and table, if any.\n\nAdditionally mismatches between display values in the provided filter and the target data table are returned as actionable errors with\n`severity` set to `WARNING`, which represent display values that are different that those in the target data table.\n\n### Permissions\n- `api.filters.read`","operationId":"validateSavedFilter","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFilterValidateRequest_Create"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Problem_Read"}}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/saved-filters/query":{"post":{"tags":["Saved Filters"],"summary":"Query Saved Filters","description":"Query saved filters, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `analysisTypeId` - `OBJECT_ID`\n- `organizationId` - `OBJECT_ID`\n- `libraryId` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n\n### Permissions\n- `api.filters.read`","operationId":"querySavedFilters","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiFilter_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/risk-ranges":{"post":{"tags":["Risk Ranges"],"summary":"Create Risk Range","description":"Create a new set of risk ranges.\n\nRisk ranges can be created at the library level, by setting an associated library ID. Risk ranges can be created at the engagement level by\nsetting an engagement ID. You must set at least one of these IDs to successfully create a risk range.\n\n### Permissions\n- `api.risk-ranges.write`","operationId":"createRiskRange","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRiskRanges_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRiskRanges_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/risk-ranges/query":{"post":{"tags":["Risk Ranges"],"summary":"Query Risk Range","description":"Query risk ranges with an optional filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `system` - `BOOLEAN`\n- `engagementId` - `OBJECT_ID`\n- `analysisTypeId` - `OBJECT_ID`\n- `libraryId` - `OBJECT_ID`\n\n### Permissions\n- `api.risk-ranges.read`","operationId":"queryRiskRange","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiRiskRanges_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/reporting-period-config":{"post":{"tags":["Reporting Period Configuration"],"summary":"Create Reporting Period Configuration","description":"Create a new reporting period configuration.\n\n### Permissions\n- `api.reporting-period-config.write`","operationId":"createReportingPeriodConfiguration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReportingPeriodConfigurationRequest_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReportingPeriodConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/reporting-period-config/query":{"post":{"tags":["Reporting Period Configuration"],"summary":"Query Reporting Period Configuration","description":"Query reporting period configurations, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n\n### Permissions\n- `api.reporting-period-config.read`","operationId":"queryReportingPeriodConfiguration","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiReportingPeriodConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/populations":{"post":{"tags":["Populations"],"summary":"Create Population","description":"Create a new population.\n\nEngagement populations cannot be created directly, they can only be promoted from an analysis population, or inherited from a library\npopulation.\n\n### Permissions\n\n- `api.libraries.write`\n- `api.analyses.write`\n","operationId":"createPopulation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPopulationTag_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPopulationTag_Read"}}}}}}},"/v1/populations/query":{"post":{"tags":["Populations"],"summary":"Query Populations","description":"Query populations, optionally applying a filter.\n\n### Queryable Fields\n\n- `id - OBJECT_ID`\n- `libraryId - OBJECT_ID`\n- `disabledForAnalysisIds - List`\n- `promotedFromAnalysisId - OBJECT_ID`\n- `engagementId - OBJECT_ID`\n- `analysisId - OBJECT_ID`\n- `derivedFromEngagement - BOOLEAN`\n- `basePopulationId - OBJECT_ID`\n- `name - STRING`\n- `category - STRING`\n- `disabled - BOOLEAN`\n\n### Permissions\n\n- `api.libraries.read`\n- `api.engagements.read`\n- `api.analyses.read`\n","operationId":"queryPopulations","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiPopulationTag_Read"}}}}}}},"/v1/organizations":{"post":{"tags":["Organizations"],"summary":"Create Organization","description":"Create a new organization.\n\n### Permissions\n- `api.organizations.write`","operationId":"createOrganization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganization_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganization_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/organizations/query":{"post":{"tags":["Organizations"],"summary":"Query Organization","description":"Query organizations, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `name` - `STRING`\n- `externalClientCode` - `STRING`\n\n### Permissions\n- `api.organizations.read`","operationId":"queryOrganization","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiOrganization_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/libraries":{"post":{"tags":["Libraries"],"summary":"Create Library","description":"Create a new library.\n\nIf the selected account grouping and the account grouping associated with the selected base library are different,\nMindBridge can attempt to convert the settings (e.g., ratios, filters, populations, etc.) from the base library for use\nwith the accounts in the selected account grouping. To do so, set the `convertSettings` property to `true` — any\naccounts that cannot be converted will be listed in the `conversionWarnings` field.\n\n**Note**: If `warningsDismissed` is also set to `true`, these warnings will not be displayed in the UI.\n\nRestrictions\n\n- The industry tags for the new library must be included in the selected account grouping.\n\n### Permissions\n- `api.libraries.write`","operationId":"createLibrary","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLibrary_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/libraries/query":{"post":{"tags":["Libraries"],"summary":"Query Library","description":"Query libraries, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `basedOnLibraryId` - `OBJECT_ID`\n- `originalSystemLibraryId` - `OBJECT_ID`\n- `accountGroupingId` - `OBJECT_ID`\n- `system` - `BOOLEAN`\n- `archived` - `BOOLEAN`\n\n### Permissions\n- `api.libraries.read`","operationId":"queryLibrary","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiLibrary_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/json-tables":{"post":{"tags":["JSON Tables"],"summary":"Create","description":"Create a new JSON table.\n\n### Permissions\n- `api.file-manager.write`","operationId":"create","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiJsonTable_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/json-tables/{jsonTableId}/append":{"post":{"tags":["JSON Tables"],"summary":"Append","description":"Append data to an existing JSON table. This should not be run in parallel with another append call, or when creating a\nfile manager file, as undefined behaviour may occur.\n\n### Permissions\n- `api.file-manager.write`","operationId":"append","parameters":[{"name":"jsonTableId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonTableBody"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiJsonTable_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-results/query":{"post":{"tags":["File Results"],"summary":"Query File Result","description":"Query file results, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `fileName` - `STRING`\n","operationId":"queryFileResult","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiFileExport_Read"}}}}}}},"/v1/file-manager":{"post":{"tags":["File Manager"],"summary":"Create File Manager Directory","description":"Create a new file manager directory.\n\n### Permissions\n- `api.file-manager.write`","operationId":"createFileManagerDirectory","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerDirectory_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerDirectory_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/transform/merge":{"post":{"tags":["Data Transformation"],"summary":"Create Merge File Job","description":"Merge data from the first sheet of multiple file manager files, then generate a new file with all source data on a single sheet.\n\nPreferred field (new): `mappings` — a list of objects, each with a `fileManagerFileId` and a `columns` array that defines how its columns map into the merged output positions.\n\nExample (`mappings`):\n\n```\n{\n \"mappings\": [\n {\"fileManagerFileId\": \"1234567890abcdef12345678\", \"columns\": [0, 1, 2, 3, 4]},\n {\"fileManagerFileId\": \"2345678901bcdefa23456789\", \"columns\": [1, 0, 2, 4, 3]}\n ]\n}\n```\n\nDeprecated (legacy) field: `fileColumnMappings` — a map from `fileManagerFileId` to its columns array. It is still accepted for backward compatibility but will be removed in a future version.\n\nExample (`fileColumnMappings`):\n\n```\n{\n \"fileColumnMappings\": {\n \"1234567890abcdef12345678\": [0, 1, 2, 3, 4],\n \"2345678901bcdefa23456789\": [1, 0, 2, 4, 3]\n }\n}\n```\n\nThe first mapping entry (in either format) is the master/template file and its columns array defines the output column positions. Columns are numbered from left to right, with the leftmost in a file being position 0. Each subsequent entry defines, for each output column, which column index to use from that file, allowing flexible mapping and positioning in the merged result.\n\n### Permissions\n- `api.file-manager.write`","operationId":"createMergeFileJob","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileMergeRequest_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/query":{"post":{"tags":["File Manager"],"summary":"Query File Manager Entity","description":"Query **file manager entities**, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `type` - `STRING`\n- `engagementId` - `OBJECT_ID`\n- `parentFileManagerEntityId` - `OBJECT_ID`\n- `name` - `STRING`\n- `originalName` - `STRING`\n\n### Permissions\n- `api.file-manager.read`","operationId":"queryFileManagerEntity","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiFileManagerEntity_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/import":{"post":{"tags":["File Manager"],"summary":"Create File Manager File From Multipart File","description":"This endpoint allows you to import a file and set the properties of the resulting File Manager File entity at the same time. The body of the\nrequest is an HTTP form with the `Content-Type` header set to `multipart/form-data`, containing 2 parts: `fileManagerFile` for the **entity\nproperties**, and `file` for the **file**.\n\nThe `fileManagerFile` part must have the `Content-Type` header set to `application/json` and is similar to other entity types.\n\nThe `file` part contains the file to be uploaded and its `Content-Type` header must correspond to the file’s data type. For example, for a\n`.csv` file, the `Content-Type` header for the file part should be `text/csv`.\n\nFor reference, these are the content types associated with common file types:\n\n| File extension | Content type value |\n|----------------|---------------------------------------------------------------------|\n| `.csv` | `text/csv` |\n| `.xls` | `application/vnd.ms-excel` |\n| `.xlsx` | `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` |\n| `.zip` | `application/zip` |\n| `.gz` | `application/gzip` |\n\n### Permissions\n- `api.file-manager.write`","operationId":"createFileManagerFileFromMultipartFile","parameters":[{"name":"content-type","in":"header","schema":{"type":"string","enum":["multipart/form-data"]}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"fileManagerFile":{"$ref":"#/components/schemas/ApiFileManagerFile_Read"},"file":{"type":"string","format":"binary"}},"required":["file","fileManagerFile"]},"encoding":{"fileManagerFile":{"contentType":"application/json"}}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/import-from-json-table":{"post":{"tags":["File Manager"],"summary":"Import From Json Table","description":"Create a new file manager file from the imported parts of a JSON table. The resulting file will be a CSV file, and headers will appear in\nthe same order as the original source.\n\n### Permissions\n- `api.file-manager.write`","operationId":"importFromJsonTable","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiFileManagerFileFromJsonTableRequest_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/import-from-data-table":{"post":{"tags":["File Manager"],"summary":"Import From Data Table","description":"Create a new file manager file by exporting data from a data table. The resulting file will be a CSV file placed in the specified\nfile manager directory. Returns an async result that can be polled for the export outcome.\n\nRequires both `API_DATA_TABLES_READ` and `API_FILE_MANAGER_WRITE` permissions.\n\n### Permissions\n- `api.file-manager.write`","operationId":"importFromDataTable","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataTableExportToFileManagerRequest_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/import-from-chunked/{chunkedFileId}":{"post":{"tags":["File Manager"],"summary":"Create File Manager File From Chunked File","description":"This endpoint validates that all chunks of the import have been received, then completes a chunked file import, given by its ID in the URL,\nand creates a **file manager file** entity.\n\n### Permissions\n- `api.file-manager.write`","operationId":"createFileManagerFileFromChunkedFile","parameters":[{"name":"chunkedFileId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerFile_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}}}}},"deprecated":true,"security":[{"mindbridge-api":[]}]}},"/v1/file-manager/create-from-chunked-file":{"post":{"tags":["File Manager"],"summary":"Create File Manager File From Chunked File","description":"This endpoint validates that all chunks of the import have been received, then completes a chunked file import, given by its ID in the\nmessage body, and creates a **file manager file** entity.\n\n### Permissions\n- `api.file-manager.write`","operationId":"createFileManagerFileFromChunkedFile_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiFileManagerFileFromChunkedFileRequest_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-infos/query":{"post":{"tags":["File Info"],"summary":"Query File Info","description":"Query file infos, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `type` - `TEXT`\n\n### Permissions\n- `api.file-infos.read`","operationId":"queryFileInfo","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiFileInfo_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagements":{"post":{"tags":["Engagements"],"summary":"Create Engagement","description":"Create a new engagement.\n\n### Permissions\n- `api.engagements.write`","operationId":"createEngagement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagement_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagement_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagements/query":{"post":{"tags":["Engagements"],"summary":"Query Engagement","description":"Query engagements, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `organizationId` - `OBJECT_ID`\n- `name` - `String`\n- `billingCode` - `String`\n- `libraryId` - `OBJECT_ID`\n- `engagementLeadId` - `OBJECT_ID`\n\n### Permissions\n- `api.engagements.read`","operationId":"queryEngagement","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiEngagement_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groups":{"post":{"tags":["Engagement Account Groups"],"summary":"Create Engagement Account Group","description":"Create a new engagement account group.\n\nNew engagement account groups must adhere to the following conditions:\n\n- The provided code must be unique within the engagement account grouping.\n- An engagement account group can have no more than three parents in its hierarchy. Setting an engagement account group's parent code such\n that it would have more than three parents is not allowed.\n- Lowest level engagement account groups must include a valid MAC code.\n- Engagement account groups cannot be added to a MAC account grouping.\n\n### Permissions\n- `api.engagement-account-groupings.write`","operationId":"createEngagementAccountGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groups/query":{"post":{"tags":["Engagement Account Groups"],"summary":"Query Engagement Account Groups","description":"Query engagement account groups, optionally applying a filter.\n\n### Required Query Restrictions\n\nWhen querying engagement account groups, an `engagementAccountGroupingId` field and either an `$eq` or `$in` term must be\nincluded. Queries without these restrictions will fail.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `engagementAccountGroupingId` - `OBJECT_ID`\n- `hidden` - `BOOLEAN`\n- `code` - `STRING`\n\n### Permissions\n- `api.engagement-account-groupings.read`","operationId":"queryEngagementAccountGroups","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiEngagementAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groupings/{engagementAccountGroupingId}/export":{"post":{"tags":["Engagement Account Groupings"],"summary":"Export Engagement Account Grouping","description":"Export an engagement account grouping and all of its account groups as an Excel file. Exporting returns an async result,\nwhich can then be used to return a file result.\n\n### Permissions\n- `api.engagement-account-groupings.read`","operationId":"exportEngagementAccountGrouping","parameters":[{"name":"engagementAccountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groupings/query":{"post":{"tags":["Engagement Account Groupings"],"summary":"Query Engagement Account Grouping","description":"Query engagement account groupings, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `accountGroupingId` - `OBJECT_ID`\n\n### Permissions\n- `api.engagement-account-groupings.read`","operationId":"queryEngagementAccountGrouping","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiEngagementAccountGrouping_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/databricks-auth/query":{"post":{"tags":["Databricks Authorization"],"summary":"Query Databricks Authorizations","description":"Query Databricks authorizations, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `connectionId` - `OBJECT_ID`\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"queryDatabricksAuthorizations","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiDatabricksAuthorization_Read"}}}}}}},"/v1/data-tables/{dataTableId}/export":{"post":{"tags":["Data Tables"],"summary":"Export Data Table","description":"Export a data table as a CSV. Exporting returns an async result, which can then be used to return a file result.\n\n### CSV Formatting\n\nBy default, the following CSV formatting is used:\n\n- Comma (`,`) is used as the separator\n- Double quotes (`\"`) are used as the quote character\n- Double quotes (`\"`) are used as the quote escape character: (`\"\"`)\n- No quote escape escape value is set, as it is not needed\n- All headers and values are quoted\n\nThe CSV formatting rules can be customized by setting the `csvConfiguration` field. Any values that are not changed will use their\ndefault value.\n\nIt is strongly recommended to not use newline or whitespace characters, or to use the same characters for both the separator and quote\ncharacters, as they may produce files that can't be read correctly.\n\n### Inner lists\n\n`ARRAY_STRINGS` type fields are formatted as a CSV value.\n\nBy default, they have the following formatting:\n\n- Semicolon (`;`) is used as the separator\n- Single quotes (`'`) are used as the quote character\n- Single quotes (`'`) are used as the quote escape character: (`''`)\n- No quote escape escape value is set, as it is not needed\n- All values are quoted\n\nIn addition to the same recommendations as with CSV formatting it is also strongly recommended to not use the same characters for\nformatting inner lists as are used for CSV formatting, as it may produce a file that can't be read correctly.\n\n### Flag type formatting\n\n`BOOLEAN_FLAGS`, `MAP_SCALARS`, and `LEGACY_ACCOUNT_TAG_EFFECTS` type fields are split into multiple columns based on the column's flags.\nThe field names will be formatted in the following way: `{field}_{flag}`.\n\n### Query Restrictions\n\nColumns with type `KEYWORD_SEARCH` or the `filterOnly` property set to `true` can't be included in data table exports. Attempting to select them as part of\n`fields` will cause the export request to fail.\n\n### Sorting Restrictions\n\nWhen a `sort` is provided in the request body, it will only apply to data table exports under 2 million rows. For exports over 2 million\nrows, no sorting will be applied to improve performance.\n\n### Permissions\n- `api.data-tables.read`","operationId":"exportDataTable","parameters":[{"name":"dataTableId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataTableExportRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}},"423":{"description":"Locked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionableErrorResponse"}}}},"410":{"description":"Gone","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionableErrorResponse"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/data-tables/{dataTableId}/data":{"post":{"tags":["Data Tables"],"summary":"Query Data Table Data","description":"This endpoint allows you to load data from the data table. This data is retrieved as pages and can be sorted and filtered by a\nMindBridge QL query.\n\n## 423 Locked – Response Code\n\nMindBridge automatically loads data table results into fast storage for querying. If you receive an **HTTP 423** response code while\nquerying a table, it means MindBridge is retrieving your data. Wait a few seconds before trying again.\n\n## Filter-only fields\n\nFilter-only fields cannot be included in the `fields` or `sort` properties in a data table query, but they can be included in the `query`\nproperty.\n\n## Populations\n\nIf supported by your analysis, data table entries can be filtered by population, and can include an additional column to indicate all\npopulations that the entry appears within.\n\nTo include or exclude entries by population, use the `$population` and `$not_population` operators as part of the `query`.\n\nFor example, if you had a population with ID `\"643eff00ec992f7ec42ed9f7\"`, you could filter for all entries that appear within the\npopulation.\n\n```json\n{\n \"query\": {\n \"$population\": \"643eff00ec992f7ec42ed9f7\"\n },\n \"fields\": [\n \"rowid\",\n \"txid\",\n \"debit\",\n \"credit\"\n ]\n}\n```\n\nTo include a list of populations that each entry is part of, add the `\"populations\"` column to the `fields` parameter.\n\n**Note**: You cannot use the `population` field as part of a query — instead, use the `$population` and `$not_population` operators.\n\nFor example, the following body will include the `populations` column:\n\n```json\n{\n \"query\": {},\n \"fields\": [\n \"rowid\",\n \"txid\",\n \"populations\",\n \"debit\",\n \"credit\"\n ]\n}\n```\n\n### Permissions\n- `api.data-tables.read`","operationId":"queryDataTableData","parameters":[{"name":"dataTableId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataTableQuery_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataTablePage"}}}},"423":{"description":"Locked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionableErrorResponse"}}}},"410":{"description":"Gone","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionableErrorResponse"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/data-tables/query":{"post":{"tags":["Data Tables"],"summary":"Query Data Table","description":"Query data tables, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisId` - `OBJECT_ID`\n- `analysisResultId` - `OBJECT_ID`\n- `logicalName` - `STRING`\n- `type` - `STRING`\n\n### Permissions\n- `api.data-tables.read`","operationId":"queryDataTable","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MindBridgeQueryTerm"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiDataTable_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/connections":{"post":{"tags":["Connections"],"summary":"Create Connection","description":"Create a new connection.\n\n### Permissions\n\n- `api.connections.write`\n","operationId":"createConnection","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnection_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnection_Read"}}}}}}},"/v1/connections/{connectionId}/test":{"post":{"tags":["Connections"],"summary":"Test Connection","description":"Test an existing connection, identified by its ID. Returns an asynchronous result that can be polled for the test outcome.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"testConnection","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}}}},"/v1/connections/{connectionId}/tables":{"post":{"tags":["Connections"],"summary":"Get Tables For Connection","description":"Retrieve the list of available tables from an existing connection, identified by its ID. Returns an async result that can be polled for the table discovery outcome.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"getTablesForConnection","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}}}},"/v1/connections/{connectionId}/get-data":{"post":{"tags":["Connections"],"summary":"Get Data For Connection","description":"Retrieve data from a specific table in an existing connection. Requires a request body specifying the table, engagement, and optional schema hint, filter, and pagination parameters. Returns an async result that can be polled for the data retrieval outcome. On success, the retrieved data is stored as a Data Table entity.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"getDataForConnection","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionDataRequest_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}}}},"/v1/connections/query":{"post":{"tags":["Connections"],"summary":"Query Connection","description":"Query connections, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `type` - `STRING`\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"queryConnection","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiConnection_Read"}}}}}}},"/v1/connection-test-results/query":{"post":{"tags":["Connection Test Results"],"summary":"Query Connection Test Results","description":"Query connection test results, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `connectionId` - `OBJECT_ID`\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"queryConnectionTestResults","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiConnectionTestResult_Read"}}}}}}},"/v1/connection-tables/query":{"post":{"tags":["Data Connection Tables"],"summary":"Query Connection Tables","description":"Query connection tables, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `tablesResultId` - `OBJECT_ID`\n- `connectionId` - `OBJECT_ID`\n- `tableId` - `STRING`\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"queryConnectionTables","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiConnectionTable_Read"}}}}}}},"/v1/connection-tables-results/query":{"post":{"tags":["Connection Tables Results"],"summary":"Query Connection Tables Results","description":"Query connection tables results, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `connectionId` - `OBJECT_ID`\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"queryConnectionTablesResults","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiConnectionTablesResult_Read"}}}}}}},"/v1/connection-data-source":{"post":{"tags":["Connection Data Sources"],"summary":"Create Connection Data Source","description":"Create a new connection data source.\n\n### Permissions\n\n- `api.connection-data-sources.write`\n","operationId":"createConnectionDataSource","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionDataSource_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionDataSource_Read"}}}}}}},"/v1/connection-data-source/{connectionDataSourceId}/get-data":{"post":{"tags":["Connection Data Sources"],"summary":"Get Data For Connection Data Source","description":"Retrieve data from an existing connection data source, identified by its ID. Requires a request body specifying the engagement and optional filter/pagination. Unlike the Connection /get-data endpoint, you do not specify a schema. The schema defined on the connection data source is used automatically.\n\n### Permissions\n\n- `api.connection-data-sources.read`\n","operationId":"getDataForConnectionDataSource","parameters":[{"name":"connectionDataSourceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataSourceDataRequest_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}}}},"/v1/connection-data-source/query":{"post":{"tags":["Connection Data Sources"],"summary":"Query Connection Data Source","description":"Query connection data sources, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `connectionId` - `OBJECT_ID`\n\n### Permissions\n\n- `api.connection-data-sources.read`\n","operationId":"queryConnectionDataSource","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiConnectionDataSource_Read"}}}}}}},"/v1/chunked-files":{"post":{"tags":["Chunked Files"],"summary":"Create Chunked File","description":"This endpoint allows you to begin the process of importing a file in multiple chunks. Calling this endpoint returns a `{chunkedFileId}` to use\nin subsequent steps.\n\n### Permissions\n- `api.file-manager.write`","operationId":"createChunkedFile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiChunkedFile_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiChunkedFile_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/chunked-files/{chunkedFileId}/part":{"post":{"tags":["Chunked Files"],"summary":"Add Chunked File Part","description":"This endpoint is used to append a `chunkedFilePart` to a chunked file.\n\nChunked file parts must provide an `offset` and a `size` along with content. The first chunked file part must have offset `0`. You may add\nthe same chunked file part multiple times to retry a failed import. When retrying, you must use the same `offset` and `size`. You may add\nchunked file parts out of order.\n\n- Maximum chunked file part size: 50 MiB.\n- Maximum number of chunked file parts in one file: 1000.\n- Maximum overall file size: 20 GiB.\n\nThe body of the request is an HTTP form with the `Content-Type` header set to `multipart/form-data`, and contains 2 parts: `chunkedFilePart`\nfor the **chunk properties**, and `fileChunk` for the **data**.\n\nThe `chunkedFilePart` must have the `Content-Type` header set to `application/json` and is similar to other entity types. It specifies the\n`offset` and `size` of the chunk.\n\nThe fileChunk contains the file to be imported. Its `Content-Type` header must correspond to the file’s data type.\n\nFor example, for a `.csv` file, the `Content-Type` header for the `fileChunk` should be `text/csv`.\n\n### Permissions\n- `api.file-manager.write`","operationId":"addChunkedFilePart","parameters":[{"name":"chunkedFileId","in":"path","required":true,"schema":{"type":"string"}},{"name":"content-type","in":"header","schema":{"type":"string","enum":["multipart/form-data"]}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"chunkedFilePart":{"$ref":"#/components/schemas/ApiChunkedFilePart"},"fileChunk":{"type":"string","format":"binary"}},"required":["chunkedFilePart","fileChunk"]},"encoding":{"fileChunk":{"contentType":"application/json"}}}},"required":true},"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/chunked-files/query":{"post":{"tags":["Chunked Files"],"summary":"Query Chunked File","description":"Queries a pending chunked file import, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `name` - `STRING`\n\n### Permissions\n- `api.file-manager.read`","operationId":"queryChunkedFile","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiChunkedFile_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/async-results/query":{"post":{"tags":["Async Results"],"summary":"Query Async Result","description":"Query async results, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `type` - `STRING`\n- `status` - `STRING`\n- `entityId` - `OBJECT_ID`\n- `entityType` - `STRING`\n\n### Permissions\n\nThis endpoint inherits the permissions from the target entity in scope. For example, if the async result represents an **analysis source**,\nthen the requesting token must contain the permission: `api.analysis-sources.read`.\n","operationId":"queryAsyncResult","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAsyncResult_Read"}}}}}}},"/v1/api-tokens":{"post":{"tags":["API Tokens"],"summary":"Create API Token","description":"Create a new API token.\n\nThe creation response will include a `token` field with the newly created token. This token is only returned on creation, and cannot be\nre-generated afterwards.\n\nWhen an API token is created, an API Token User is automatically created and assigned to the API token. This non-human user account\nrepresents the API token, and any action that the API takes will be attributed to that account. The API Token User can be identified through\nthe `userId` property in the API Token entity.\n\n### Permissions\n- `api.api-tokens.write`","operationId":"createApiToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApiToken_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiTokenResponse_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/api-tokens/query":{"post":{"tags":["API Tokens"],"summary":"Query API Token","description":"Query API tokens, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `userId` - `OBJECT_ID`\n- `name` - `STRING`\n\n### Permissions\n- `api.api-tokens.read`","operationId":"queryApiToken","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiApiToken_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-types/query":{"post":{"tags":["Analysis Types"],"summary":"Query Analysis Type","description":"Query analysis types, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n\n### Permissions\n- `api.analysis-types.read`","operationId":"queryAnalysisType","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAnalysisType_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-type-configuration/query":{"post":{"tags":["Analysis Type Configuration"],"summary":"Query","description":"Query analysis type configurations, optionally applying a filter.\n\n### Queryable fields:\n\n- `id` - `OBJECT_ID`\n- `libraryId` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisTypeId` - `OBJECT_ID`\n- `controlPointBundleVersion` - `STRING`\n- `template` - `BOOLEAN`\n\n### Permissions\n- `api.analysis-type-configuration.read`","operationId":"query","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAnalysisTypeConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-sources":{"post":{"tags":["Analysis Sources"],"summary":"Create Analysis Source","description":"Create a new analysis source.\n\n### Permissions\n- `api.analysis-sources.write`","operationId":"createAnalysisSource","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisSource_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-sources/query":{"post":{"tags":["Analysis Sources"],"summary":"Query Analysis Source","description":"Query analysis sources, optionally applying a filter.\n\n### Queryable Fields\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisId` - `OBJECT_ID`\n- `analysisPeriodId` - `OBJECT_ID`\n- `analysisSourceTypeId` - `OBJECT_ID`\n- `additionalDataColumnField` - `STRING`\n\n### Permissions\n- `api.analysis-sources.read`","operationId":"queryAnalysisSource","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAnalysisSource_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-source-types/query":{"post":{"tags":["Analysis Source Types"],"summary":"Query Analysis Source Type","description":"Query analysis source types, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n\n### Permissions\n- `api.analysis-source-types.read`","operationId":"queryAnalysisSourceType","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAnalysisSourceType_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-results/query":{"post":{"tags":["Analysis Results"],"summary":"Query Analysis Results","description":"Query analysis results, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisId` - `OBJECT_ID`\n\n### Permissions\n- `api.analyses.read`","operationId":"queryAnalysisResults","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageApiAnalysisResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses":{"post":{"tags":["Analyses"],"summary":"Create Analysis","description":"Create a new analysis.\n\nIf no `reportingPeriodConfigurationId` is provided, it inherits the reporting period set on the engagement.\n\n### Permissions\n- `api.analyses.write`","operationId":"createAnalysis","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysis_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysis_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses/{analysisId}/start":{"post":{"tags":["Analyses"],"summary":"Start Analysis","description":"Run an analysis through MindBridge’s analytics.\n\n**Deprecation**: This endpoint has been renamed to `/run` and will be removed in a future release.\n\n### Permissions\n- `api.analyses.run`","operationId":"startAnalysis","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"deprecated":true,"security":[{"mindbridge-api":[]}]}},"/v1/analyses/{analysisId}/run":{"post":{"tags":["Analyses"],"summary":"Run Analysis","description":"Run an analysis through MindBridge’s analytics.\n\n### Permissions\n- `api.analyses.run`","operationId":"runAnalysis","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses/query":{"post":{"tags":["Analyses"],"summary":"Query Analysis","description":"Query analyses, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `analysisTypeId` - `OBJECT_ID`\n- `name` - `STRING`\n\n### Permissions\n- `api.analyses.read`","operationId":"queryAnalysis","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAnalysis_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses/engagement-roll-forward":{"post":{"tags":["Analyses"],"summary":"Engagement Roll Forward Analysis","description":"Roll a completed analysis forward into an existing engagement. This will create a new analysis within the target engagement using the source analysis' data as\nprior period data for the new analysis.\n\nFor analyses using a non-periodic time frame, this will create a new current analysis period, with the existing data being added as prior period data. This new\ncurrent period can be configured to either be a full period, or an interim period.\n\nAnalyses that use the periodic time frame will be rolled forward into a new periodic time frame, and will not have a new period added.\n\nRolling forward is subject to the following restrictions:\n- The target engagement must not be the same as the analysis' current engagement.\n- Only completed analyses can be rolled forward.\n- Interim analyses cannot be rolled forward. This does not apply to interim analyses that have been converted to full-period analyses.\n- The library of the target engagement must support the analysis type of the analysis.\n\n### Permissions\n- `api.analyses.write`","operationId":"engagementRollForwardAnalysis","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementRollForwardRequest"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/admin-reports/row-usage-report/run":{"post":{"tags":["Admin reports"],"summary":"Run Row Usage Report","description":"Running a **row usage report** returns an async result, which can then be used to return a **file result**.\n\n### Permissions\n- `api.admin-reports.run`","operationId":"runRowUsageReport","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAdminReportRequest_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/admin-reports/analysis-overview-report/run":{"post":{"tags":["Admin reports"],"summary":"Run Analysis Overview Report","description":"Running an **analysis overview report** returns an async result, which can then be used to return a **file result**.\n\n### Permissions\n- `api.admin-reports.run`","operationId":"runAnalysisOverviewReport","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAnalysisOverviewReportRequest_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/admin-reports/activity-report/run":{"post":{"tags":["Admin reports"],"summary":"Run Activity Report","description":"Running an **activity report** returns an async result, which can then be used to return a **file result**.\n\nProvide `start` and `end` date values to limit the results to a specific time period.\n\nSetting values in the `userIds` and `categories` lists will limit the results to the users who performed the actions, and the provided\ncategories, respectively. Leaving these lists empty will return results for all users and categories, respectively.\n\n### Permissions\n- `api.admin-reports.run`","operationId":"runActivityReport","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunActivityReportRequest_Create"}}},"required":true},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-mappings/verify":{"post":{"tags":["Account Mappings"],"summary":"Verify Account Mappings For Engagement","description":"Mark all account mappings for a given engagement as verified.\n\n### Permissions\n- `api.analyses.write`","operationId":"verifyAccountMappingsForEngagement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiVerifyAccountsRequest"}}},"required":true},"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/account-mappings/query":{"post":{"tags":["Account Mappings"],"summary":"Query Account Mappings","description":"Query account mappings, optionally applying a filter.\n\n## Required Query Restrictions\n\nWhen querying account groups, an `engagementId` field and either an `$eq` or `$in` term must be included. Queries\nwithout these restrictions will fail.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `engagementId` - `OBJECT_ID`\n- `account` - `STRING`\n\n### Permissions\n- `api.analyses.read`","operationId":"queryAccountMappings","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAccountMapping_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-mappings/export":{"post":{"tags":["Account Mappings"],"summary":"Export Account Mappings For Engagement","description":"### Permissions\n- `api.analyses.read`","operationId":"exportAccountMappingsForEngagement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiExportAccountsRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-mappings/delete-unused":{"post":{"tags":["Account Mappings"],"summary":"Delete Unused Account Mappings For Engagement","description":"Deletes all unused accounts mappings for the provided engagement.\n\n### Permissions\n- `api.analyses.write`","operationId":"deleteUnusedAccountMappingsForEngagement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDeleteUnusedAccountMappingsRequest"}}},"required":true},"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groups/query":{"post":{"tags":["Account Groups"],"summary":"Query Account Group","description":"Query account groups, optionally applying a filter.\n\n## Required Query Restrictions\n\nWhen querying account groups, an `accountGroupingId` field and either an `$eq` or `$in` term must be included. Queries\nwithout these restrictions will fail.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n- `accountGroupingId` - `OBJECT_ID`\n- `code` - `STRING`\n\n### Permissions\n- `api.account-groupings.read`","operationId":"queryAccountGroup","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAccountGroup_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groupings/{accountGroupingId}/export":{"post":{"tags":["Account Groupings"],"summary":"Export Account Grouping","description":"Export an account grouping and all it’s account groups as an Excel file. Exporting returns an async result, which can\nthen be used to return a file result.\n\n### Permissions\n- `api.account-groupings.read`","operationId":"exportAccountGrouping","parameters":[{"name":"accountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groupings/{accountGroupingId}/append-from-chunked-file":{"post":{"tags":["Account Groupings"],"summary":"Append From Chunked File","description":"Append a chunked file that contains a MindBridge account grouping file (.xlsx) to an existing account grouping to add\nnew account groups and mappings to the existing account grouping.\n\n**Note:** Appending to _CCH group trial balance_ files is not supported.\n\n### Permissions\n- `api.account-groupings.write`","operationId":"appendFromChunkedFile","parameters":[{"name":"accountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiImportAccountGroupingParams_Update"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGrouping"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groupings/query":{"post":{"tags":["Account Groupings"],"summary":"Query Account Grouping","description":"Query account groupings, optionally applying a filter.\n\n### Queryable Fields\n\n- `id` - `OBJECT_ID`\n\n### Permissions\n- `api.account-groupings.read`","operationId":"queryAccountGrouping","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","minimum":1}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShieldQueryTerm_Read"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPageApiAccountGrouping_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/account-groupings/import-from-chunked-file":{"post":{"tags":["Account Groupings"],"summary":"Import From Chunked File","description":"Import a chunked file that contains a MindBridge account grouping file (.xlsx) or a _CCH group trial balance_ file to\ncreate a new account grouping entry with a complete set of account groups and MAC mappings.\n\nThe type of file being imported is determined by the `type` property.\n\n### Permissions\n- `api.account-groupings.write`","operationId":"importFromChunkedFile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiImportAccountGroupingParams_Create"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAccountGrouping"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/webhook-event-logs/{webhookEventId}":{"get":{"tags":["Webhook event logs"],"summary":"Read Webhook Event Log","description":"Read an existing Webhook event log, identified by its ID.\n\n### Permissions\n- `api.webhooks.read`","operationId":"readWebhookEventLog","parameters":[{"name":"webhookEventId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhookEventLog_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/users/current":{"get":{"tags":["Users"],"summary":"Get Current User","description":"Read the current user tied to the provided API token.\n\nThis endpoint is not restricted by any permissions and can be used to test the API.\n","operationId":"getCurrentUser","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUser_Read"}}}}}}},"/v1/transaction-id-previews/{transactionIdPreviewId}":{"get":{"tags":["Transaction ID Previews"],"summary":"Read Transaction Id Preview","description":"Read an existing transaction ID preview, identified by its ID.\n\n### Permissions\n- `api.analysis-sources.read`","operationId":"readTransactionIdPreview","parameters":[{"name":"transactionIdPreviewId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTransactionIdPreview_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/task-histories/{taskHistoryId}":{"get":{"tags":["Task History"],"summary":"Read Task History","description":"Read an existing task history, identified by its ID.\n\n### Permissions\n- `api.tasks.read`","operationId":"readTaskHistory","parameters":[{"name":"taskHistoryId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTaskHistory_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/reporting-period-config/{reportingPeriodConfigurationId}":{"get":{"tags":["Reporting Period Configuration"],"summary":"Read Reporting Period Configuration","description":"Read an existing reporting period configuration, identified by its ID.\n\n### Permissions\n- `api.reporting-period-config.read`","operationId":"readReportingPeriodConfiguration","parameters":[{"name":"reportingPeriodConfigurationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReportingPeriodConfiguration_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Reporting Period Configuration"],"summary":"Delete Reporting Period Configuration","description":"Delete an existing reporting period configuration, identified by its ID.\n\n### Permissions\n- `api.reporting-period-config.delete`","operationId":"deleteReportingPeriodConfiguration","parameters":[{"name":"reportingPeriodConfigurationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/json-tables/{jsonTableId}":{"get":{"tags":["JSON Tables"],"summary":"Read Json Table","description":"Read an existing JSON Table, identified by its ID.\n\n### Permissions\n- `api.file-manager.read`","operationId":"readJsonTable","parameters":[{"name":"jsonTableId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiJsonTable_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-results/{fileResultId}":{"get":{"tags":["File Results"],"summary":"Read File Result","description":"Read an existing file result, identified by its ID.\n","operationId":"readFileResult","parameters":[{"name":"fileResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFileExport_Read"}}}}}}},"/v1/file-results/{fileResultId}/export":{"get":{"tags":["File Results"],"summary":"Export File Result","description":"Export a file result, identified by its ID.\n","operationId":"exportFileResult","parameters":[{"name":"fileResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/octet-stream":{"schema":{"format":"binary"}}}}}}},"/v1/file-manager/{fileManagerFileId}/export":{"get":{"tags":["File Manager"],"summary":"Export File Manager File","description":"Export an existing **file manager file**, identified by its ID.\n\n### Permissions\n- `api.file-manager.read`","operationId":"exportFileManagerFile","parameters":[{"name":"fileManagerFileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/octet-stream":{"schema":{"format":"binary"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/file-infos/{fileInfoId}":{"get":{"tags":["File Info"],"summary":"Get File Info","description":"Read an existing file info, identified by its ID.\n\n### Permissions\n- `api.file-infos.read`","operationId":"getFileInfo","parameters":[{"name":"fileInfoId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ApiFileInfo"},{"$ref":"#/components/schemas/ApiTabularFileInfo"}]}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/engagement-account-groupings/{engagementAccountGroupingId}":{"get":{"tags":["Engagement Account Groupings"],"summary":"Read Engagement Account Grouping","description":"Read an existing engagement account grouping, identified by its ID.\n\n### Permissions\n- `api.engagement-account-groupings.read`","operationId":"readEngagementAccountGrouping","parameters":[{"name":"engagementAccountGroupingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEngagementAccountGrouping_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/databricks-auth/{authorizationId}":{"get":{"tags":["Databricks Authorization"],"summary":"Get Databricks Authorization","description":"Read an existing Databricks authorization, identified by its ID.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"getDatabricksAuthorization","parameters":[{"name":"authorizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Read"}}}}}},"delete":{"tags":["Databricks Authorization"],"summary":"Delete Databricks Authorization","description":"Delete an existing Databricks authorization, identified by its ID.\n\n### Permissions\n\n- `api.connections.write`\n","operationId":"deleteDatabricksAuthorization","parameters":[{"name":"authorizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}}}},"/v1/data-tables/{dataTableId}":{"get":{"tags":["Data Tables"],"summary":"Read Data Table","description":"Read an existing data table, identified by its ID.\n\n### Permissions\n- `api.data-tables.read`","operationId":"readDataTable","parameters":[{"name":"dataTableId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataTable_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/connections/{connectionId}":{"get":{"tags":["Connections"],"summary":"Read Connection","description":"Read an existing connection, identified by its ID.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"readConnection","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnection_Read"}}}}}},"delete":{"tags":["Connections"],"summary":"Delete Connection","description":"Delete an existing connection, identified by its ID.\n\n### Permissions\n\n- `api.connections.delete`\n","operationId":"deleteConnection","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}}}},"/v1/connection-test-results/{connectionTestResultId}":{"get":{"tags":["Connection Test Results"],"summary":"Read Connection Test Result","description":"Read an existing connection test result, identified by its ID.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"readConnectionTestResult","parameters":[{"name":"connectionTestResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionTestResult_Read"}}}}}}},"/v1/connection-tables/{connectionTableId}":{"get":{"tags":["Data Connection Tables"],"summary":"Read Connection Tables","description":"Read an existing connection table, identified by its ID.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"readConnectionTables","parameters":[{"name":"connectionTableId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionTable_Read"}}}}}}},"/v1/connection-tables-results/{connectionTablesResultId}":{"get":{"tags":["Connection Tables Results"],"summary":"Read Connection Tables Result","description":"Read an existing connection tables result, identified by its ID.\n\n### Permissions\n\n- `api.connections.read`\n","operationId":"readConnectionTablesResult","parameters":[{"name":"connectionTablesResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionTablesResult_Read"}}}}}}},"/v1/connection-data-source/{connectionDataSourceId}":{"get":{"tags":["Connection Data Sources"],"summary":"Read Connection Data Source","description":"Read an existing connection data source, identified by its ID.\n\n### Permissions\n\n- `api.connection-data-sources.read`\n","operationId":"readConnectionDataSource","parameters":[{"name":"connectionDataSourceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiConnectionDataSource_Read"}}}}}},"delete":{"tags":["Connection Data Sources"],"summary":"Delete Connection Data Source","description":"Delete an existing connection data source, identified by its ID.\n\n### Permissions\n\n- `api.connection-data-sources.delete`\n","operationId":"deleteConnectionDataSource","parameters":[{"name":"connectionDataSourceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}}}},"/v1/chunked-files/{chunkedFileId}":{"get":{"tags":["Chunked Files"],"summary":"Read Chunked File","description":"Returns the state of a pending chunked file import, identified by its ID.\n\n### Permissions\n- `api.file-manager.read`","operationId":"readChunkedFile","parameters":[{"name":"chunkedFileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiChunkedFile_Read"}}}}},"security":[{"mindbridge-api":[]}]},"delete":{"tags":["Chunked Files"],"summary":"Delete Chunked File","description":"Deletes a pending chunked file import, identified by its ID.\n\n### Permissions\n- `api.file-manager.delete`","operationId":"deleteChunkedFile","parameters":[{"name":"chunkedFileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}},"security":[{"mindbridge-api":[]}]}},"/v1/async-results/{asyncResultId}":{"get":{"tags":["Async Results"],"summary":"Read Async Result","description":"Read an existing async result, identified by its ID.\n\n### Permissions\n\nThis endpoint inherits the permissions from the target entity in scope. For example, if the async result represents an **analysis source**,\nthen the requesting token must contain the permission: `api.analysis-sources.read`.\n","operationId":"readAsyncResult","parameters":[{"name":"asyncResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}}}}}}},"/v1/api-tokens/current":{"get":{"tags":["API Tokens"],"summary":"Get Current API Token","description":"Read the API token record specified by the API token.\n\nThis endpoint is not restricted by any permissions and can be used to test the API.\n","operationId":"getCurrentApiToken","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApiToken_Read"}}}}}}},"/v1/analysis-types/{analysisTypeId}":{"get":{"tags":["Analysis Types"],"summary":"Read Analysis Type","description":"Read an existing analysis type, identified by its ID.\n\n### Permissions\n- `api.analysis-types.read`","operationId":"readAnalysisType","parameters":[{"name":"analysisTypeId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisType_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-sources/{analysisSourceId}/effective-date-metrics":{"get":{"tags":["Analysis Sources"],"summary":"Read Effective Date Metrics","description":"Query the results of the **Analysis Period** step in the data import process (based on the effective date column), including displaying the\nhistogram by day, week, or month, as well as debit and credit sums for the period and more.\n\n### Permissions\n- `api.analysis-sources.read`","operationId":"readEffectiveDateMetrics","parameters":[{"name":"analysisSourceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"period","in":"query","required":true,"schema":{"type":"string","enum":["DAY","WEEK","MONTH"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEffectiveDateMetrics_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-source-types/{analysisSourceTypeId}":{"get":{"tags":["Analysis Source Types"],"summary":"Read Analysis Source Type","description":"Read an existing analysis source type, identified by its ID.\n\n### Permissions\n- `api.analysis-source-types.read`","operationId":"readAnalysisSourceType","parameters":[{"name":"analysisSourceTypeId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisSourceType_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analysis-results/{analysisResultId}":{"get":{"tags":["Analysis Results"],"summary":"Read Analysis Result","description":"Read an existing analysis result, identified by its ID.\n\n### Permissions\n- `api.analyses.read`","operationId":"readAnalysisResult","parameters":[{"name":"analysisResultId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisResult_Read"}}}}},"security":[{"mindbridge-api":[]}]}},"/v1/analyses/{analysisId}/status":{"get":{"tags":["Analyses"],"summary":"Read Analysis Status","description":"See a summary of the readiness of an existing analysis, including errors, missing analysis sources and more.\n\n### Permissions\n- `api.analyses.read`","operationId":"readAnalysisStatus","parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAnalysisStatus_Read"}}}}},"security":[{"mindbridge-api":[]}]}}},"components":{"schemas":{"ObjectId":{"type":"string"},"WebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["export.ready","data.added","ingestion.complete","ingestion.failed","analysis.completed","analysis.failed","unmapped.accounts","engagement.created","engagement.updated","engagement.deleted","analysis.created","analysis.updated","analysis.deleted","analysis.archived","analysis.unarchived","user.invited","user.status","user.role","user.deleted","user.login"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."}}},"AnalysisResultWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["analysis.completed","analysis.failed"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/AnalysisResultWebhookData","description":"The data associated with the webhook event."}}},"AnalysisWebhookData":{"properties":{"engagementId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Engagement associated with the webhook event."},"analysisId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Analysis associated with the webhook event."}}},"AnalysisSourceWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["ingestion.complete","ingestion.failed"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/AnalysisSourceWebhookData","description":"The data associated with the webhook event."}}},"AnalysisSourceWebhookData":{"properties":{"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"analysisSourceId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Analysis Source associated with the event."},"analysisId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Analysis associated with the webhook event."},"engagementId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Engagement associated with the webhook event."}}},"AnalysisResultWebhookData":{"properties":{"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"analysisId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Analysis associated with the webhook event."},"analysisResultId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Analysis Result associated with the webhook event."},"engagementId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Engagement associated with the webhook event."}}},"EngagementSubscriptionWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["unmapped.accounts"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/EngagementSubscriptionWebhookData","description":"The data associated with the webhook event."}}},"EngagementSubscriptionWebhookData":{"properties":{"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"engagementId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Engagement associated with the webhook event."},"targetUserId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user associated with the webhook event."}}},"EngagementWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["engagement.created","engagement.updated","engagement.deleted"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/EngagementWebhookData","description":"The data associated with the webhook event."}}},"EngagementWebhookData":{"properties":{"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"engagementId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the Engagement associated with the webhook event."}}},"FileManagerWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["data.added","export.ready"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/FileManagerWebhookData","description":"The data associated with the webhook event."}}},"FileManagerWebhookData":{"properties":{"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"fileManagerFileId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the data associated with the webhook event."},"fileExportId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the file export associated with the webhook event."}}},"UserWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["user.deleted"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/UserWebhookData","description":"The data associated with the webhook event."}}},"UserWebhookData":{"properties":{"targetUserId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the data associated with the webhook event."}}},"UserRoleWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["user.invited","user.role"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/UserRoleWebhookData","description":"The data associated with the webhook event."}}},"UserRoleWebhookData":{"properties":{"role":{"type":"string","description":"The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)","enum":["ROLE_ADMIN","ROLE_ORGANIZATION_ADMIN","ROLE_USER","ROLE_CLIENT","ROLE_MINDBRIDGE_SUPPORT","ROLE_USER_ADMIN"]},"targetUserId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the data associated with the webhook event."}}},"UserLoginWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["user.login"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/UserLoginWebhookData","description":"The data associated with the webhook event."}}},"UserLoginWebhookData":{},"UserStatusWebhookPayload":{"properties":{"type":{"type":"string","description":"The event type that triggered the webhook.","enum":["user.status"]},"eventId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the event that triggered the outbound request."},"timestamp":{"type":"string","format":"date-time","description":"The time that the webhook was triggered."},"senderId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the registered webhook configuration that initiated the outbound request."},"tenantId":{"type":"string","description":"The name of the tenant that triggered the webhook."},"userId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the user that initiated the event that triggered the webhook."},"data":{"$ref":"#/components/schemas/UserStatusWebhookData","description":"The data associated with the webhook event."}}},"UserStatusWebhookData":{"properties":{"targetUserId":{"$ref":"#/components/schemas/ObjectId","description":"The ID of the data associated with the webhook event."},"status":{"type":"string","description":"Identifies the status change that triggered the webhook event."}}},"ApiWebhook_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the webhook."},"url":{"type":"string","description":"The URL to which the webhook will send notifications."},"technicalContactId":{"type":"string","description":"A reference to an administrative user used to inform system administrators of issues with the webhooks."},"events":{"type":"array","description":"A list of events that will trigger this webhook.","items":{"type":"string","enum":["EXPORT_READY","FILE_MANAGER_FILE_ADDED","INGESTION_COMPLETE","INGESTION_FAILED","INGESTION_ANALYSIS_COMPLETE","INGESTION_ANALYSIS_FAILED","UNMAPPED_ACCOUNTS_DETECTED","ENGAGEMENT_CREATED","ENGAGEMENT_UPDATED","ENGAGEMENT_DELETED","ANALYSIS_CREATED","ANALYSIS_UPDATED","ANALYSIS_DELETED","ANALYSIS_ARCHIVED","ANALYSIS_UNARCHIVED","USER_INVITED","USER_STATUS_UPDATED","USER_ROLE_UPDATED","USER_DELETED","USER_LOGIN"],"title":"Event Type"},"maxItems":2147483647,"minItems":1},"status":{"type":"string","description":"The current status of the webhook.","enum":["ACTIVE","INACTIVE"]}},"required":["events","name","status","technicalContactId","url","version"],"title":"Webhook"},"ApiUserInfo_Read":{"type":"object","properties":{"userId":{"type":"string","description":"Identifies the user."},"userName":{"type":"string","description":"The name of the user."}},"title":"User Info"},"ApiWebhook_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time"},"lastModifiedDate":{"type":"string","format":"date-time"},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"name":{"type":"string","description":"The name of the webhook."},"url":{"type":"string","description":"The URL to which the webhook will send notifications."},"technicalContactId":{"type":"string","description":"A reference to an administrative user used to inform system administrators of issues with the webhooks."},"events":{"type":"array","description":"A list of events that will trigger this webhook.","items":{"type":"string","enum":["EXPORT_READY","FILE_MANAGER_FILE_ADDED","INGESTION_COMPLETE","INGESTION_FAILED","INGESTION_ANALYSIS_COMPLETE","INGESTION_ANALYSIS_FAILED","UNMAPPED_ACCOUNTS_DETECTED","ENGAGEMENT_CREATED","ENGAGEMENT_UPDATED","ENGAGEMENT_DELETED","ANALYSIS_CREATED","ANALYSIS_UPDATED","ANALYSIS_DELETED","ANALYSIS_ARCHIVED","ANALYSIS_UNARCHIVED","USER_INVITED","USER_STATUS_UPDATED","USER_ROLE_UPDATED","USER_DELETED","USER_LOGIN"],"title":"Event Type"},"maxItems":2147483647,"minItems":1},"publicKey":{"type":"string","description":"The public key used to verify the webhook signature."},"status":{"type":"string","description":"The current status of the webhook.","enum":["ACTIVE","INACTIVE"]},"keyGenerationTimestamp":{"type":"string","format":"date-time"}},"required":["events","name","status","technicalContactId","url","version"],"title":"Webhook"},"ApiUser_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"role":{"type":"string","description":"The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)","enum":["ROLE_ADMIN","ROLE_ORGANIZATION_ADMIN","ROLE_USER","ROLE_CLIENT","ROLE_MINDBRIDGE_SUPPORT","ROLE_USER_ADMIN"]},"enabled":{"type":"boolean","description":"Indicates whether or not the user is enabled within this tenant."}},"required":["enabled","role","version"],"title":"User"},"ApiLoginRecord_Read":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"The time when the user logged in or the API token was used."},"ipAddress":{"type":"string","description":"The IP address used when logging in or when making a request with an API token."}},"title":"Login Record"},"ApiUser_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"firstName":{"type":"string","description":"The user's first name."},"lastName":{"type":"string","description":"The user's last name."},"email":{"type":"string","description":"The user's email address."},"role":{"type":"string","description":"The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)","enum":["ROLE_ADMIN","ROLE_ORGANIZATION_ADMIN","ROLE_USER","ROLE_CLIENT","ROLE_MINDBRIDGE_SUPPORT","ROLE_USER_ADMIN"]},"enabled":{"type":"boolean","description":"Indicates whether or not the user is enabled within this tenant."},"validated":{"type":"boolean","description":"Indicates whether or not the user has opened the account activation link after being created."},"serviceAccount":{"type":"boolean","description":"Indicates whether or not this account is used as part of an API token."},"recentLogins":{"type":"array","description":"A list of the latest successful logins or token usage events by IP address.","items":{"$ref":"#/components/schemas/ApiLoginRecord_Read"}}},"required":["email","enabled","role","version"],"title":"User"},"ApiTask_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"status":{"type":"string","description":"The current state of the task.","enum":["OPEN","NORMAL","COMPLETED","DISMISSED","RESOLVED"],"title":"Task Status"},"assignedId":{"type":"string","description":"Identifies the user assigned to this task."},"description":{"type":"string","description":"A description of the task."},"sample":{"type":"string","description":"Which sample this task is a part of."},"auditAreas":{"type":"array","description":"Which audit areas this task is associated with.","items":{"type":"string"}},"assertions":{"type":"array","description":"Which assertions this task is associated with.","items":{"type":"string"}},"taskApprovalStatus":{"type":"string","enum":["PENDING","REJECTED","APPROVED"],"title":"Task Approval Status"},"dueDate":{"type":"string","format":"date"},"approverId":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}}},"required":["status","version"],"title":"Task"},"ApiTaskComment_Read":{"type":"object","properties":{"commentText":{"type":"string","description":"The text of the comment."},"captured":{"type":"string","format":"date-time","description":"The timestamp when this comment was made."},"authorId":{"type":"string","description":"The unique identifier of the user who created this comment."}},"title":"Task Comment"},"ApiTask_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisResultId":{"type":"string"},"analysisId":{"type":"string","description":"Identifies the associated analysis."},"analysisTypeId":{"type":"string","description":"Identifies the associated analysis type."},"transaction":{"type":"string","description":"The name of the associated transaction."},"name":{"type":"string","description":"The task's name. Generated based on on the related entry or transaction."},"rowId":{"type":"integer","format":"int64","description":"Identifies the associated entry."},"transactionId":{"type":"integer","format":"int64","description":"Identifies the associated transaction."},"status":{"type":"string","description":"The current state of the task.","enum":["OPEN","NORMAL","COMPLETED","DISMISSED","RESOLVED"],"title":"Task Status"},"assignedId":{"type":"string","description":"Identifies the user assigned to this task."},"description":{"type":"string","description":"A description of the task."},"comments":{"type":"array","description":"A list of all the comments that have been made on this task.","items":{"$ref":"#/components/schemas/ApiTaskComment_Read"}},"sample":{"type":"string","description":"Which sample this task is a part of."},"auditAreas":{"type":"array","description":"Which audit areas this task is associated with.","items":{"type":"string"}},"assertions":{"type":"array","description":"Which assertions this task is associated with.","items":{"type":"string"}},"type":{"type":"string","description":"The type of entry this task is associated with.","enum":["ENTRY","TRANSACTION","AP_ENTRY","AR_ENTRY","AP_OUTSTANDING_ENTRY","AR_OUTSTANDING_ENTRY","TRA_ENTRY","SUBLEDGER_ENTRY"],"title":"Task Type"},"sampleType":{"type":"string","description":"The sampling method used to create this task.","enum":["RISK_BASED","RANDOM","MANUAL","MONETARY_UNIT_SAMPLING"],"title":"Sample Type"},"entryType":{"type":"string","description":"For AP and AR analyses this is the entry type for the associated entry."},"vendorName":{"type":"string","description":"For AP analyses this is the vendor name for the associated entry."},"customerName":{"type":"string","description":"For AR analyses this is the customer name for the associated entry."},"invoiceRef":{"type":"string","description":"For AP and AR analyses this is the Invoice ref value for the associated entry."},"creditValue":{"type":"integer","format":"int64","deprecated":true,"description":"The credit value of the associated transaction or entry, formatted as MONEY_100."},"debitValue":{"type":"integer","format":"int64","deprecated":true,"description":"The debit value of the associated transaction or entry, formatted as MONEY_100."},"riskScores":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"A map of ensemble names or IDs mapped to their risk score value. The value is a PERCENTAGE_FIXED_POINT type."},"filterStatement":{"type":"string","description":"The filter statement that was applied when creating this task via a bulk task creation."},"taskApprovalStatus":{"type":"string","enum":["PENDING","REJECTED","APPROVED"],"title":"Task Approval Status"},"dueDate":{"type":"string","format":"date"},"approverId":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"amounts":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Money_Read"}}},"required":["analysisResultId","engagementId","status","type","version"],"title":"Task"},"Money_Read":{"type":"object","properties":{"amount":{"type":"integer","format":"int64"},"currency":{"type":"string"}}},"ApiFilterAccountCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"ACCOUNT_NODE_ARRAY","enum":["ACCOUNT_NODE_ARRAY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"accountSelections":{"type":"array","items":{"$ref":"#/components/schemas/ApiFilterAccountSelection"}}}}],"required":["accountSelections","field","negated","type"],"title":"Filter Account Condition"},"ApiFilterAccountSelection":{"type":"object","properties":{"name":{"type":"string","description":"The display name of the account being selected."},"code":{"type":"string","description":"The account grouping code or account ID of the selected account."},"useAccountId":{"type":"boolean","description":"If `true` then the selected account will be identified by the account ID rather than the grouping code."}},"required":["code","useAccountId"],"title":"Filter Account Selection"},"ApiFilterComplexMonetaryFlowCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","default":"COMPLEX_FLOW","enum":["COMPLEX_FLOW"],"title":"Filter Monetary Flow Type"}}}],"required":["field","monetaryFlowType","negated","type"],"title":"Filter Complex Monetary Flow Condition"},"ApiFilterCondition":{"type":"object","discriminator":{"propertyName":"type","mapping":{"GROUP":"#/components/schemas/ApiFilterGroupCondition","STRING":"#/components/schemas/ApiFilterStringCondition","STRING_ARRAY":"#/components/schemas/ApiFilterStringArrayCondition","CONTROL_POINT":"#/components/schemas/ApiFilterControlPointCondition","ACCOUNT_NODE_ARRAY":"#/components/schemas/ApiFilterAccountCondition","TYPEAHEAD_ENTRY":"#/components/schemas/ApiFilterTypeaheadEntryCondition","POPULATIONS":"#/components/schemas/ApiFilterPopulationsCondition","RISK_SCORE":"#/components/schemas/ApiFilterRiskScoreCondition","MONETARY_FLOW":"#/components/schemas/ApiFilterMonetaryFlowCondition","MONEY":"#/components/schemas/ApiFilterMonetaryValueCondition","MATERIALITY":"#/components/schemas/ApiFilterMaterialityCondition","NUMERICAL":"#/components/schemas/ApiFilterNumericalValueCondition","DATE":"#/components/schemas/ApiFilterDateCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterGroupCondition"},{"$ref":"#/components/schemas/ApiFilterStringCondition"},{"$ref":"#/components/schemas/ApiFilterStringArrayCondition"},{"$ref":"#/components/schemas/ApiFilterControlPointCondition"},{"$ref":"#/components/schemas/ApiFilterAccountCondition"},{"$ref":"#/components/schemas/ApiFilterTypeaheadEntryCondition"},{"$ref":"#/components/schemas/ApiFilterPopulationsCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"$ref":"#/components/schemas/ApiFilterDateCondition"}],"properties":{"type":{"type":"string","description":"The type of condition.","enum":["GROUP","STRING","STRING_ARRAY","CONTROL_POINT","ACCOUNT_NODE_ARRAY","TYPEAHEAD_ENTRY","POPULATIONS","RISK_SCORE","MONETARY_FLOW","MONEY","MATERIALITY","NUMERICAL","DATE"],"title":"Filter Condition Type"}},"required":["type"],"title":"Filter Condition"},"ApiFilterCondition_Update":{"type":"object","discriminator":{"propertyName":"type","mapping":{"GROUP":"#/components/schemas/ApiFilterGroupCondition","STRING":"#/components/schemas/ApiFilterStringCondition","STRING_ARRAY":"#/components/schemas/ApiFilterStringArrayCondition","CONTROL_POINT":"#/components/schemas/ApiFilterControlPointCondition","ACCOUNT_NODE_ARRAY":"#/components/schemas/ApiFilterAccountCondition","TYPEAHEAD_ENTRY":"#/components/schemas/ApiFilterTypeaheadEntryCondition","POPULATIONS":"#/components/schemas/ApiFilterPopulationsCondition","RISK_SCORE":"#/components/schemas/ApiFilterRiskScoreCondition","MONETARY_FLOW":"#/components/schemas/ApiFilterMonetaryFlowCondition","MONEY":"#/components/schemas/ApiFilterMonetaryValueCondition","MATERIALITY":"#/components/schemas/ApiFilterMaterialityCondition","NUMERICAL":"#/components/schemas/ApiFilterNumericalValueCondition","DATE":"#/components/schemas/ApiFilterDateCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterGroupCondition"},{"$ref":"#/components/schemas/ApiFilterStringCondition"},{"$ref":"#/components/schemas/ApiFilterStringArrayCondition"},{"$ref":"#/components/schemas/ApiFilterControlPointCondition"},{"$ref":"#/components/schemas/ApiFilterAccountCondition"},{"$ref":"#/components/schemas/ApiFilterTypeaheadEntryCondition"},{"$ref":"#/components/schemas/ApiFilterPopulationsCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"$ref":"#/components/schemas/ApiFilterDateCondition"}],"properties":{"type":{"type":"string","description":"The type of condition.","enum":["GROUP","STRING","STRING_ARRAY","CONTROL_POINT","ACCOUNT_NODE_ARRAY","TYPEAHEAD_ENTRY","POPULATIONS","RISK_SCORE","MONETARY_FLOW","MONEY","MATERIALITY","NUMERICAL","DATE"],"title":"Filter Condition Type"}},"required":["type"],"title":"Filter Condition"},"ApiFilterControlPointCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"CONTROL_POINT","enum":["CONTROL_POINT"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskLevel":{"type":"string","description":"The risk level of the selected control points.","enum":["HIGH_RISK","MEDIUM_RISK","LOW_RISK"],"title":"Filter Control Point Risk Level"},"controlPoints":{"type":"array","description":"A list of control point selections.","items":{"$ref":"#/components/schemas/ApiFilterControlPointSelection"}}}}],"required":["controlPoints","field","negated","riskLevel","type"],"title":"Filter Control Point Condition"},"ApiFilterControlPointSelection":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the selected control point."},"name":{"type":"string","description":"The display name of the control point."},"symbolicName":{"type":"string","description":"The symbolic name of the target control point. For custom control points this is the symbolic name of the control point it is based on."},"rulesBased":{"type":"boolean"}},"required":["id","symbolicName"],"title":"Filter Control Point Selection"},"ApiFilterDateCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"DATE","enum":["DATE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"dateType":{"type":"string","description":"The type of date condition.","enum":["BEFORE","AFTER","SPECIFIC_VALUE","BETWEEN"],"title":"Filter Date Type"}}}],"discriminator":{"propertyName":"dateType","mapping":{"AFTER":"#/components/schemas/ApiFilterDateValueCondition","BEFORE":"#/components/schemas/ApiFilterDateValueCondition","SPECIFIC_VALUE":"#/components/schemas/ApiFilterDateValueCondition","BETWEEN":"#/components/schemas/ApiFilterDateRangeCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterDateValueCondition"},{"$ref":"#/components/schemas/ApiFilterDateRangeCondition"}],"required":["dateType","field","negated","type"],"title":"Filter Date Condition"},"ApiFilterDateRangeCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterDateCondition"},{"type":"object","properties":{"type":{"type":"string","default":"DATE","enum":["DATE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"dateType":{"type":"string","default":"BETWEEN","enum":["BETWEEN"],"title":"Filter Date Type"},"rangeStart":{"type":"string","format":"date","description":"The start of an ISO date range to compare entries to."},"rangeEnd":{"type":"string","format":"date","description":"The end of an ISO date range to compare entries to."}}}],"required":["dateType","field","negated","rangeEnd","rangeStart","type"],"title":"Filter Date Range Condition"},"ApiFilterDateValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterDateCondition"},{"type":"object","properties":{"type":{"type":"string","default":"DATE","enum":["DATE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"dateType":{"type":"string","enum":["AFTER","BEFORE","SPECIFIC_VALUE"],"title":"Filter Date Type"},"value":{"type":"string","format":"date","description":"An ISO date value to compare entries to."}}}],"required":["dateType","field","negated","type","value"],"title":"Filter Date Value Condition"},"ApiFilterGroupCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"GROUP","enum":["GROUP"],"title":"Filter Condition Type"},"operator":{"type":"string","description":"The operator to be applied to conditions within this group.","enum":["AND","OR"],"title":"Filter Group Operator"},"conditions":{"type":"array","description":"The entries within this condition group.","items":{"$ref":"#/components/schemas/ApiFilterCondition"},"minItems":1}}}],"required":["conditions","operator","type"],"title":"Filter Group Condition"},"ApiFilterGroupCondition_Update":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"GROUP","enum":["GROUP"],"title":"Filter Condition Type"},"operator":{"type":"string","description":"The operator to be applied to conditions within this group.","enum":["AND","OR"],"title":"Filter Group Operator"},"conditions":{"type":"array","description":"The entries within this condition group.","items":{"$ref":"#/components/schemas/ApiFilterCondition"},"minItems":1}}}],"required":["conditions","operator","type"],"title":"Filter Group Condition"},"ApiFilterMaterialityCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MATERIALITY","enum":["MATERIALITY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"materialityOption":{"type":"string","description":"The type of materiality comparison.","enum":["ABOVE","BELOW","PERCENTAGE"],"title":"Filter Materiality Value Options"}}}],"discriminator":{"propertyName":"materialityOption","mapping":{"ABOVE":"#/components/schemas/ApiFilterMaterialityOptionCondition","BELOW":"#/components/schemas/ApiFilterMaterialityOptionCondition","PERCENTAGE":"#/components/schemas/ApiFilterMaterialityValueCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterMaterialityOptionCondition"},{"$ref":"#/components/schemas/ApiFilterMaterialityValueCondition"}],"required":["field","materialityOption","negated","type"],"title":"Filter Materiality Condition"},"ApiFilterMaterialityOptionCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MATERIALITY","enum":["MATERIALITY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"materialityOption":{"type":"string","enum":["ABOVE","BELOW"],"title":"Filter Materiality Value Options"}}}],"required":["field","materialityOption","negated","type"],"title":"Filter Materiality Option Condition"},"ApiFilterMaterialityValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MATERIALITY","enum":["MATERIALITY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"materialityOption":{"type":"string","default":"PERCENTAGE","enum":["PERCENTAGE"],"title":"Filter Materiality Value Options"},"value":{"type":"number","format":"double","description":"The percentage value, as a decimal number, with 100.00 being 100%."}}}],"required":["field","materialityOption","negated","type","value"],"title":"Filter Materiality Value Condition"},"ApiFilterMonetaryFlowCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","description":"The type of monetary flow this filter will match.","enum":["SIMPLE_FLOW","COMPLEX_FLOW","SPECIFIC_FLOW"],"title":"Filter Monetary Flow Type"}}}],"discriminator":{"propertyName":"monetaryFlowType","mapping":{"SIMPLE_FLOW":"#/components/schemas/ApiFilterSimpleMonetaryFlowCondition","COMPLEX_FLOW":"#/components/schemas/ApiFilterComplexMonetaryFlowCondition","SPECIFIC_FLOW":"#/components/schemas/ApiFilterSpecificMonetaryFlowCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterSimpleMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterComplexMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterSpecificMonetaryFlowCondition"}],"required":["field","monetaryFlowType","negated","type"],"title":"Filter Monetary Flow Condition"},"ApiFilterMonetaryValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONEY","enum":["MONEY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryValueType":{"type":"string","description":"The type of monetary value condition.","enum":["MORE_THAN","LESS_THAN","SPECIFIC_VALUE","BETWEEN"],"title":"Filter Monetary Type"}}}],"discriminator":{"propertyName":"monetaryValueType","mapping":{"MORE_THAN":"#/components/schemas/ApiFilterMonetaryValueValueCondition","SPECIFIC_VALUE":"#/components/schemas/ApiFilterMonetaryValueValueCondition","LESS_THAN":"#/components/schemas/ApiFilterMonetaryValueValueCondition","BETWEEN":"#/components/schemas/ApiFilterMonetaryValueRangeCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryValueValueCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryValueRangeCondition"}],"required":["field","monetaryValueType","negated","type"],"title":"Filter Monetary Condition"},"ApiFilterMonetaryValueRangeCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONEY","enum":["MONEY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryValueType":{"type":"string","default":"BETWEEN","enum":["BETWEEN"],"title":"Filter Monetary Type"},"rangeStart":{"type":"integer","format":"int64","description":"The start of the range, as a MONEY_100 formatted number to compare with entries."},"rangeEnd":{"type":"integer","format":"int64","description":"The end of the range, as a MONEY_100 formatted number to compare with entries."}}}],"required":["field","monetaryValueType","negated","rangeEnd","rangeStart","type"],"title":"Filter Monetary Range Condition"},"ApiFilterMonetaryValueValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONEY","enum":["MONEY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryValueType":{"type":"string","enum":["MORE_THAN","SPECIFIC_VALUE","LESS_THAN"],"title":"Filter Monetary Type"},"value":{"type":"integer","format":"int64","description":"The MONEY_100 formatted number to compare with entries."}}}],"required":["field","monetaryValueType","negated","type","value"],"title":"Filter Monetary Value Condition"},"ApiFilterNumericalValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"NUMERICAL","enum":["NUMERICAL"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"numericalValueType":{"type":"string","description":"The type of numerical value condition.","enum":["MORE_THAN","LESS_THAN","SPECIFIC_VALUE","BETWEEN"],"title":"Filter Numerical Value Type"}}}],"discriminator":{"propertyName":"numericalValueType","mapping":{"MORE_THAN":"#/components/schemas/ApiFilterNumericalValueValueCondition","SPECIFIC_VALUE":"#/components/schemas/ApiFilterNumericalValueValueCondition","LESS_THAN":"#/components/schemas/ApiFilterNumericalValueValueCondition","BETWEEN":"#/components/schemas/ApiFilterNumericalValueRangeCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterNumericalValueValueCondition"},{"$ref":"#/components/schemas/ApiFilterNumericalValueRangeCondition"}],"required":["field","negated","numericalValueType","type"],"title":"Filter Numerical Condition"},"ApiFilterNumericalValueRangeCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"type":"object","properties":{"type":{"type":"string","default":"NUMERICAL","enum":["NUMERICAL"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"numericalValueType":{"type":"string","default":"BETWEEN","enum":["BETWEEN"],"title":"Filter Numerical Value Type"},"rangeStart":{"type":"integer","format":"int64","description":"The start value of a range to compare entries to."},"rangeEnd":{"type":"integer","format":"int64","description":"The end value of a range to compare entries to."}}}],"required":["field","negated","numericalValueType","rangeEnd","rangeStart","type"],"title":"Filter Numerical Range Condition"},"ApiFilterNumericalValueValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"type":"object","properties":{"type":{"type":"string","default":"NUMERICAL","enum":["NUMERICAL"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"numericalValueType":{"type":"string","enum":["MORE_THAN","SPECIFIC_VALUE","LESS_THAN"],"title":"Filter Numerical Value Type"},"value":{"type":"integer","format":"int64","description":"A value to compare entries to."}}}],"required":["field","negated","numericalValueType","type","value"],"title":"Filter Numerical Value Condition"},"ApiFilterPopulationsCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"POPULATIONS","enum":["POPULATIONS"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"populationIds":{"type":"array","description":"A list of population IDs and category names to be used in the filter.","items":{"type":"string"}}}}],"required":["field","negated","populationIds","type"],"title":"Filter Populations Condition"},"ApiFilterRiskScoreCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","description":"Determines if the filter will test entries using high, medium or low scores, or if it will match by percentage.","enum":["PERCENT","HML"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string","description":"The risk score column being filtered."},"riskScoreLabel":{"type":"string","description":"The display name of the risk score being filtered."}}}],"discriminator":{"propertyName":"riskScoreType","mapping":{"PERCENT":"#/components/schemas/ApiFilterRiskScorePercentCondition","HML":"#/components/schemas/ApiFilterRiskScoreHMLCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterRiskScoreHMLCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScorePercentCondition"}],"required":["field","negated","riskScoreId","riskScoreType","type"],"title":"Filter Risk Score Condition"},"ApiFilterRiskScoreHMLCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","default":"HML","enum":["HML"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string"},"riskScoreLabel":{"type":"string"},"values":{"type":"array","description":"A list of HML options to include in the filter.","items":{"type":"string","enum":["HIGH","MEDIUM","LOW","UNSCORED"],"title":"Filter Risk Score HML Option"}}}}],"required":["field","negated","riskScoreId","riskScoreType","type","values"],"title":"Filter Risk Score HML Condition"},"ApiFilterRiskScorePercentCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","default":"PERCENT","enum":["PERCENT"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string"},"riskScoreLabel":{"type":"string"},"riskScorePercentType":{"type":"string","description":"Determines the type of risk score percent condition to filter.","enum":["MORE_THAN","LESS_THAN","BETWEEN","CUSTOM_RANGE","UNSCORED"],"title":"Filter Risk Score Percent Type"}}}],"discriminator":{"propertyName":"riskScorePercentType","mapping":{"MORE_THAN":"#/components/schemas/ApiFilterRiskScorePercentValueCondition","LESS_THAN":"#/components/schemas/ApiFilterRiskScorePercentValueCondition","BETWEEN":"#/components/schemas/ApiFilterRiskScorePercentRangeCondition","CUSTOM_RANGE":"#/components/schemas/ApiFilterRiskScorePercentRangeCondition","UNSCORED":"#/components/schemas/ApiFilterRiskScorePercentUnscoredCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterRiskScorePercentValueCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScorePercentRangeCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScorePercentUnscoredCondition"}],"required":["field","negated","riskScoreId","riskScorePercentType","riskScoreType","type"],"title":"Filter Risk Score Percent Condition"},"ApiFilterRiskScorePercentRangeCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterRiskScorePercentCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","default":"PERCENT","enum":["PERCENT"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string"},"riskScoreLabel":{"type":"string"},"riskScorePercentType":{"type":"string","enum":["BETWEEN","CUSTOM_RANGE"],"title":"Filter Risk Score Percent Type"},"rangeStart":{"type":"integer","format":"int64","description":"The start of the number range between 0 and 10,000."},"rangeEnd":{"type":"integer","format":"int64","description":"The end of the number range between 0 and 10,000."}}}],"required":["field","negated","rangeEnd","rangeStart","riskScoreId","riskScorePercentType","riskScoreType","type"],"title":"Filter Risk Score Percent Range Condition"},"ApiFilterRiskScorePercentUnscoredCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterRiskScorePercentCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","default":"PERCENT","enum":["PERCENT"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string"},"riskScoreLabel":{"type":"string"},"riskScorePercentType":{"type":"string","default":"UNSCORED","enum":["UNSCORED"],"title":"Filter Risk Score Percent Type"}}}],"required":["field","negated","riskScoreId","riskScorePercentType","riskScoreType","type"],"title":"Filter Risk Score Percent Unscored Condition"},"ApiFilterRiskScorePercentValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterRiskScorePercentCondition"},{"type":"object","properties":{"type":{"type":"string","default":"RISK_SCORE","enum":["RISK_SCORE"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"riskScoreType":{"type":"string","default":"PERCENT","enum":["PERCENT"],"title":"Filter Risk Score Type"},"riskScoreId":{"type":"string"},"riskScoreLabel":{"type":"string"},"riskScorePercentType":{"type":"string","enum":["MORE_THAN","LESS_THAN"],"title":"Filter Risk Score Percent Type"},"value":{"type":"integer","format":"int64","description":"A number between 0 and 10,000 used as part of a more than, or less than filter."}}}],"required":["field","negated","riskScoreId","riskScorePercentType","riskScoreType","type","value"],"title":"Filter Risk Score Percent Value Condition"},"ApiFilterSimpleMonetaryFlowCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","default":"SIMPLE_FLOW","enum":["SIMPLE_FLOW"],"title":"Filter Monetary Flow Type"}}}],"required":["field","monetaryFlowType","negated","type"],"title":"Filter Simple Monetary Flow Condition"},"ApiFilterSpecificMonetaryFlowCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","default":"SPECIFIC_FLOW","enum":["SPECIFIC_FLOW"],"title":"Filter Monetary Flow Type"},"creditAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection","description":"The selected credit account in the monetary flow."},"debitAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection","description":"The selected debit account in the monetary flow."},"specificMonetaryFlowType":{"type":"string","description":"The type of specific monetary flow.","enum":["SPECIFIC_VALUE","MORE_THAN","BETWEEN"],"title":"Filter Specific Monetary Flow Type"}}}],"discriminator":{"propertyName":"specificMonetaryFlowType","mapping":{"SPECIFIC_VALUE":"#/components/schemas/ApiFilterSpecificMonetaryFlowValueCondition","MORE_THAN":"#/components/schemas/ApiFilterSpecificMonetaryFlowValueCondition","BETWEEN":"#/components/schemas/ApiFilterSpecificMonetaryFlowRangeCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterSpecificMonetaryFlowValueCondition"},{"$ref":"#/components/schemas/ApiFilterSpecificMonetaryFlowRangeCondition"}],"required":["creditAccount","debitAccount","field","monetaryFlowType","negated","specificMonetaryFlowType","type"],"title":"Filter Specific Monetary Flow Condition"},"ApiFilterSpecificMonetaryFlowRangeCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterSpecificMonetaryFlowCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","default":"SPECIFIC_FLOW","enum":["SPECIFIC_FLOW"],"title":"Filter Monetary Flow Type"},"creditAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection"},"debitAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection"},"specificMonetaryFlowType":{"type":"string","default":"BETWEEN","enum":["BETWEEN"],"title":"Filter Specific Monetary Flow Type"},"rangeStart":{"type":"integer","format":"int64","description":"The start of the range, as a MONEY_100 formatted number to compare with entries."},"rangeEnd":{"type":"integer","format":"int64","description":"The end of the range, as a MONEY_100 formatted number to compare with entries."}}}],"required":["creditAccount","debitAccount","field","monetaryFlowType","negated","rangeEnd","rangeStart","specificMonetaryFlowType","type"],"title":"Filter Specific Monetary Flow Range Condition"},"ApiFilterSpecificMonetaryFlowValueCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterSpecificMonetaryFlowCondition"},{"type":"object","properties":{"type":{"type":"string","default":"MONETARY_FLOW","enum":["MONETARY_FLOW"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"monetaryFlowType":{"type":"string","default":"SPECIFIC_FLOW","enum":["SPECIFIC_FLOW"],"title":"Filter Monetary Flow Type"},"creditAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection"},"debitAccount":{"$ref":"#/components/schemas/ApiFilterAccountSelection"},"specificMonetaryFlowType":{"type":"string","enum":["SPECIFIC_VALUE","MORE_THAN"],"title":"Filter Specific Monetary Flow Type"},"value":{"type":"integer","format":"int64","description":"The MONEY_100 formatted number to compare with entries."}}}],"required":["creditAccount","debitAccount","field","monetaryFlowType","negated","specificMonetaryFlowType","type","value"],"title":"Filter Specific Monetary Flow Value Condition"},"ApiFilterStringArrayCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"STRING_ARRAY","enum":["STRING_ARRAY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"values":{"type":"array","description":"The set of text values used to filter entries.","items":{"type":"string"}}}}],"required":["field","negated","type","values"],"title":"Filter String Array Condition"},"ApiFilterStringCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"STRING","enum":["STRING"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"value":{"type":"string","description":"The text value used to filter entries."}}}],"required":["field","negated","type","value"],"title":"Filter String Condition"},"ApiFilterTypeaheadEntryCondition":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"TYPEAHEAD_ENTRY","enum":["TYPEAHEAD_ENTRY"],"title":"Filter Condition Type"},"field":{"type":"string"},"fieldLabel":{"type":"string"},"negated":{"type":"boolean"},"fullConditionDescription":{"type":"string"},"values":{"type":"array","description":"A list of typeahead entry selections to be used in the filter.","items":{"$ref":"#/components/schemas/ApiTypeaheadEntry"}}}}],"required":["field","negated","type","values"],"title":"Filter Typeahead Entry Condition"},"ApiFilter_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"filterType":{"type":"string","description":"The type of this filter. Determines in which context analyses can access it.","enum":["LIBRARY","ORGANIZATION","PRIVATE","ENGAGEMENT"],"title":"Filter Type"},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of this filter."},"category":{"type":"object","additionalProperties":{"type":"string"},"description":"The category of this filter."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified."},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Update","description":"A group filter containing all the conditions included in this filter."}},"required":["category","condition","name","version"],"title":"Saved Filter"},"ApiTypeaheadEntry":{"type":"object","properties":{"lookupId":{"type":"string","description":"The identifier of the selected entry."},"displayName":{"type":"string","description":"The display name of the selected entry."},"hideLookupId":{"type":"boolean","description":"If `false` then the entry will be displayed with both the lookup ID and the display name. If `true` then only the display name will be used when displaying this entry."}},"required":["hideLookupId","lookupId"],"title":"Filter Typeahead Entry"},"ApiFilterCondition_Read":{"type":"object","discriminator":{"propertyName":"type","mapping":{"GROUP":"#/components/schemas/ApiFilterGroupCondition","STRING":"#/components/schemas/ApiFilterStringCondition","STRING_ARRAY":"#/components/schemas/ApiFilterStringArrayCondition","CONTROL_POINT":"#/components/schemas/ApiFilterControlPointCondition","ACCOUNT_NODE_ARRAY":"#/components/schemas/ApiFilterAccountCondition","TYPEAHEAD_ENTRY":"#/components/schemas/ApiFilterTypeaheadEntryCondition","POPULATIONS":"#/components/schemas/ApiFilterPopulationsCondition","RISK_SCORE":"#/components/schemas/ApiFilterRiskScoreCondition","MONETARY_FLOW":"#/components/schemas/ApiFilterMonetaryFlowCondition","MONEY":"#/components/schemas/ApiFilterMonetaryValueCondition","MATERIALITY":"#/components/schemas/ApiFilterMaterialityCondition","NUMERICAL":"#/components/schemas/ApiFilterNumericalValueCondition","DATE":"#/components/schemas/ApiFilterDateCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterGroupCondition"},{"$ref":"#/components/schemas/ApiFilterStringCondition"},{"$ref":"#/components/schemas/ApiFilterStringArrayCondition"},{"$ref":"#/components/schemas/ApiFilterControlPointCondition"},{"$ref":"#/components/schemas/ApiFilterAccountCondition"},{"$ref":"#/components/schemas/ApiFilterTypeaheadEntryCondition"},{"$ref":"#/components/schemas/ApiFilterPopulationsCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"$ref":"#/components/schemas/ApiFilterDateCondition"}],"properties":{"type":{"type":"string","description":"The type of condition.","enum":["GROUP","STRING","STRING_ARRAY","CONTROL_POINT","ACCOUNT_NODE_ARRAY","TYPEAHEAD_ENTRY","POPULATIONS","RISK_SCORE","MONETARY_FLOW","MONEY","MATERIALITY","NUMERICAL","DATE"],"title":"Filter Condition Type"}},"required":["type"],"title":"Filter Condition"},"ApiFilterGroupCondition_Read":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"GROUP","enum":["GROUP"],"title":"Filter Condition Type"},"operator":{"type":"string","description":"The operator to be applied to conditions within this group.","enum":["AND","OR"],"title":"Filter Group Operator"},"conditions":{"type":"array","description":"The entries within this condition group.","items":{"$ref":"#/components/schemas/ApiFilterCondition"},"minItems":1}}}],"required":["conditions","operator","type"],"title":"Filter Group Condition"},"ApiFilter_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"analysisTypeId":{"type":"string","description":"Identifies the associated analysis type."},"organizationId":{"type":"string","description":"Identifies the parent organization, if applicable. Can only be set if `filterType` is `ORGANIZATION` or `PRIVATE`."},"libraryId":{"type":"string","description":"Identifies the parent library, if applicable. Can only be set if `filterType` is `LIBRARY`."},"engagementId":{"type":"string","description":"Identifies the parent engagement, if applicable. Can only be set if `filterType` is `ENGAGEMENT`."},"filterType":{"type":"string","description":"The type of this filter. Determines in which context analyses can access it.","enum":["LIBRARY","ORGANIZATION","PRIVATE","ENGAGEMENT"],"title":"Filter Type"},"dataType":{"type":"string","description":"The intended data type for this filter.","enum":["TRANSACTIONS","ENTRIES","LIBRARY"],"title":"Filter Data Type"},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of this filter."},"category":{"type":"object","additionalProperties":{"type":"string"},"description":"The category of this filter."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified."},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Read","description":"A group filter containing all the conditions included in this filter."},"legacyFilterFormat":{"type":"boolean","description":"If `true` this filter is saved in a legacy format that can't be represented in the API."}},"required":["analysisTypeId","category","condition","legacyFilterFormat","name","version"],"title":"Saved Filter"},"ApiRiskRangeBounds_Update":{"type":"object","properties":{"lowThreshold":{"type":"integer","format":"int32","description":"The low threshold of the risk range.","maximum":10000,"minimum":0},"highThreshold":{"type":"integer","format":"int32","description":"The high threshold of the risk range.","maximum":10000,"minimum":0}},"title":"Risk Range Bounds"},"ApiRiskRanges_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"low":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Update","description":"The low range bounds."},"medium":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Update","description":"The medium range bounds."},"high":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Update","description":"The high range bounds."},"name":{"type":"string","description":"The name of the risk range.","maxLength":80,"minLength":0},"description":{"type":"string","description":"The description of the risk range.","maxLength":250,"minLength":0}},"required":["name"],"title":"Risk Ranges"},"ApiRiskRangeBounds_Read":{"type":"object","properties":{"lowThreshold":{"type":"integer","format":"int32","description":"The low threshold of the risk range.","maximum":10000,"minimum":0},"highThreshold":{"type":"integer","format":"int32","description":"The high threshold of the risk range.","maximum":10000,"minimum":0}},"title":"Risk Range Bounds"},"ApiRiskRanges_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"low":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Read","description":"The low range bounds."},"medium":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Read","description":"The medium range bounds."},"high":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Read","description":"The high range bounds."},"system":{"type":"boolean","description":"Indicates whether or not the risk ranges are a MindBridge system risk range."},"libraryId":{"type":"string","description":"Identifies the library associated with this risk range."},"engagementId":{"type":"string","description":"Identifies the engagement associated with this risk range."},"analysisTypeId":{"type":"string","description":"Identifies the analysis type associated with this risk range."},"name":{"type":"string","description":"The name of the risk range.","maxLength":80,"minLength":0},"description":{"type":"string","description":"The description of the risk range.","maxLength":250,"minLength":0}},"required":["analysisTypeId","libraryId","name"],"title":"Risk Ranges"},"ApiPopulationTag_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the population.","maxLength":80,"minLength":0},"category":{"type":"string","description":"The category of the population.","maxLength":80,"minLength":0},"description":{"type":"string","description":"A description of the population.","maxLength":250,"minLength":0},"reasonForChange":{"type":"string","description":"The reason for the latest change made to the population.","maxLength":250,"minLength":0},"disabled":{"type":"boolean"},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Update","description":"The filter condition used to determine which entries are included in the population."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified."}},"required":["category","condition","name","version"],"title":"Population"},"ApiPopulationTag_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"analysisTypeId":{"type":"string"},"libraryId":{"type":"string","description":"The ID of the parent library."},"engagementId":{"type":"string","description":"The ID of the parent engagement."},"derivedFromLibrary":{"type":"boolean","description":"Indicates that the engagement population was derived from a library."},"disabledForAnalysisIds":{"type":"array","description":"Lists the analysis IDs where the engagement population is disabled.","items":{"type":"string"}},"promotedFromAnalysisId":{"type":"string","description":"Identifies the analysis from which the engagement population was promoted."},"analysisId":{"type":"string","description":"The ID of the parent analysis."},"derivedFromEngagement":{"type":"boolean","description":"Indicates whether the analysis population was derived from an engagement."},"basePopulationId":{"type":"string","description":"The ID of the population the current population is based on."},"name":{"type":"string","description":"The name of the population.","maxLength":80,"minLength":0},"category":{"type":"string","description":"The category of the population.","maxLength":80,"minLength":0},"description":{"type":"string","description":"A description of the population.","maxLength":250,"minLength":0},"clonedFrom":{"type":"string","description":"Identifies the population the current population was cloned from."},"reasonForChange":{"type":"string","description":"The reason for the latest change made to the population.","maxLength":250,"minLength":0},"disabled":{"type":"boolean"},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Read","description":"The filter condition used to determine which entries are included in the population."},"legacyFilterFormat":{"type":"boolean","description":"If `true`, this population uses a legacy filter format that cannot be represented in the current condition format."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified."}},"required":["analysisTypeId","category","condition","legacyFilterFormat","name","version"],"title":"Population"},"ApiOrganization_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the organization.","maxLength":80,"minLength":0},"externalClientCode":{"type":"string","description":"The unique client ID applied to this organization.","maxLength":80,"minLength":0},"managerUserIds":{"type":"array","description":"Identifies users assigned to the organization manager role.","items":{"type":"string"}}},"required":["name","version"],"title":"Organization"},"ApiOrganization_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"string","description":"The name of the organization.","maxLength":80,"minLength":0},"externalClientCode":{"type":"string","description":"The unique client ID applied to this organization.","maxLength":80,"minLength":0},"managerUserIds":{"type":"array","description":"Identifies users assigned to the organization manager role.","items":{"type":"string"}}},"required":["name","version"],"title":"Organization"},"ApiLibrary_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The current name of the library.","maxLength":80,"minLength":0},"warningsDismissed":{"type":"boolean","description":"When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI."},"analysisTypeIds":{"type":"array","description":"Identifies the analysis types used in the library.","items":{"type":"string"}},"defaultDelimiter":{"type":"string","description":"Identifies the default delimiter used in imported CSV files."},"controlPointSelectionPermission":{"type":"boolean","description":"When set to `true`, control points can be added or removed within each risk score."},"controlPointWeightPermission":{"type":"boolean","description":"When set to `true`, the weight of each control point can be adjusted within each risk score."},"controlPointSettingsPermission":{"type":"boolean","description":"When set to `true`, individual control point settings can be adjusted within each risk score."},"riskScoreAndGroupsSelectionPermission":{"type":"boolean","description":"When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited."},"riskRangeEditPermission":{"type":"boolean"},"riskScoreDisplay":{"type":"string","description":"Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.","enum":["HIGH_MEDIUM_LOW","PERCENTAGE"]},"archived":{"type":"boolean","description":"Indicates whether or not the library is archived. Archived libraries cannot be selected when creating an engagement."}},"required":["analysisTypeIds","archived","controlPointSelectionPermission","controlPointSettingsPermission","controlPointWeightPermission","name","riskScoreAndGroupsSelectionPermission","riskScoreDisplay","version","warningsDismissed"],"title":"Library"},"ApiLibrary_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"string","description":"The current name of the library.","maxLength":80,"minLength":0},"basedOnLibraryId":{"type":"string","description":"Identifies the library that the new library is based on. This may be a user-created library or a MindBridge system library."},"originalSystemLibraryId":{"type":"string","description":"Identifies the original MindBridge-supplied library."},"warningsDismissed":{"type":"boolean","description":"When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI."},"conversionWarnings":{"type":"array","description":"A list of accounts that failed to convert the selected base library's setting to the selected account grouping.","items":{"$ref":"#/components/schemas/Problem_Read"}},"accountGroupingId":{"type":"string","description":"Identifies the account grouping used."},"analysisTypeIds":{"type":"array","description":"Identifies the analysis types used in the library.","items":{"type":"string"}},"defaultDelimiter":{"type":"string","description":"Identifies the default delimiter used in imported CSV files."},"controlPointSelectionPermission":{"type":"boolean","description":"When set to `true`, control points can be added or removed within each risk score."},"controlPointWeightPermission":{"type":"boolean","description":"When set to `true`, the weight of each control point can be adjusted within each risk score."},"controlPointSettingsPermission":{"type":"boolean","description":"When set to `true`, individual control point settings can be adjusted within each risk score."},"riskScoreAndGroupsSelectionPermission":{"type":"boolean","description":"When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited."},"riskRangeEditPermission":{"type":"boolean"},"riskScoreDisplay":{"type":"string","description":"Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.","enum":["HIGH_MEDIUM_LOW","PERCENTAGE"]},"system":{"type":"boolean","description":"Indicates whether or not the library is a MindBridge system library."},"archived":{"type":"boolean","description":"Indicates whether or not the library is archived. Archived libraries cannot be selected when creating an engagement."}},"required":["accountGroupingId","analysisTypeIds","archived","basedOnLibraryId","controlPointSelectionPermission","controlPointSettingsPermission","controlPointWeightPermission","name","originalSystemLibraryId","riskScoreAndGroupsSelectionPermission","riskScoreDisplay","version","warningsDismissed"],"title":"Library"},"Problem_Read":{"type":"object","properties":{"problemType":{"type":"string","description":"The type of problem.","enum":["UNKNOWN","ILLEGAL_ARGUMENT","CANNOT_DELETE","GREATER_VALUE_REQUIRED","LESS_VALUE_REQUIRED","NON_UNIQUE_VALUE","USER_EMAIL_ALREADY_EXISTS","INCORRECT_DATA_TYPE","RATIO_CONVERSION_FAILED","RISK_SCORE_FILTER_CONVERSION_FAILED","FILTER_CONVERSION_FAILED","POPULATION_CONVERSION_FAILED","INSUFFICIENT_PERMISSION","ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS","ACCOUNT_GROUPING_IN_USE_BY_LIBRARY","INVALID_ACCOUNT_GROUPING_FILE","DELIVERY_FAILURE","INVALID_STATE"]},"severity":{"type":"string","description":"Indicates how severe the problem is.","enum":["WARNING","ERROR"]},"entityType":{"type":"string","description":"The type of entity impacted by the problem."},"entityId":{"type":"string","description":"Identifies the entity impacted by the problem."},"identifier":{"type":"string","description":"Identifies the field causing the problem."},"values":{"type":"array","description":"Identifies the values causing the problem.","items":{"type":"string"}},"reason":{"type":"string","description":"The reason(s) why the problem occurred."},"suggestedValues":{"type":"array","description":"A suggested set of values to assist in resolving the problem.","items":{"type":"string"}},"problemCount":{"type":"integer","format":"int32","description":"The total number of occurrences of this problem."}}},"ApiFileManagerDirectory_Update":{"allOf":[{"$ref":"#/components/schemas/ApiFileManagerEntity_Update"},{"type":"object","properties":{"name":{"type":"string","description":"The name of the directory."}}}],"required":["name","version"],"title":"File Manager Directory"},"ApiFileManagerEntity_Update":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"type":{"type":"string","description":"Indicates whether the object is a DIRECTORY or a FILE.","enum":["DIRECTORY","FILE"]},"parentFileManagerEntityId":{"type":"string","description":"Identifies the parent directory. If NULL, the directory is positioned at the root level."}},"required":["version"],"title":"File Manager Entity"},"ApiFileManagerFile_Update":{"allOf":[{"$ref":"#/components/schemas/ApiFileManagerEntity_Update"},{"type":"object","properties":{"name":{"type":"string","description":"The current name of the file, excluding the extension."}}}],"required":["name","version"],"title":"File Manager File"},"ApiFileManagerDirectory_Read":{"allOf":[{"$ref":"#/components/schemas/ApiFileManagerEntity_Read"},{"type":"object","properties":{"name":{"type":"string","description":"The name of the directory."}}}],"required":["engagementId","name","version"],"title":"File Manager Directory"},"ApiFileManagerEntity_Read":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"Indicates whether the object is a DIRECTORY or a FILE.","enum":["DIRECTORY","FILE"]},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"parentFileManagerEntityId":{"type":"string","description":"Identifies the parent directory. If NULL, the directory is positioned at the root level."}},"required":["engagementId","version"],"title":"File Manager Entity"},"ApiFileManagerFile_Read":{"allOf":[{"$ref":"#/components/schemas/ApiFileManagerEntity_Read"},{"type":"object","properties":{"originalName":{"type":"string","description":"The name of the file as it appeared when first imported, including the extension."},"name":{"type":"string","description":"The current name of the file, excluding the extension."},"extension":{"type":"string","description":"The suffix used at the end of the file."},"status":{"type":"array","description":"The status of the file as it appears in MindBridge.","items":{"type":"string","enum":["MODIFIED","ROLLED_FORWARD"]},"uniqueItems":true},"fileInfoId":{"type":"string","description":"Identifies the associated file info."}}}],"required":["engagementId","extension","name","originalName","version"],"title":"File Manager File"},"ApiAccountingPeriod_Update":{"type":"object","properties":{"fiscalStartMonth":{"type":"integer","format":"int32","description":"The month that the fiscal period begins."},"fiscalStartDay":{"type":"integer","format":"int32","description":"The date of the month that the fiscal period begins."},"frequency":{"type":"string","description":"The frequency with which your client's financial data is reported.","enum":["ANNUAL","SEMI_ANNUAL","QUARTERLY","MONTHLY","THIRTEEN_PERIODS"]}},"required":["fiscalStartDay","fiscalStartMonth","frequency"],"title":"Accounting Period"},"ApiEngagement_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the engagement.","maxLength":80,"minLength":0},"billingCode":{"type":"string","description":"A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage."},"accountingPeriod":{"$ref":"#/components/schemas/ApiAccountingPeriod_Update","description":"Details about the accounting period."},"auditPeriodEndDate":{"type":"string","format":"date","description":"The last day of the occurring audit."},"accountingPackage":{"type":"string","description":"The ERP or financial management system that your client is using."},"industry":{"type":"string","description":"The type of industry that your client operates within."},"engagementLeadId":{"type":"string","description":"Identifies the user who will lead the engagement."},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analyses use a standard reporting period."},"auditorIds":{"type":"array","description":"Identifies the users who will act as auditors in the engagement.","items":{"type":"string"}}},"required":["accountingPackage","auditPeriodEndDate","engagementLeadId","industry","name","version"],"title":"Engagement"},"ApiAccountingPeriod_Read":{"type":"object","properties":{"fiscalStartMonth":{"type":"integer","format":"int32","description":"The month that the fiscal period begins."},"fiscalStartDay":{"type":"integer","format":"int32","description":"The date of the month that the fiscal period begins."},"frequency":{"type":"string","description":"The frequency with which your client's financial data is reported.","enum":["ANNUAL","SEMI_ANNUAL","QUARTERLY","MONTHLY","THIRTEEN_PERIODS"]}},"required":["fiscalStartDay","fiscalStartMonth","frequency"],"title":"Accounting Period"},"ApiEngagement_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"organizationId":{"type":"string","description":"Identifies the organization."},"name":{"type":"string","description":"The name of the engagement.","maxLength":80,"minLength":0},"billingCode":{"type":"string","description":"A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage."},"libraryId":{"type":"string","description":"Identifies the library."},"accountingPeriod":{"$ref":"#/components/schemas/ApiAccountingPeriod_Read","description":"Details about the accounting period."},"auditPeriodEndDate":{"type":"string","format":"date","description":"The last day of the occurring audit."},"accountingPackage":{"type":"string","description":"The ERP or financial management system that your client is using."},"industry":{"type":"string","description":"The type of industry that your client operates within."},"engagementLeadId":{"type":"string","description":"Identifies the user who will lead the engagement."},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analyses use a standard reporting period."},"auditorIds":{"type":"array","description":"Identifies the users who will act as auditors in the engagement.","items":{"type":"string"}}},"required":["accountingPackage","auditPeriodEndDate","engagementLeadId","industry","libraryId","name","organizationId","version"],"title":"Engagement"},"ApiEngagementAccountGroup_Update":{"type":"object","properties":{"code":{"type":"string","description":"The account code for this account group."},"macCode":{"type":"string","description":"The MAC code mapped to this account group."},"hidden":{"type":"boolean","description":"When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import."},"alias":{"type":"string","description":"A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping."}},"required":["code","hidden"],"title":"Engagement Account Group"},"ApiAccountGroupError_Read":{"type":"object","properties":{"type":{"type":"string","description":"The type of account group error.","enum":["ERROR_LOWEST_LEVEL_WITH_NO_MAC","ERROR_LOWEST_LEVEL_WITHOUT_LEVEL_4_MAC","ERROR_INCONSISTENT_SHEET_HIERARCHY"]},"arguments":{"type":"array","description":"A list of values relevant to the type of account group error.","items":{"type":"string"}}},"title":"Account Group Error"},"ApiEngagementAccountGroup_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"engagementAccountGroupingId":{"type":"string","description":"The unique identifier for the engagement account grouping that the engagement account group belongs to."},"code":{"type":"string","description":"The account code for this account group."},"description":{"type":"object","additionalProperties":{"type":"string"},"description":"A description of the account code for this account group."},"lowestLevel":{"type":"boolean"},"hierarchy":{"type":"array","description":"A list of the parent codes for this account group.","items":{"type":"string"}},"parentCode":{"type":"string","description":"The parent code for this account group."},"macCode":{"type":"string","description":"The MAC code mapped to this account group."},"accountTags":{"type":"array","description":"A list of account tags assigned to this account group.","items":{"type":"string"}},"publishedDate":{"type":"string","format":"date-time","description":"The date this account group was published. If not set, this account group is not published.\n\nPublished account groups cannot be updated."},"orderIndex":{"type":"integer","format":"int32","description":"The order in which this account group is displayed, relative to other account groups with the same parent."},"errors":{"type":"array","description":"A list of errors associated with this account group.","items":{"$ref":"#/components/schemas/ApiAccountGroupError_Read"}},"hidden":{"type":"boolean","description":"When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import."},"origin":{"type":"string","description":"The process that lead to the creation of the account group.","enum":["IMPORTED_FROM_LIBRARY","IMPORTED_FROM_ENGAGEMENT","ADDED_ON_ENGAGEMENT"]},"alias":{"type":"string","description":"A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping."}},"required":["code","description","engagementAccountGroupingId","hidden","parentCode"],"title":"Engagement Account Group"},"ApiDatabricksAuthorization_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"connectionId":{"type":"string","description":"The ID of the Connection this authorization belongs to."},"authType":{"type":"string","description":"The authentication method to use. Possible values: PAT, OAUTH_M2M.","enum":["PAT","OAUTH_M2M"]},"host":{"type":"string","description":"The Databricks server hostname."},"port":{"type":"integer","format":"int32","description":"The port number for the Databricks connection. Typically 443."},"httpPath":{"type":"string","description":"The HTTP path for the Databricks SQL warehouse or cluster."},"accessToken":{"type":"string","description":"The personal access token for PAT authentication.","writeOnly":true},"clientId":{"type":"string","description":"The OAuth client ID for OAUTH_M2M authentication."},"clientSecret":{"type":"string","description":"The OAuth client secret for OAUTH_M2M authentication.","writeOnly":true}},"required":["authType","connectionId","host","httpPath","version"],"title":"Databricks Authorization"},"ApiDatabricksAuthorization_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"connectionId":{"type":"string","description":"The ID of the Connection this authorization belongs to."},"authType":{"type":"string","description":"The authentication method to use. Possible values: PAT, OAUTH_M2M.","enum":["PAT","OAUTH_M2M"]},"host":{"type":"string","description":"The Databricks server hostname."},"port":{"type":"integer","format":"int32","description":"The port number for the Databricks connection. Typically 443."},"httpPath":{"type":"string","description":"The HTTP path for the Databricks SQL warehouse or cluster."},"clientId":{"type":"string","description":"The OAuth client ID for OAUTH_M2M authentication."}},"required":["authType","connectionId","host","httpPath","version"],"title":"Databricks Authorization"},"ApiApiToken_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The token record's name. This will also be used as the API Token User's name."}},"required":["name","version"],"title":"API Token"},"ApiApiToken_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"userId":{"type":"string","description":"Identifies the API Token User associated with this token."},"name":{"type":"string","description":"The token record's name. This will also be used as the API Token User's name."},"partialToken":{"type":"string","description":"A partial representation of the API token."},"expiry":{"type":"string","format":"date-time","description":"The day on which the API token expires."},"allowedAddresses":{"type":"array","description":"Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.","items":{"type":"string"}},"permissions":{"type":"array","description":"The set of permissions that inform which endpoints this token is authorized to access.","items":{"type":"string","enum":["api.organizations.read","api.organizations.write","api.organizations.delete","api.engagements.read","api.engagements.write","api.engagements.delete","api.analyses.read","api.analyses.write","api.analyses.delete","api.analyses.run","api.analysis-sources.read","api.analysis-sources.write","api.analysis-sources.delete","api.file-manager.read","api.file-manager.write","api.file-manager.delete","api.reporting-period-config.read","api.reporting-period-config.write","api.reporting-period-config.delete","api.libraries.read","api.libraries.write","api.libraries.delete","api.account-groupings.read","api.account-groupings.write","api.account-groupings.delete","api.engagement-account-groupings.read","api.engagement-account-groupings.write","api.engagement-account-groupings.delete","api.users.read","api.users.write","api.users.delete","api.data-tables.read","api.api-tokens.read","api.api-tokens.write","api.api-tokens.delete","api.tasks.read","api.tasks.write","api.tasks.delete","api.admin-reports.run","api.analysis-types.read","api.analysis-source-types.read","api.analysis-type-configuration.read","api.analysis-type-configuration.write","api.analysis-type-configuration.delete","api.risk-ranges.read","api.risk-ranges.write","api.risk-ranges.delete","api.filters.read","api.filters.write","api.filters.delete","api.file-infos.read","api.webhooks.read","api.webhooks.write","api.webhooks.delete","api.connections.read","api.connections.write","api.connections.delete","api.connection-data-sources.read","api.connection-data-sources.write","api.connection-data-sources.delete","scim.user.read","scim.user.write","scim.user.delete","scim.user.schema"]}}},"required":["expiry","name","permissions","version"],"title":"API Token"},"ApiAnalysisConfig_Update":{"type":"object","properties":{"riskGroups":{"type":"array","description":"The list of risk groups associated with this analysis config.","items":{"$ref":"#/components/schemas/ApiRiskGroup_Update"}}},"title":"Analysis Config"},"ApiAnalysisTypeConfiguration_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"system":{"type":"boolean"},"configuration":{"$ref":"#/components/schemas/ApiAnalysisConfig_Update","description":"The configuration details for this analysis type."}},"required":["version"],"title":"Analysis Type Configuration"},"ApiRiskGroupFilter_Update":{"type":"object","properties":{"values":{"type":"array","description":"A list of accounts to include in the risk group.","items":{"type":"string"}}},"title":"Risk Group Filter"},"ApiRiskGroup_Update":{"type":"object","properties":{"disabled":{"type":"boolean","description":"Indicates whether the risk group is disabled."},"id":{"type":"string","description":"The unique object identifier for this risk group."},"selectedRiskRange":{"type":"string","description":"The selected risk range for the risk group. The selected value must be part of the applicable risk ranges."},"applicableRiskRanges":{"type":"array","description":"A list of risk ranges that are applicable to the risk group.","items":{"type":"string"},"uniqueItems":true},"filter":{"$ref":"#/components/schemas/ApiRiskGroupFilter_Update","description":"A filter based on account hierarchy used to determine which entries are included in the risk group."},"controlPointWeights":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"A map of control point names to their weights within the risk group."}},"title":"Risk Group"},"ApiAnalysisConfig_Read":{"type":"object","properties":{"riskGroups":{"type":"array","description":"The list of risk groups associated with this analysis config.","items":{"$ref":"#/components/schemas/ApiRiskGroup_Read"}}},"title":"Analysis Config"},"ApiAnalysisTypeConfiguration_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"system":{"type":"boolean"},"libraryId":{"type":"string","description":"Identifies the library associated with this configuration."},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisId":{"type":"string","description":"Identifies the analysis associated with this configuration."},"analysisTypeId":{"type":"string","description":"Identifies the type of analysis."},"configuration":{"$ref":"#/components/schemas/ApiAnalysisConfig_Read","description":"The configuration details for this analysis type."},"controlPointBundleVersion":{"type":"string","description":"The version of the control point bundle used in this configuration."},"template":{"type":"boolean","description":"Indicates whether this configuration is a template."}},"required":["version"],"title":"Analysis Type Configuration"},"ApiRiskGroupFilter_Read":{"type":"object","properties":{"values":{"type":"array","description":"A list of accounts to include in the risk group.","items":{"type":"string"}}},"title":"Risk Group Filter"},"ApiRiskGroup_Read":{"type":"object","properties":{"disabled":{"type":"boolean","description":"Indicates whether the risk group is disabled."},"id":{"type":"string","description":"The unique object identifier for this risk group."},"system":{"type":"boolean","description":"Indicates whether the risk group is a MindBridge system risk group."},"analysisTypeId":{"type":"string","description":"Identifies the analysis type that the risk group is associated with."},"selectedRiskRange":{"type":"string","description":"The selected risk range for the risk group. The selected value must be part of the applicable risk ranges."},"applicableRiskRanges":{"type":"array","description":"A list of risk ranges that are applicable to the risk group.","items":{"type":"string"},"uniqueItems":true},"filter":{"$ref":"#/components/schemas/ApiRiskGroupFilter_Read","description":"A filter based on account hierarchy used to determine which entries are included in the risk group."},"controlPointWeights":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"A map of control point names to their weights within the risk group."},"controlPointBundleVersion":{"type":"string","description":"The version of the control point bundle used in this risk group."},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of localized risk group names, keyed by language code."},"description":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of localized risk group descriptions, keyed by language code."},"category":{"type":"object","additionalProperties":{"type":"string"},"description":"Identifies the risk group's category."},"riskAssertionCategory":{"type":"string","description":"Identifies the risk assertion category of the risk group.","enum":["GENERAL","ASSETS","LIABILITIES_EQUITY","PROFIT_LOSS","LIABILITIES","EQUITY","REVENUE","EXPENSES"]}},"title":"Risk Group"},"ApiAmbiguousColumn_Update":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column with the resolution."},"selectedFormat":{"type":"string","description":"The data format to be used in case of ambiguity."}},"title":"Ambiguous Column Resolution"},"ApiAnalysisSource_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"warningsIgnored":{"type":"boolean","description":"Indicates whether or not warnings should be ignored."},"targetWorkflowState":{"type":"string","description":"The state that the current workflow will advance to.","enum":["COMPLETED","CANCELLED","FAILED","STARTED","DETECTING_FORMAT","ANALYZING_COLUMNS","CHECKING_INTEGRITY","SCANNING_TRANSACTION_COMBINATIONS","PARSING","PARSING_ICEBERG","ANALYZING_EFFECTIVE_DATE_METRICS","FORMAT_DETECTION_COMPLETED","COLUMN_MAPPINGS_CONFIRMED","SETTINGS_CONFIRMED","PREPARING_ICEBERG","ANALYSIS_PERIOD_SELECTED","FUNDS_REVIEWED","RUNNING","UNPACK_COMPLETE","UPLOADED","FORMAT_DETECTED","COLUMNS_ANALYZED","INTEGRITY_CHECKED","PARSED","AUTHENTICATED","CONFIGURED","EFFECTIVE_DATE_METRICS_ANALYZED","DATA_VALIDATION_CONFIRMED"]},"applyDegrouper":{"type":"boolean","description":"Indicates whether or not the degrouper should be applied."},"proposedColumnMappings":{"type":"array","description":"Details about the proposed column mapping.","items":{"$ref":"#/components/schemas/ApiProposedColumnMapping_Update"}},"columnMappings":{"type":"array","description":"Details about column mapping.","items":{"$ref":"#/components/schemas/ApiColumnMapping_Update"}},"proposedVirtualColumns":{"type":"array","description":"Details about the proposed virtual columns added during the file import process.","items":{"oneOf":[{"$ref":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiProposedJoinVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Update"}]}},"virtualColumns":{"type":"array","description":"Details about the virtual columns added during file ingestion. ","items":{"oneOf":[{"$ref":"#/components/schemas/ApiDuplicateVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiJoinVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiSplitByDelimiterVirtualColumn_Update"},{"$ref":"#/components/schemas/ApiSplitByPositionVirtualColumn_Update"}]}},"proposedAmbiguousColumnResolutions":{"type":"array","description":"Details about the virtual columns added during file ingestion.","items":{"$ref":"#/components/schemas/ApiProposedAmbiguousColumnResolution_Update"}},"ambiguousColumnResolutions":{"type":"array","description":"Details about resolutions to ambiguity in a column.","items":{"$ref":"#/components/schemas/ApiAmbiguousColumn_Update"}},"proposedTransactionIdSelection":{"$ref":"#/components/schemas/ApiTransactionIdSelection_Update","description":"The proposed columns to include when selecting a transaction ID."},"transactionIdSelection":{"$ref":"#/components/schemas/ApiTransactionIdSelection_Update","description":"Details about transaction ID selection."}},"required":["version"],"title":"Analysis Source"},"ApiColumnMapping_Update":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column mapping."},"mindbridgeField":{"type":"string","description":"The MindBridge field that the data column was mapped to."},"additionalColumnName":{"type":"string","description":"Additional columns of data that were added to the analysis."}},"title":"Column Mapping"},"ApiDuplicateVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the duplicated column."}}}],"required":["columnIndex","name","type","version"],"title":"Duplicate Virtual Column"},"ApiJoinVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Update"},{"type":"object","properties":{"columnIndices":{"type":"array","description":"The position of the joined column.","items":{"type":"integer","format":"int32"}},"delimiter":{"type":"string","description":"The character(s) used to separate values."}}}],"required":["columnIndices","delimiter","name","type","version"],"title":"Join Virtual Column"},"ApiProposedAmbiguousColumnResolution_Update":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column with the proposed resolution.","minimum":0},"selectedFormat":{"type":"string","description":"The selected format of the proposed resolution."}},"required":["position","selectedFormat"],"title":"Proposed Ambiguous Column Resolution"},"ApiProposedColumnMapping_Update":{"type":"object","properties":{"columnPosition":{"type":"integer","format":"int32","description":"The position of the proposed column mapping in the original input file."},"virtualColumnIndex":{"type":"integer","format":"int32","description":"The position of the proposed virtual columns within the `proposedVirtualColumns` list."},"mindbridgeField":{"type":"string","description":"The MindBridge field that the data column should be mapped to."},"additionalColumnName":{"type":"string","description":"Proposed additional columns of data to be added to the analysis."}},"title":"Proposed Column Mapping"},"ApiProposedDuplicateVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be duplicated."}}}],"required":["columnIndex"],"title":"Proposed Duplicate Virtual Column"},"ApiProposedJoinVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Update"},{"type":"object","properties":{"columnIndices":{"type":"array","description":"The positions of the columns to be joined.","items":{"type":"integer","format":"int32"}},"delimiter":{"type":"string","description":"The character(s) that should be inserted to separate values."}}}],"required":["columnIndices","delimiter"],"title":"Proposed Join Virtual Column"},"ApiProposedSplitByDelimiterVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"delimiter":{"type":"string","description":"The character(s) that should be used to separate the string into parts."},"splitIndex":{"type":"integer","format":"int32","description":"The position of the part to be used as a virtual column."}}}],"required":["columnIndex","delimiter","splitIndex"],"title":"Proposed Split By Delimiter Virtual Column"},"ApiProposedSplitByPositionVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"startPosition":{"type":"integer","format":"int32","description":"The starting position of the substring to be used as the new column. **Inclusive**."},"endPosition":{"type":"integer","format":"int32","description":"The ending position of the substring to be used as the new column. **Exclusive**."}}}],"required":["columnIndex","endPosition","startPosition"],"title":"Proposed Split By Position Virtual Column"},"ApiProposedVirtualColumn_Update":{"type":"object","discriminator":{"propertyName":"type","mapping":{"DUPLICATE":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Update","JOIN":"#/components/schemas/ApiProposedJoinVirtualColumn_Update","SPLIT_BY_DELIMITER":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Update","SPLIT_BY_POSITION":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Update"}},"properties":{"name":{"type":"string","description":"The name of the proposed virtual column."},"type":{"type":"string","description":"The type of proposed virtual column.","enum":["DUPLICATE","SPLIT_BY_POSITION","SPLIT_BY_DELIMITER","JOIN"]}},"title":"Proposed Virtual Column"},"ApiSplitByDelimiterVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the split column."},"delimiter":{"type":"string","description":"The character(s) used to separate the string into parts."},"splitIndex":{"type":"integer","format":"int32","description":"The position of the part used as a virtual column."}}}],"required":["columnIndex","delimiter","name","splitIndex","type","version"],"title":"Split By Delimiter Virtual Column"},"ApiSplitByPositionVirtualColumn_Update":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Update"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the split column."},"startPosition":{"type":"integer","format":"int32","description":"The starting position of the substring in the new column. **Inclusive**."},"endPosition":{"type":"integer","format":"int32","description":"The ending position of the substring in the new column. **Exclusive**."}}}],"required":["columnIndex","endPosition","name","startPosition","type","version"],"title":"Split By Position Virtual Column"},"ApiTransactionIdSelection_Update":{"type":"object","properties":{"columnSelection":{"type":"array","description":"The columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"virtualColumnSelection":{"type":"array","description":"The virtual columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"type":{"type":"string","description":"The type used when selecting a transaction ID.","enum":["COMBINATION","RUNNING_TOTAL"]},"applySmartSplitter":{"type":"boolean","description":"Indicates whether or not the Smart Splitter was run when selecting a transaction ID."}},"required":["type"],"title":"Transaction ID Selection"},"ApiVirtualColumn_Update":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the virtual column."},"type":{"type":"string","description":"The type of virtual column.","enum":["DUPLICATE","SPLIT_BY_POSITION","SPLIT_BY_DELIMITER","JOIN"]}},"required":["name","type","version"],"title":"Virtual Column"},"ApiAsyncResult_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"Indicates the type of job being run.","enum":["ANALYSIS_RUN","ANALYSIS_SOURCE_INGESTION","ADMIN_REPORT","DATA_TABLE_EXPORT","ANALYSIS_ROLL_FORWARD","GDPDU_UNPACK_JOB","ACCOUNT_GROUPING_EXPORT","ACCOUNT_MAPPING_EXPORT","DATA_TRANSFORMATION_JOB","CONNECTION_TEST","CONNECTION_TABLES","DATA_TABLE"]},"status":{"type":"string","description":"Indicates the current state of the job.","enum":["IN_PROGRESS","COMPLETE","ERROR"]},"entityId":{"type":"string","description":"Identifies the entity used in the job."},"entityType":{"type":"string","description":"Identifies the entity type used in the job.","enum":["ORGANIZATION","ENGAGEMENT","ANALYSIS","ANALYSIS_RESULT","ANALYSIS_SOURCE","FILE_RESULT","GDPDU_UNPACK_JOB","ACCOUNT_GROUPING","ENGAGEMENT_ACCOUNT_GROUPING","FILE_MANAGER_FILE","CONNECTION_TEST_RESULT","CONNECTION_TABLES_RESULT","DATA_TABLE"]},"error":{"type":"string","description":"The reason why the async job failed."},"errorMessage":{"type":"string"}},"required":["version"],"title":"Async Result"},"ApiAnalysisPeriod_Update":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"startDate":{"type":"string","format":"date","description":"The first day of the period under analysis."},"interimAsAtDate":{"type":"string","format":"date","description":"The last day of the interim period under analysis."},"endDate":{"type":"string","format":"date","description":"The last day of the period under analysis."}},"required":["endDate","startDate"]},"ApiAnalysis_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"name":{"type":"string","description":"The name of the analysis.","maxLength":80,"minLength":0},"archived":{"type":"boolean","description":"Indicates whether or not the analysis has been archived."},"analysisPeriods":{"type":"array","description":"Details about the specific analysis periods under audit.","items":{"$ref":"#/components/schemas/ApiAnalysisPeriod_Update"}},"currencyCode":{"type":"string","description":"The currency to be displayed across the analysis results."},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period."},"accountingPeriod":{"$ref":"#/components/schemas/ApiAccountingPeriod_Update","description":"Details about the accounting period used in this analysis. If null the analysis uses a custom reporting period."}},"required":["analysisPeriods","currencyCode","name","version"],"title":"Analysis"},"ApiAnalysisImportantColumn_Read":{"type":"object","properties":{"columnName":{"type":"string","description":"The name of the column as it appears in the imported file."},"field":{"type":"string","description":"The name of the additional data column."}}},"ApiAnalysisPeriodGap_Read":{"type":"object","properties":{"analysisPeriodId":{"type":"string","description":"Identifies the analysis period."},"previousAnalysisPeriodId":{"type":"string","description":"Identifies the previous analysis period relevant to the current analysis period."},"days":{"type":"integer","format":"int64","description":"The number of days between two analysis periods."}},"required":["analysisPeriodId","days","previousAnalysisPeriodId"]},"ApiAnalysisPeriod_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"startDate":{"type":"string","format":"date","description":"The first day of the period under analysis."},"interimAsAtDate":{"type":"string","format":"date","description":"The last day of the interim period under analysis."},"endDate":{"type":"string","format":"date","description":"The last day of the period under analysis."}},"required":["endDate","startDate"]},"ApiAnalysis_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisTypeId":{"type":"string","description":"Identifies the type of analysis."},"name":{"type":"string","description":"The name of the analysis.","maxLength":80,"minLength":0},"interim":{"type":"boolean","description":"Indicates whether or not the analysis is using an interim time frame."},"archived":{"type":"boolean","description":"Indicates whether or not the analysis has been archived."},"converted":{"type":"boolean","description":"Indicates whether or not an interim analysis time frame has been converted to a full analysis time frame."},"periodic":{"type":"boolean","description":"Indicates whether or not the analysis is using a periodic time frame."},"importantColumns":{"type":"array","description":"Additional data columns that can be used when importing additional data.","items":{"$ref":"#/components/schemas/ApiAnalysisImportantColumn_Read"}},"analysisPeriods":{"type":"array","description":"Details about the specific analysis periods under audit.","items":{"$ref":"#/components/schemas/ApiAnalysisPeriod_Read"}},"analysisPeriodGaps":{"type":"array","description":"Details about the gap in time between two analysis periods.","items":{"$ref":"#/components/schemas/ApiAnalysisPeriodGap_Read"}},"currencyCode":{"type":"string","description":"The currency to be displayed across the analysis results."},"latestAnalysisResultId":{"type":"string"},"referenceId":{"type":"string","description":"A reference ID to identify the analysis.","maxLength":256,"minLength":0},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period."},"accountingPeriod":{"$ref":"#/components/schemas/ApiAccountingPeriod_Read","description":"Details about the accounting period used in this analysis. If null the analysis uses a custom reporting period."}},"required":["analysisPeriods","analysisTypeId","currencyCode","engagementId","name","version"],"title":"Analysis"},"ApiAccountMapping_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"code":{"type":"string","description":"The account grouping code mapped to this account."},"accountTags":{"type":"array","description":"A list of account tags associated with this account.","items":{"type":"string"},"uniqueItems":true}},"required":["accountTags","version"],"title":"Account Mapping"},"ApiAccountMapping_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"account":{"type":"string","description":"The account name as provided in the source data."},"accountDescription":{"type":"string","description":"The description of the account as provided in the source data."},"code":{"type":"string","description":"The account grouping code mapped to this account."},"status":{"type":"string","description":"Indicates the current status of the account mapping.","enum":["MANUAL","MAC_CODE","MODIFIED_MAC","UNVERIFIED","VERIFIED","INFERRED","UNMAPPED","USED","UNUSED"]},"usedByAnalysisSources":{"type":"array","description":"A list of analysis sources that use this account.","items":{"type":"string"},"uniqueItems":true},"fundId":{"type":"string","description":"The fund that includes this account."},"accountTags":{"type":"array","description":"A list of account tags associated with this account.","items":{"type":"string"},"uniqueItems":true}},"required":["accountTags","version"],"title":"Account Mapping"},"ApiAccountGroup_Update":{"type":"object","properties":{"macCode":{"type":"string","description":"The MAC code mapped to this account group."},"accountTags":{"type":"array","description":"A list of account tags assigned to this account group.","items":{"type":"string"}}},"title":"Account Group"},"ApiAccountGroup_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"accountGroupingId":{"type":"string","description":"The unique identifier for the account grouping that the account group belongs to."},"code":{"type":"string","description":"The account code for this account group."},"description":{"type":"object","additionalProperties":{"type":"string"},"description":"A description of the account code for this account group."},"lowestLevel":{"type":"boolean"},"hierarchy":{"type":"array","description":"A list of the parent codes for this account group.","items":{"type":"string"}},"parentCode":{"type":"string","description":"The parent code for this account group."},"macCode":{"type":"string","description":"The MAC code mapped to this account group."},"accountTags":{"type":"array","description":"A list of account tags assigned to this account group.","items":{"type":"string"}},"publishedDate":{"type":"string","format":"date-time","description":"The date this account group was published. If not set, this account group is not published.\n\nPublished account groups cannot be updated."},"orderIndex":{"type":"integer","format":"int32","description":"The order in which this account group is displayed, relative to other account groups with the same parent."},"errors":{"type":"array","description":"A list of errors associated with this account group.","items":{"$ref":"#/components/schemas/ApiAccountGroupError_Read"}}},"required":["code","description"],"title":"Account Group"},"ApiAccountGrouping_Update":{"type":"object","properties":{"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account grouping."},"archived":{"type":"boolean","description":"When `true`, the account grouping is archived."},"publishStatus":{"type":"string","description":"The current status of the account grouping.","enum":["DRAFT","UNPUBLISHED_CHANGES","PUBLISHED"]}},"required":["name","publishStatus","version"],"title":"Account Grouping"},"ApiAccountGrouping_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account grouping."},"codeDisplayName":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account code hierarchy system used within the dataset."},"delimiter":{"type":"string","description":"The delimiter character used to separate each category level in an account grouping code."},"mac":{"type":"boolean","description":"When `true`, the account grouping is based on the MAC code system."},"system":{"type":"boolean","description":"When `true`, the account grouping is a system account grouping and cannot be modified."},"archived":{"type":"boolean","description":"When `true`, the account grouping is archived."},"publishedDate":{"type":"string","format":"date-time","description":"The date that the account grouping was published."},"publishStatus":{"type":"string","description":"The current status of the account grouping.","enum":["DRAFT","UNPUBLISHED_CHANGES","PUBLISHED"]}},"required":["codeDisplayName","delimiter","name","publishStatus","version"],"title":"Account Grouping"},"ApiWebhook_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the webhook."},"url":{"type":"string","description":"The URL to which the webhook will send notifications."},"technicalContactId":{"type":"string","description":"A reference to an administrative user used to inform system administrators of issues with the webhooks."},"events":{"type":"array","description":"A list of events that will trigger this webhook.","items":{"type":"string","enum":["EXPORT_READY","FILE_MANAGER_FILE_ADDED","INGESTION_COMPLETE","INGESTION_FAILED","INGESTION_ANALYSIS_COMPLETE","INGESTION_ANALYSIS_FAILED","UNMAPPED_ACCOUNTS_DETECTED","ENGAGEMENT_CREATED","ENGAGEMENT_UPDATED","ENGAGEMENT_DELETED","ANALYSIS_CREATED","ANALYSIS_UPDATED","ANALYSIS_DELETED","ANALYSIS_ARCHIVED","ANALYSIS_UNARCHIVED","USER_INVITED","USER_STATUS_UPDATED","USER_ROLE_UPDATED","USER_DELETED","USER_LOGIN"],"title":"Event Type"},"maxItems":2147483647,"minItems":1},"status":{"type":"string","description":"The current status of the webhook.","enum":["ACTIVE","INACTIVE"]}},"required":["events","name","status","technicalContactId","url"],"title":"Webhook"},"ShieldQueryTerm_Read":{"type":"object","$ref":"#/components/schemas/MindBridgeQueryTerm","properties":{"operator":{"type":"string","enum":["$eq","$ne","$gt","$gte","$lt","$lte","$contains","$ncontains","$in","$nin","$flags","$keyword_prefix","$keyword_prefix_not","$isubstr","$iprefix","$niprefix","$between","$nbetween","$and","$or","$population","$not_population",null]}},"required":["operator"]},"ApiPageApiWebhook_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiWebhook_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiPageable_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32","deprecated":true,"description":"The current page number."},"pageSize":{"type":"integer","format":"int32","deprecated":true,"description":"The number of requested elements on a page."},"offset":{"type":"integer","format":"int64","deprecated":true,"description":"Indicates by how many pages the first page is offset."},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true,"description":"Indicates how the data will be sorted."}}},"Sortnull_Read":{"type":"object","properties":{"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"},"empty":{"type":"boolean"}}},"ApiPageApiWebhookEventLog_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiWebhookEventLog_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiWebhookEventLog_Read":{"type":"object","properties":{"id":{"type":"string"},"version":{"type":"integer","format":"int64"},"creationDate":{"type":"string","format":"date-time"},"lastModifiedDate":{"type":"string","format":"date-time"},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"status":{"type":"string","enum":["IN_PROGRESS","COMPLETED","FAILED","FAILED_PERMANENTLY","DISCONNECTED"]},"webhookId":{"type":"string"},"attemptStartDate":{"type":"string","format":"date-time"},"url":{"type":"string"},"eventType":{"type":"string"},"requestHeaders":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"requestBody":{"type":"string"},"responseStatusCode":{"type":"integer","format":"int32"},"responseHeaders":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"responseTimeSec":{"type":"number","format":"float"},"retryCount":{"type":"integer","format":"int32"},"requestId":{"type":"string"}},"required":["version"],"title":"Webhook Event Log"},"ApiUser_Create":{"type":"object","properties":{"email":{"type":"string","description":"The user's email address."},"role":{"type":"string","description":"The MindBridge role assigned to the user. [Learn about user roles](https://support.mindbridge.ai/hc/en-us/articles/360056394954-User-roles-available-in-MindBridge)","enum":["ROLE_ADMIN","ROLE_ORGANIZATION_ADMIN","ROLE_USER","ROLE_CLIENT","ROLE_MINDBRIDGE_SUPPORT","ROLE_USER_ADMIN"]}},"required":["email","role"],"title":"User"},"ApiPageApiUser_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiUser_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiPageApiTransactionIdPreview_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiTransactionIdPreview_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiTransactionIdPreviewIndicator_Read":{"type":"object","properties":{"rating":{"type":"string","description":"The quality of the indicator as rated by MindBridge.","enum":["BLOCK","FAIL","POOR","NEUTRAL","GOOD"]},"value":{"description":"A value for this specific indicator."},"data":{"type":"array","description":"The set of transactions related to a specific indicator.","items":{"$ref":"#/components/schemas/ApiTransactionIdPreviewRow_Read"}}},"title":"Transaction ID Preview Indicator"},"ApiTransactionIdPreviewRow_Read":{"type":"object","properties":{"transactionId":{"type":"string","description":"Identifies the transaction ID for this transaction."},"balance":{"type":"integer","format":"int64","description":"The balance of the transaction."},"entryCount":{"type":"integer","format":"int64","description":"The number of entries that appear within the transaction."},"detailRows":{"type":"array","description":"The set of entries that appear within the transaction.","items":{"type":"object","additionalProperties":{}}}},"title":"Transaction ID Preview Row"},"ApiTransactionIdPreview_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","deprecated":true},"analysisId":{"type":"string","deprecated":true},"analysisSourceId":{"type":"string","description":"The unique identifier of the associated analysis source."},"columnSelection":{"type":"array","description":"The list of columns used to generate the transaction ID.","items":{"type":"integer","format":"int32"}},"type":{"type":"string","description":"The type used when selecting a transaction ID.","enum":["COMBINATION","RUNNING_TOTAL"]},"smartSplitter":{"type":"boolean","description":"Indicates whether or not the Smart Splitter was run when selecting a transaction ID."},"overallRating":{"type":"string","description":"The quality of the transaction ID as rated by MindBridge.","enum":["BLOCK","FAIL","POOR","NEUTRAL","GOOD"]},"indicators":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiTransactionIdPreviewIndicator_Read"},"description":"The data integrity checks used when selecting a transaction ID."},"entryPreviews":{"type":"array","description":"Details about the transactions generated by this transaction ID selection.","items":{"$ref":"#/components/schemas/ApiTransactionIdPreviewRow_Read"}}},"required":["version"],"title":"Transaction ID Preview"},"ApiTask_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisResultId":{"type":"string"},"rowId":{"type":"integer","format":"int64","description":"Identifies the associated entry."},"transactionId":{"type":"integer","format":"int64","description":"Identifies the associated transaction."},"status":{"type":"string","description":"The current state of the task.","enum":["OPEN","NORMAL","COMPLETED","DISMISSED","RESOLVED"],"title":"Task Status"},"assignedId":{"type":"string","description":"Identifies the user assigned to this task."},"description":{"type":"string","description":"A description of the task."},"sample":{"type":"string","description":"Which sample this task is a part of."},"auditAreas":{"type":"array","description":"Which audit areas this task is associated with.","items":{"type":"string"}},"assertions":{"type":"array","description":"Which assertions this task is associated with.","items":{"type":"string"}},"type":{"type":"string","description":"The type of entry this task is associated with.","enum":["ENTRY","TRANSACTION","AP_ENTRY","AR_ENTRY","AP_OUTSTANDING_ENTRY","AR_OUTSTANDING_ENTRY","TRA_ENTRY","SUBLEDGER_ENTRY"],"title":"Task Type"},"taskApprovalStatus":{"type":"string","enum":["PENDING","REJECTED","APPROVED"],"title":"Task Approval Status"},"dueDate":{"type":"string","format":"date"},"tags":{"type":"array","items":{"type":"string"}}},"required":["analysisResultId","engagementId","status","type"],"title":"Task"},"ApiTaskComment_Create":{"type":"object","properties":{"commentText":{"type":"string","description":"The text of the comment."}},"title":"Task Comment"},"ApiPageApiTask_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiTask_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiPageApiTaskHistory_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiTaskHistory_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiTaskHistoryEntry_Read":{"type":"object","properties":{"fieldName":{"type":"string"},"fieldType":{"type":"string","enum":["ARRAY","ISO_DATE","OBJECT","STRING","INTEGER"]},"previousValue":{},"newValue":{},"previousValueString":{"type":"string"},"newValueString":{"type":"string"}},"title":"Task History Entry"},"ApiTaskHistory_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"dateTime":{"type":"string","format":"date-time","description":"The date and time that the task history was created."},"userName":{"type":"string","description":"Name of the user associated with the history record"},"taskId":{"type":"string","description":"Identifies the associated task."},"userId":{"type":"string","description":"The id of the user associated with the history record"},"operation":{"type":"string","description":"The operation that was performed on the task.","enum":["CREATE","UPDATE","COMPLETED","DELETE","COMMENT","ASSIGNMENT","STATUS_CHANGE","MARKASNORMAL"]},"changes":{"type":"array","description":"A list of changes that were made to the task.","items":{"$ref":"#/components/schemas/ApiTaskHistoryEntry_Read"}}},"title":"Task History"},"ApiFilterCondition_Create":{"type":"object","discriminator":{"propertyName":"type","mapping":{"GROUP":"#/components/schemas/ApiFilterGroupCondition","STRING":"#/components/schemas/ApiFilterStringCondition","STRING_ARRAY":"#/components/schemas/ApiFilterStringArrayCondition","CONTROL_POINT":"#/components/schemas/ApiFilterControlPointCondition","ACCOUNT_NODE_ARRAY":"#/components/schemas/ApiFilterAccountCondition","TYPEAHEAD_ENTRY":"#/components/schemas/ApiFilterTypeaheadEntryCondition","POPULATIONS":"#/components/schemas/ApiFilterPopulationsCondition","RISK_SCORE":"#/components/schemas/ApiFilterRiskScoreCondition","MONETARY_FLOW":"#/components/schemas/ApiFilterMonetaryFlowCondition","MONEY":"#/components/schemas/ApiFilterMonetaryValueCondition","MATERIALITY":"#/components/schemas/ApiFilterMaterialityCondition","NUMERICAL":"#/components/schemas/ApiFilterNumericalValueCondition","DATE":"#/components/schemas/ApiFilterDateCondition"}},"oneOf":[{"$ref":"#/components/schemas/ApiFilterGroupCondition"},{"$ref":"#/components/schemas/ApiFilterStringCondition"},{"$ref":"#/components/schemas/ApiFilterStringArrayCondition"},{"$ref":"#/components/schemas/ApiFilterControlPointCondition"},{"$ref":"#/components/schemas/ApiFilterAccountCondition"},{"$ref":"#/components/schemas/ApiFilterTypeaheadEntryCondition"},{"$ref":"#/components/schemas/ApiFilterPopulationsCondition"},{"$ref":"#/components/schemas/ApiFilterRiskScoreCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryFlowCondition"},{"$ref":"#/components/schemas/ApiFilterMonetaryValueCondition"},{"$ref":"#/components/schemas/ApiFilterMaterialityCondition"},{"$ref":"#/components/schemas/ApiFilterNumericalValueCondition"},{"$ref":"#/components/schemas/ApiFilterDateCondition"}],"properties":{"type":{"type":"string","description":"The type of condition.","enum":["GROUP","STRING","STRING_ARRAY","CONTROL_POINT","ACCOUNT_NODE_ARRAY","TYPEAHEAD_ENTRY","POPULATIONS","RISK_SCORE","MONETARY_FLOW","MONEY","MATERIALITY","NUMERICAL","DATE"],"title":"Filter Condition Type"}},"required":["type"],"title":"Filter Condition"},"ApiFilterGroupCondition_Create":{"type":"object","allOf":[{"$ref":"#/components/schemas/ApiFilterCondition"},{"type":"object","properties":{"type":{"type":"string","default":"GROUP","enum":["GROUP"],"title":"Filter Condition Type"},"operator":{"type":"string","description":"The operator to be applied to conditions within this group.","enum":["AND","OR"],"title":"Filter Group Operator"},"conditions":{"type":"array","description":"The entries within this condition group.","items":{"$ref":"#/components/schemas/ApiFilterCondition"},"minItems":1}}}],"required":["conditions","operator","type"],"title":"Filter Group Condition"},"ApiFilter_Create":{"type":"object","properties":{"analysisTypeId":{"type":"string","description":"Identifies the associated analysis type."},"organizationId":{"type":"string","description":"Identifies the parent organization, if applicable. Can only be set if `filterType` is `ORGANIZATION` or `PRIVATE`."},"libraryId":{"type":"string","description":"Identifies the parent library, if applicable. Can only be set if `filterType` is `LIBRARY`."},"engagementId":{"type":"string","description":"Identifies the parent engagement, if applicable. Can only be set if `filterType` is `ENGAGEMENT`."},"filterType":{"type":"string","description":"The type of this filter. Determines in which context analyses can access it.","enum":["LIBRARY","ORGANIZATION","PRIVATE","ENGAGEMENT"],"title":"Filter Type"},"dataType":{"type":"string","description":"The intended data type for this filter.","enum":["TRANSACTIONS","ENTRIES","LIBRARY"],"title":"Filter Data Type"},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of this filter."},"category":{"type":"object","additionalProperties":{"type":"string"},"description":"The category of this filter."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 3 digit currency code used to determine how currency values are formatted for display. Defaults to `USD` if no value is selected."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used when formatting some display values. Defaults to `en-us` if no value is specified."},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Create","description":"A group filter containing all the conditions included in this filter."}},"required":["analysisTypeId","category","condition","name"],"title":"Saved Filter"},"ApiFilterValidateRequest_Create":{"type":"object","properties":{"filterId":{"type":"string"},"dataTableId":{"type":"string"}},"required":["dataTableId","filterId"],"title":"Saved Filter Validate Request"},"ApiPageApiFilter_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiFilter_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiRiskRangeBounds_Create":{"type":"object","properties":{"lowThreshold":{"type":"integer","format":"int32","description":"The low threshold of the risk range.","maximum":10000,"minimum":0},"highThreshold":{"type":"integer","format":"int32","description":"The high threshold of the risk range.","maximum":10000,"minimum":0}},"title":"Risk Range Bounds"},"ApiRiskRanges_Create":{"type":"object","properties":{"low":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Create","description":"The low range bounds."},"medium":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Create","description":"The medium range bounds."},"high":{"$ref":"#/components/schemas/ApiRiskRangeBounds_Create","description":"The high range bounds."},"libraryId":{"type":"string","description":"Identifies the library associated with this risk range."},"analysisTypeId":{"type":"string","description":"Identifies the analysis type associated with this risk range."},"name":{"type":"string","description":"The name of the risk range.","maxLength":80,"minLength":0},"description":{"type":"string","description":"The description of the risk range.","maxLength":250,"minLength":0}},"required":["analysisTypeId","libraryId","name"],"title":"Risk Ranges"},"ApiPageApiRiskRanges_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiRiskRanges_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiMonthlyReportingPeriod_Create":{"type":"object","properties":{"periodNumber":{"type":"integer","format":"int32"},"quarterNumber":{"type":"integer","format":"int32"},"yearLabel":{"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"}},"required":["endDate","periodNumber","quarterNumber","startDate","yearLabel"],"title":"Monthly Reporting Period"},"ApiReportingPeriodConfigurationRequest_Create":{"type":"object","properties":{"monthlyReportingPeriods":{"type":"array","items":{"$ref":"#/components/schemas/ApiMonthlyReportingPeriod_Create"}},"weeklyReportingPeriods":{"type":"array","items":{"$ref":"#/components/schemas/ApiWeeklyReportingPeriod_Create"}}},"required":["monthlyReportingPeriods","weeklyReportingPeriods"],"title":" Reporting Period Configuration Request"},"ApiWeeklyReportingPeriod_Create":{"type":"object","properties":{"weekNumber":{"type":"integer","format":"int32"},"yearLabel":{"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"}},"required":["endDate","startDate","weekNumber","yearLabel"],"title":"Weekly Reporting Period"},"ApiMonthlyReportingPeriod_Read":{"type":"object","properties":{"periodNumber":{"type":"integer","format":"int32"},"quarterNumber":{"type":"integer","format":"int32"},"yearLabel":{"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"}},"required":["endDate","periodNumber","quarterNumber","startDate","yearLabel"],"title":"Monthly Reporting Period"},"ApiReportingPeriodConfiguration_Read":{"type":"object","properties":{"id":{"type":"string"},"version":{"type":"integer","format":"int64"},"creationDate":{"type":"string","format":"date-time"},"lastModifiedDate":{"type":"string","format":"date-time"},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","readOnly":true},"monthlyReportingPeriods":{"type":"array","description":"List of monthly reporting periods.","items":{"$ref":"#/components/schemas/ApiMonthlyReportingPeriod_Read"}},"weeklyReportingPeriods":{"type":"array","description":"List of weekly reporting periods.","items":{"$ref":"#/components/schemas/ApiWeeklyReportingPeriod_Read"}},"status":{"type":"string","enum":["UPLOADED","VALIDATING","FAILED","COMPLETED"]}},"required":["version"],"title":"Reporting Period Configuration"},"ApiWeeklyReportingPeriod_Read":{"type":"object","properties":{"weekNumber":{"type":"integer","format":"int32"},"yearLabel":{"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"}},"required":["endDate","startDate","weekNumber","yearLabel"],"title":"Weekly Reporting Period"},"ApiPageApiReportingPeriodConfiguration_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiReportingPeriodConfiguration_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiPopulationTag_Create":{"type":"object","properties":{"analysisTypeId":{"type":"string"},"libraryId":{"type":"string","description":"The ID of the parent library."},"analysisId":{"type":"string","description":"The ID of the parent analysis."},"basePopulationId":{"type":"string","description":"The ID of the population the current population is based on."},"name":{"type":"string","description":"The name of the population.","maxLength":80,"minLength":0},"category":{"type":"string","description":"The category of the population.","maxLength":80,"minLength":0},"description":{"type":"string","description":"A description of the population.","maxLength":250,"minLength":0},"disabled":{"type":"boolean"},"condition":{"$ref":"#/components/schemas/ApiFilterGroupCondition_Create","description":"The filter condition used to determine which entries are included in the population."},"displayCurrencyCode":{"type":"string","description":"The ISO 4217 three-digit currency code that determines how currency values are formatted. Defaults to `USD` if not specified."},"displayLocale":{"type":"string","description":"The ISO 639 locale identifier used to format display values. Defaults to `en-us` if not specified."}},"required":["analysisTypeId","category","condition","name"],"title":"Population"},"ApiPageApiPopulationTag_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiPopulationTag_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiOrganization_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the organization.","maxLength":80,"minLength":0},"externalClientCode":{"type":"string","description":"The unique client ID applied to this organization.","maxLength":80,"minLength":0},"managerUserIds":{"type":"array","description":"Identifies users assigned to the organization manager role.","items":{"type":"string"}}},"required":["name"],"title":"Organization"},"ApiPageApiOrganization_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiOrganization_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiLibrary_Create":{"type":"object","properties":{"name":{"type":"string","description":"The current name of the library.","maxLength":80,"minLength":0},"basedOnLibraryId":{"type":"string","description":"Identifies the library that the new library is based on. This may be a user-created library or a MindBridge system library."},"convertSettings":{"type":"boolean","description":"Indicates whether or not settings from the selected base library should be converted for use with the selected account grouping."},"warningsDismissed":{"type":"boolean","description":"When set to `true`, any conversion warnings for this library will not be displayed in the **Libraries** tab in the UI."},"accountGroupingId":{"type":"string","description":"Identifies the account grouping used."},"analysisTypeIds":{"type":"array","description":"Identifies the analysis types used in the library.","items":{"type":"string"}},"defaultDelimiter":{"type":"string","description":"Identifies the default delimiter used in imported CSV files."},"controlPointSelectionPermission":{"type":"boolean","description":"When set to `true`, control points can be added or removed within each risk score."},"controlPointWeightPermission":{"type":"boolean","description":"When set to `true`, the weight of each control point can be adjusted within each risk score."},"controlPointSettingsPermission":{"type":"boolean","description":"When set to `true`, individual control point settings can be adjusted within each risk score."},"riskScoreAndGroupsSelectionPermission":{"type":"boolean","description":"When set to `true`, risk scores and groups can be disabled, and accounts associated with risk scores can be edited."},"riskRangeEditPermission":{"type":"boolean"},"riskScoreDisplay":{"type":"string","description":"Determines whether risk scores will be presented as percentages (%), or using High, Medium, and Low label indicators.","enum":["HIGH_MEDIUM_LOW","PERCENTAGE"]}},"required":["accountGroupingId","analysisTypeIds","basedOnLibraryId","controlPointSelectionPermission","controlPointSettingsPermission","controlPointWeightPermission","name","riskScoreAndGroupsSelectionPermission","riskScoreDisplay","warningsDismissed"],"title":"Library"},"ApiPageApiLibrary_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiLibrary_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiJsonTable_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"headers":{"type":"array","items":{"type":"string"}},"currentSize":{"type":"integer","format":"int64","description":"The combined size of all data that has been appended to this JSON table."}},"required":["version"],"title":"JSON Table"},"ApiFileExport_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique file export identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the file export.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the file export.","readOnly":true},"fileName":{"type":"string","description":"The name of the file."},"size":{"type":"integer","format":"int64","description":"The size of the file."}},"required":["version"],"title":"File Result"},"ApiPageApiFileExport_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiFileExport_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiFileManagerDirectory_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"parentFileManagerEntityId":{"type":"string","description":"Identifies the parent directory. If NULL, the directory is positioned at the root level."},"name":{"type":"string","description":"The name of the directory."}},"required":["engagementId","name"],"title":"File Manager Directory"},"ApiFileMergeRequest_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"parentFileManagerEntityId":{"type":"string","description":"Identifies the parent directory. If NULL, the directory is positioned at the root level."},"outputFileName":{"type":"string","description":"The name of the file being generated in the requested merge operation."},"fileColumnMappings":{"type":"object","additionalProperties":{"type":"array","deprecated":true,"items":{"type":"integer","format":"int32","deprecated":true}},"deprecated":true,"description":"**Deprecated: use mappings instead.** Reference to the files and the columns to include in the merge operation."},"mappings":{"type":"array","description":"Ordered list of file/column selections to merge (each entry has fileManagerFileId and its column indexes).","items":{"$ref":"#/components/schemas/FileMergeMapping_Create"}}},"required":["engagementId","outputFileName"],"title":"File Merge Request"},"FileMergeMapping_Create":{"type":"object","properties":{"fileManagerFileId":{"type":"string","description":"The file manager file id to merge"},"columns":{"type":"array","description":"Columns to include from this file, in order","items":{"type":"integer","format":"int32"}}},"required":["columns","fileManagerFileId"],"title":"File Merge Mapping"},"ApiPageApiFileManagerEntity_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ApiFileManagerDirectory_Read"},{"$ref":"#/components/schemas/ApiFileManagerFile_Read"}]}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"CreateApiFileManagerFileFromJsonTableRequest_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the newly created file manager file."},"engagementId":{"type":"string","description":"Identifies the associated engagement to import the formatted file into."},"parentFileManagerEntityId":{"type":"string","description":"Identifies the file manager entity that will be the parent of the newly created file."},"jsonTableId":{"type":"string","description":"Identifies the JSON table to be formatted into a file."}},"required":["engagementId","jsonTableId","name"],"title":"Create File From JSON Table Request"},"ApiCsvConfiguration_Create":{"type":"object","properties":{"delimiter":{"type":"string","description":"The character used to separate entries."},"quote":{"type":"string","description":"The character used to encapsulate an entry."},"quoteEscape":{"type":"string","description":"The character used to escape the quote character."},"quoteEscapeEscape":{"type":"string","description":"The character used to escape the quote escape character."}},"required":["delimiter","quote","quoteEscape"],"title":"CSV Configuration"},"ApiDataTableExportToFileManagerRequest_Create":{"type":"object","properties":{"dataTableId":{"type":"string","description":"The ID of the Data Table to export data from."},"engagementId":{"type":"string","description":"The engagement that the Data Table belongs to."},"name":{"type":"string","description":"The name for the exported CSV file without extension."},"parentFileManagerEntityId":{"type":"string","description":"The ID of the File Manager directory to place the exported file in. If null, the file is placed in the engagement's root directory."},"query":{"$ref":"#/components/schemas/MindBridgeQueryTerm","description":"An optional filter to apply to the data before exporting."},"sort":{"$ref":"#/components/schemas/ApiDataTableQuerySortOrder_Create","description":"An optional sort order to apply to the exported rows."},"fields":{"type":"array","description":"The list of field names (columns) to include in the export.","items":{"type":"string"}},"limit":{"type":"integer","format":"int32","description":"The maximum number of rows to export.","minimum":1},"csvConfiguration":{"$ref":"#/components/schemas/ApiCsvConfiguration_Create","description":"The configuration to use when generating the CSV file."},"innerListCsvConfiguration":{"$ref":"#/components/schemas/ApiCsvConfiguration_Create","description":"The configuration to use when formatting list values within cells in the CSV file."}},"required":["dataTableId","engagementId","fields","name"],"title":"Data Table Export to File Manager Request"},"ApiDataTableQuerySortOrder_Create":{"type":"object","properties":{"field":{"type":"string","description":"The data table column."},"direction":{"type":"string","description":"How the column will be sorted.","enum":["ASC","DESC"]}},"required":["direction","field"],"title":"Data Table Query Sort Order"},"ShieldQueryTerm_Create":{"type":"object","properties":{"operator":{"type":"string","enum":["$eq","$ne","$gt","$gte","$lt","$lte","$contains","$ncontains","$in","$nin","$flags","$keyword_prefix","$keyword_prefix_not","$isubstr","$iprefix","$niprefix","$between","$nbetween","$and","$or","$population","$not_population",null]}},"required":["operator"]},"ApiFileManagerFile_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"parentFileManagerEntityId":{"type":"string","description":"Identifies the parent directory. If NULL, the directory is positioned at the root level."},"name":{"type":"string","description":"The current name of the file, excluding the extension."}},"required":["engagementId","name"],"title":"File Manager File"},"CreateApiFileManagerFileFromChunkedFileRequest_Create":{"type":"object","properties":{"chunkedFileId":{"type":"string"},"apiFileManagerFile":{"$ref":"#/components/schemas/ApiFileManagerFile_Create"}},"required":["apiFileManagerFile","chunkedFileId"],"title":"Create File From Chunked File Request"},"ApiBasicMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}}},"title":"Table Metadata Basic Metrics"},"ApiColumnData_Read":{"type":"object","properties":{"columnName":{"type":"string","description":"The name of the column."},"position":{"type":"integer","format":"int32","description":"The index of the column."},"synthetic":{"type":"boolean","description":"If `true` this column was generated, as opposed to being a part of the original data."},"rowSample":{"type":"array","description":"A list of values from this column across multiple rows. All values are distinct.","items":{"type":"string"}},"columnMetadata":{"$ref":"#/components/schemas/ApiColumnMetadata_Read","description":"A collection of metrics."}},"title":"Column Metadata"},"ApiColumnDateTimeFormat_Read":{"type":"object","properties":{"selected":{"type":"boolean","description":"If true, this format was selected during column mapping as the correct format for this column."},"customFormatPattern":{"type":"string","description":"The pattern of this date format."},"sampleRawValues":{"type":"array","description":"A list of values in this column.","items":{"type":"string"}},"sampleConvertedValues":{"type":"array","description":"A list of date time values derived by parsing the text using this format.","items":{"type":"string","format":"date-time"}}},"title":"Table Metadata Date Time Format"},"ApiColumnMetadata_Read":{"type":"object","properties":{"cellLengthMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding cells that are larger than 2000 characters in the column."},"dataTypeMetrics":{"$ref":"#/components/schemas/ApiDataTypeMetrics_Read","description":"Metrics regarding the data types of column values."},"densityMetrics":{"$ref":"#/components/schemas/ApiDensityMetrics_Read","description":"Metrics regarding the density of column values."},"distinctValueMetrics":{"$ref":"#/components/schemas/ApiDistinctValueMetrics_Read","description":"Metrics regarding the uniqueness of column values."},"nullValueMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding “null” values in the column."},"scientificNotationMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding the use of scientific notation in the column."},"specialCharacterMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding the use of special characters in the column."}},"title":"Column Metadata Metrics"},"ApiCountMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."}},"title":"Table Metadata Count Metrics"},"ApiCurrencyFormat_Read":{"type":"object","properties":{"decimalCharacter":{"type":"string","description":"The character used as a decimal separator."},"nonDecimalDelimiters":{"type":"array","description":"Non decimal separator special characters, including currency and grouping characters.","items":{"type":"string"},"uniqueItems":true},"ambiguousDelimiters":{"type":"array","description":"A list of possible delimiter characters, if multiple possible candidates are available.","items":{"type":"string"},"uniqueItems":true},"example":{"type":"string","description":"An example value."}},"title":"Table Metadata Currency Format"},"ApiDataPreview_Read":{"type":"object","properties":{"row":{"type":"integer","format":"int64","description":"The row number within the table."},"column":{"type":"integer","format":"int32","description":"The column index within the row."},"data":{"type":"string","description":"The value within the target row."}},"title":"Table Metadata Data Preview"},"ApiDataTypeMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"nonNullValueCount":{"type":"integer","format":"int64","description":"The number of non-null values in this column."},"typeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of column type to number of occurrences. A single column value can match multiple types."},"textTypeDetails":{"$ref":"#/components/schemas/ApiTextTypeDetails_Read","description":"Metrics regarding the text type values in this column."},"numericTypeDetails":{"$ref":"#/components/schemas/ApiNumericTypeDetails_Read","description":"Metrics regarding the number type values in this column."},"dateTypeDetails":{"$ref":"#/components/schemas/ApiDateTypeDetails_Read","description":"Metrics regarding the date type values in this column."},"detectedTypes":{"type":"array","description":"A list of all detected types in this column.","items":{"type":"string","enum":["TEXT","NUMBER","DATE","UNKNOWN","FLOAT64"]}},"dominantType":{"type":"string","description":"The type determined to be the most prevalent in this column.","enum":["TEXT","NUMBER","DATE","UNKNOWN","FLOAT64"]}},"title":"Table Metadata Data Type Metrics"},"ApiDateTypeDetails_Read":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeZonedDateTime_Read","description":"A pair of values representing the earliest and latest values within this column."},"ambiguousDateTimeFormats":{"type":"array","description":"A list of possible date time formats, if multiple possible candidates are available.","items":{"$ref":"#/components/schemas/ApiColumnDateTimeFormat_Read"}},"unambiguousDateTimeFormats":{"type":"array","description":"A list of possible date time formats, if multiple possible candidates are available.","items":{"$ref":"#/components/schemas/ApiColumnDateTimeFormat_Read"}}},"title":"Table Metadata Date Type Details"},"ApiDensityMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"density":{"type":"number","format":"float","description":"The percentage density of values against blanks, represented as decimal between 1 and 0."},"blanks":{"type":"integer","format":"int64","description":"The number of blank values."}},"title":"Table Metadata Density Metrics"},"ApiDistinctValueMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."}},"title":"Table Metadata Distinct Metrics"},"ApiFileInfo":{"type":"object","discriminator":{"propertyName":"type","mapping":{"FILE_INFO":"#/components/schemas/ApiFileInfo","TABULAR_FILE_INFO":"#/components/schemas/ApiTabularFileInfo_Read"}},"properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"The type of file info entity.","enum":["FILE_INFO","TABULAR_FILE_INFO"],"title":"File Info Type"},"name":{"type":"string","description":"The name of the underlying file or table."},"formatDetected":{"type":"boolean","description":"When `true` a known grouped format was detected."},"format":{"type":"string","description":"The grouped format that was detected.","enum":["QUICKBOOKS_JOURNAL","QUICKBOOKS_JOURNAL_2024","QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT","SAGE50_LEDGER","SAGE50_TRANSACTIONS","CCH_ACCOUNT_LIST","MS_DYNAMICS_JOURNAL","SAGE50_UK"]}},"required":["version"],"title":"File Info"},"ApiFileInfo_Read":{"type":"object","discriminator":{"propertyName":"type","mapping":{"FILE_INFO":"#/components/schemas/ApiFileInfo","TABULAR_FILE_INFO":"#/components/schemas/ApiTabularFileInfo_Read"}},"properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"The type of file info entity.","enum":["FILE_INFO","TABULAR_FILE_INFO"],"title":"File Info Type"},"name":{"type":"string","description":"The name of the underlying file or table."},"formatDetected":{"type":"boolean","description":"When `true` a known grouped format was detected."},"format":{"type":"string","description":"The grouped format that was detected.","enum":["QUICKBOOKS_JOURNAL","QUICKBOOKS_JOURNAL_2024","QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT","SAGE50_LEDGER","SAGE50_TRANSACTIONS","CCH_ACCOUNT_LIST","MS_DYNAMICS_JOURNAL","SAGE50_UK"]}},"required":["version"],"title":"File Info"},"ApiHistogramMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"histogram":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of the number of columns to the number of rows with that many columns, in the case of unevenColumnsMetrics."}},"title":"Table Metadata Histogram Metrics"},"ApiNumericTypeDetails_Read":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeBigDecimal_Read","description":"A pair of values representing the min and max values within this column."},"currencyFormat":{"$ref":"#/components/schemas/ApiCurrencyFormat_Read","description":"Metadata on the detected number format of this column."},"examplePairFromCurrencyFormatter":{"type":"array","description":"A pair of values as examples in the event that two or more unambiguous number formats are detected in the same column.","items":{"type":"string"}},"sum":{"type":"number","description":"The sum of all values in this column, up to a maximum of 10e50. Values smaller than 10e-50 will be rounded up."},"cappedSum":{"type":"boolean","description":"If `true` then the sum is larger than 10e50."},"cappedMax":{"type":"boolean","description":"If `true` then at least one individual value is larger than 10e50."}},"title":"Table Metadata Numeric Type Details"},"ApiOverallDataTypeMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"cellTypeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of data types to the number of cells in the table of that data type."},"columnTypeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"A map of data types to the number of columns in the table of that data type."},"totalRecords":{"type":"integer","format":"int64","description":"The total number of values."},"blankRecords":{"type":"integer","format":"int64","description":"The number of blank values."},"columnCount":{"type":"integer","format":"int32","description":"The number of columns."},"totalRows":{"type":"integer","format":"int64","description":"The total number of rows."}},"title":"Table Metadata Overall Data Type Metrics"},"ApiPageApiFileInfo_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ApiFileInfo_Read"},{"$ref":"#/components/schemas/ApiTabularFileInfo_Read"}]}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiSheetMetrics_Read":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview_Read"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"sheetNames":{"type":"array","description":"A list of sheet names within the underlying Excel file.","items":{"type":"string"}},"validSheets":{"type":"array","description":"A list of usable sheet names within the underlying Excel file.","items":{"type":"string"}}},"title":"Table Metadata Sheet Metrics"},"ApiTableMetadata_Read":{"type":"object","properties":{"cellLengthMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding cells that are larger than 2000 characters in the table."},"densityMetrics":{"$ref":"#/components/schemas/ApiDensityMetrics_Read","description":"Metrics regarding whole table density."},"inconsistentDateMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding inconsistent date formats within columns for the entire table."},"nullValueMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding “null” values across the entire table."},"numericColumnMetrics":{"$ref":"#/components/schemas/ApiBasicMetrics_Read","description":"Metrics regarding numeric columns within the table."},"overallDataTypeMetrics":{"$ref":"#/components/schemas/ApiOverallDataTypeMetrics_Read","description":"Metrics regarding detected data types across the entire table."},"scientificNotationMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding scientific notation across the entire table."},"sheetMetrics":{"$ref":"#/components/schemas/ApiSheetMetrics_Read","description":"Metrics regarding excel sheets within the underlying excel file."},"specialCharacterMetrics":{"$ref":"#/components/schemas/ApiCountMetrics_Read","description":"Metrics regarding special characters across the entire table."},"unevenColumnsMetrics":{"$ref":"#/components/schemas/ApiHistogramMetrics_Read","description":"Metrics regarding column length by row."}},"title":"Table Metadata"},"ApiTabularFileInfo_Read":{"allOf":[{"$ref":"#/components/schemas/ApiFileInfo_Read"},{"type":"object","properties":{"headerRowIndex":{"type":"integer","format":"int32","description":"The row number of the first detected header."},"firstLine":{"type":"string","description":"The first line of the table."},"delimiter":{"type":"string","description":"The delimiter character used to separate cells. Only populated when the underlying file is a CSV file."},"lastNonBlankRowIndex":{"type":"integer","format":"int64","description":"The row number of the last row that isn't blank."},"tableMetadata":{"$ref":"#/components/schemas/ApiTableMetadata_Read","description":"A collection of metadata describing the table as a whole."},"columnData":{"type":"array","description":"A list of column metadata entities, describing each column.","items":{"$ref":"#/components/schemas/ApiColumnData_Read"}},"rowContentSnippets":{"type":"array","description":"A list of sample rows from the underlying file.","items":{"type":"array","items":{"type":"string"}}}}},{"$ref":"#/components/schemas/ApiFileInfo"}],"required":["version"],"title":"Tabular File Info"},"ApiTextTypeDetails_Read":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeInteger_Read","description":"A pair of values representing the min and max length of text values within this column."}},"title":"Table Metadata Text Type Details"},"RangeBigDecimal_Read":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}}},"RangeInteger_Read":{"type":"object","properties":{"min":{"type":"integer","format":"int32"},"max":{"type":"integer","format":"int32"}}},"RangeZonedDateTime_Read":{"type":"object","properties":{"min":{"type":"string","format":"date-time"},"max":{"type":"string","format":"date-time"}}},"ApiAccountingPeriod_Create":{"type":"object","properties":{"fiscalStartMonth":{"type":"integer","format":"int32","description":"The month that the fiscal period begins."},"fiscalStartDay":{"type":"integer","format":"int32","description":"The date of the month that the fiscal period begins."},"frequency":{"type":"string","description":"The frequency with which your client's financial data is reported.","enum":["ANNUAL","SEMI_ANNUAL","QUARTERLY","MONTHLY","THIRTEEN_PERIODS"]}},"required":["fiscalStartDay","fiscalStartMonth","frequency"],"title":"Accounting Period"},"ApiEngagement_Create":{"type":"object","properties":{"organizationId":{"type":"string","description":"Identifies the organization."},"name":{"type":"string","description":"The name of the engagement.","maxLength":80,"minLength":0},"billingCode":{"type":"string","description":"A unique code that associates engagements and analyses with clients to ensure those clients are billed appropriately for MindBridge usage."},"libraryId":{"type":"string","description":"Identifies the library."},"accountingPeriod":{"$ref":"#/components/schemas/ApiAccountingPeriod_Create","description":"Details about the accounting period."},"auditPeriodEndDate":{"type":"string","format":"date","description":"The last day of the occurring audit."},"accountingPackage":{"type":"string","description":"The ERP or financial management system that your client is using."},"industry":{"type":"string","description":"The type of industry that your client operates within."},"engagementLeadId":{"type":"string","description":"Identifies the user who will lead the engagement."},"settingsBasedOnEngagementId":{"type":"string","description":"Identifies the engagement that the settings are based on."},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analyses use a standard reporting period."},"auditorIds":{"type":"array","description":"Identifies the users who will act as auditors in the engagement.","items":{"type":"string"}}},"required":["accountingPackage","auditPeriodEndDate","engagementLeadId","industry","libraryId","name","organizationId"],"title":"Engagement"},"ApiPageApiEngagement_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiEngagement_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiEngagementAccountGroup_Create":{"type":"object","properties":{"engagementAccountGroupingId":{"type":"string","description":"The unique identifier for the engagement account grouping that the engagement account group belongs to."},"code":{"type":"string","description":"The account code for this account group."},"description":{"type":"object","additionalProperties":{"type":"string"},"description":"A description of the account code for this account group."},"parentCode":{"type":"string","description":"The parent code for this account group."},"macCode":{"type":"string","description":"The MAC code mapped to this account group."},"hidden":{"type":"boolean","description":"When `true` this account is hidden, and can't be used in account mapping. Additionally this account won't be suggested when automatically mapping accounts during file import."},"alias":{"type":"string","description":"A replacement value used when displaying the account description.\n\nThis does not have any effect on automatic column mapping."}},"required":["code","description","engagementAccountGroupingId","hidden","parentCode"],"title":"Engagement Account Group"},"ApiPageApiEngagementAccountGroup_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiEngagementAccountGroup_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiAsyncResult":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"Indicates the type of job being run.","enum":["ANALYSIS_RUN","ANALYSIS_SOURCE_INGESTION","ADMIN_REPORT","DATA_TABLE_EXPORT","ANALYSIS_ROLL_FORWARD","GDPDU_UNPACK_JOB","ACCOUNT_GROUPING_EXPORT","ACCOUNT_MAPPING_EXPORT","DATA_TRANSFORMATION_JOB","CONNECTION_TEST","CONNECTION_TABLES","DATA_TABLE"]},"status":{"type":"string","description":"Indicates the current state of the job.","enum":["IN_PROGRESS","COMPLETE","ERROR"]},"entityId":{"type":"string","description":"Identifies the entity used in the job."},"entityType":{"type":"string","description":"Identifies the entity type used in the job.","enum":["ORGANIZATION","ENGAGEMENT","ANALYSIS","ANALYSIS_RESULT","ANALYSIS_SOURCE","FILE_RESULT","GDPDU_UNPACK_JOB","ACCOUNT_GROUPING","ENGAGEMENT_ACCOUNT_GROUPING","FILE_MANAGER_FILE","CONNECTION_TEST_RESULT","CONNECTION_TABLES_RESULT","DATA_TABLE"]},"error":{"type":"string","description":"The reason why the async job failed."},"errorMessage":{"type":"string"}},"required":["version"],"title":"Async Result"},"ApiUserInfo":{"type":"object","properties":{"userId":{"type":"string","description":"Identifies the user."},"userName":{"type":"string","description":"The name of the user."}},"title":"User Info"},"ApiEngagementAccountGrouping_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","description":"The unique identifier of the engagement that this engagement account grouping belongs to."},"accountGroupingId":{"type":"string","description":"The unique identifier of the account grouping on which this is based."},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account grouping."},"codeDisplayName":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account code hierarchy system used within the dataset."},"delimiter":{"type":"string","description":"The delimiter character used to separate each category level in an account grouping code."}},"required":["version"],"title":"Engagement Account Grouping"},"ApiPageApiEngagementAccountGrouping_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiEngagementAccountGrouping_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiDatabricksAuthorization_Create":{"type":"object","properties":{"connectionId":{"type":"string","description":"The ID of the Connection this authorization belongs to."},"authType":{"type":"string","description":"The authentication method to use. Possible values: PAT, OAUTH_M2M.","enum":["PAT","OAUTH_M2M"]},"host":{"type":"string","description":"The Databricks server hostname."},"port":{"type":"integer","format":"int32","description":"The port number for the Databricks connection. Typically 443."},"httpPath":{"type":"string","description":"The HTTP path for the Databricks SQL warehouse or cluster."},"accessToken":{"type":"string","description":"The personal access token for PAT authentication.","writeOnly":true},"clientId":{"type":"string","description":"The OAuth client ID for OAUTH_M2M authentication."},"clientSecret":{"type":"string","description":"The OAuth client secret for OAUTH_M2M authentication.","writeOnly":true}},"required":["authType","connectionId","host","httpPath"],"title":"Databricks Authorization"},"ApiPageApiDatabricksAuthorization_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiDatabricksAuthorization_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ActionableErrorResponse":{"type":"object","properties":{"type":{"type":"string","description":"Indicates the type of error that occurred. Type values are formatted as URLs."},"title":{"type":"string","description":"A description of the error."},"problems":{"type":"array","description":"The reason(s) why the error occurred.","items":{"$ref":"#/components/schemas/Problem"}},"instance":{"type":"string","description":"A unique identifier for this request."},"status":{"type":"integer","format":"int32","description":"The HTTP status code determined by the error type."},"origin":{"type":"string","description":"The endpoint where this request originated from."},"problemCount":{"type":"integer","format":"int32","description":"The total number of problems."},"entityType":{"type":"string","description":"The type of entity impacted by the error."},"entityId":{"type":"string","description":"Identifies the entity impacted by the error."}}},"Problem":{"type":"object","properties":{"problemType":{"type":"string","description":"The type of problem.","enum":["UNKNOWN","ILLEGAL_ARGUMENT","CANNOT_DELETE","GREATER_VALUE_REQUIRED","LESS_VALUE_REQUIRED","NON_UNIQUE_VALUE","USER_EMAIL_ALREADY_EXISTS","INCORRECT_DATA_TYPE","RATIO_CONVERSION_FAILED","RISK_SCORE_FILTER_CONVERSION_FAILED","FILTER_CONVERSION_FAILED","POPULATION_CONVERSION_FAILED","INSUFFICIENT_PERMISSION","ACCOUNT_GROUPING_NODES_CONTAIN_ERRORS","ACCOUNT_GROUPING_IN_USE_BY_LIBRARY","INVALID_ACCOUNT_GROUPING_FILE","DELIVERY_FAILURE","INVALID_STATE"]},"severity":{"type":"string","description":"Indicates how severe the problem is.","enum":["WARNING","ERROR"]},"entityType":{"type":"string","description":"The type of entity impacted by the problem."},"entityId":{"type":"string","description":"Identifies the entity impacted by the problem."},"identifier":{"type":"string","description":"Identifies the field causing the problem."},"values":{"type":"array","description":"Identifies the values causing the problem.","items":{"type":"string"}},"reason":{"type":"string","description":"The reason(s) why the problem occurred."},"suggestedValues":{"type":"array","description":"A suggested set of values to assist in resolving the problem.","items":{"type":"string"}},"problemCount":{"type":"integer","format":"int32","description":"The total number of occurrences of this problem."}}},"ApiCsvConfiguration":{"type":"object","properties":{"delimiter":{"type":"string","description":"The character used to separate entries."},"quote":{"type":"string","description":"The character used to encapsulate an entry."},"quoteEscape":{"type":"string","description":"The character used to escape the quote character."},"quoteEscapeEscape":{"type":"string","description":"The character used to escape the quote escape character."}},"required":["delimiter","quote","quoteEscape"],"title":"CSV Configuration"},"ApiDataTableExportRequest":{"type":"object","properties":{"query":{"$ref":"#/components/schemas/MindBridgeQueryTerm","description":"The MindBridge QL query used to filter data in the data table."},"sort":{"$ref":"#/components/schemas/ApiDataTableQuerySortOrder","description":"Indicates how the data will be sorted.\n\nDefault sort order = ascending"},"fields":{"type":"array","description":"The data table fields to be included in the results.","items":{"type":"string"}},"limit":{"type":"integer","format":"int32","description":"The number of results to be returned.","minimum":1},"csvConfiguration":{"$ref":"#/components/schemas/ApiCsvConfiguration","description":"The configuration to use when generating the CSV file."},"innerListCsvConfiguration":{"$ref":"#/components/schemas/ApiCsvConfiguration","description":"The configuration to use when formatting lists within cells in the CSV file."}},"required":["fields"],"title":"Data Table Export Request"},"ApiDataTableQuerySortOrder":{"type":"object","properties":{"field":{"type":"string","description":"The data table column."},"direction":{"type":"string","description":"How the column will be sorted.","enum":["ASC","DESC"]}},"required":["direction","field"],"title":"Data Table Query Sort Order"},"ShieldQueryTerm":{"type":"object","properties":{"operator":{"type":"string","enum":["$eq","$ne","$gt","$gte","$lt","$lte","$contains","$ncontains","$in","$nin","$flags","$keyword_prefix","$keyword_prefix_not","$isubstr","$iprefix","$niprefix","$between","$nbetween","$and","$or","$population","$not_population",null]}},"required":["operator"]},"ApiDataTablePage":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","additionalProperties":{}}}}},"ApiDataTableQuerySortOrder_Read":{"type":"object","properties":{"field":{"type":"string","description":"The data table column."},"direction":{"type":"string","description":"How the column will be sorted.","enum":["ASC","DESC"]}},"required":["direction","field"],"title":"Data Table Query Sort Order"},"ApiDataTableQuery_Read":{"type":"object","properties":{"query":{"$ref":"#/components/schemas/MindBridgeQueryTerm","description":"The MindBridge QL query used to filter data in the data table."},"page":{"type":"integer","format":"int32","description":"The specific page of results. This operates on a zero-based page index (0..N).","minimum":0},"pageSize":{"type":"integer","format":"int32","description":"The number of results to be returned on each page.","maximum":100,"minimum":1},"sort":{"$ref":"#/components/schemas/ApiDataTableQuerySortOrder_Read","description":"Indicates how the data will be sorted.\n\nDefault sort order = ascending"},"fields":{"type":"array","description":"The data table fields to be included in the results.","items":{"type":"string"}},"excludeFields":{"type":"array","items":{"type":"string"}}},"required":["fields"],"title":"Data Table Query"},"ApiDataTableColumn_Read":{"type":"object","properties":{"originalName":{"type":"string","description":"The original field name, derived from the source file, risk score name, or similar source."},"field":{"type":"string","description":"The column name."},"mindBridgeField":{"type":"string","description":"The MindBridge field name that this column is mapped to."},"type":{"type":"string","description":"The type of data found in the column.","enum":["STRING","DATE","DATE_TIME","BOOLEAN","INT16","INT32","INT64","FLOAT32","FLOAT64","MONEY_100","PERCENTAGE_FIXED_POINT","ARRAY_STRINGS","ARRAY_INT64","KEYWORD_SEARCH","OBJECTID","BOOLEAN_FLAGS","MAP_SCALARS","LEGACY_ACCOUNT_TAG_EFFECTS","JSONB"]},"nullable":{"type":"boolean","description":"Indicates whether or not NULL values are allowed."},"equalitySearch":{"type":"boolean","description":"Indicates whether or not a search can be performed based on two equal operands."},"rangeSearch":{"type":"boolean","description":"Indicates whether or not a search can be performed on a value-based comparison."},"sortable":{"type":"boolean","description":"Indicates whether or not the data table can be sorted by this column."},"containsSearch":{"type":"boolean","description":"Indicates whether or not a value-based search can be performed."},"keywordSearch":{"type":"boolean","description":"Indicates whether or not a keyword search can be performed."},"caseInsensitiveSubstringSearch":{"type":"boolean","description":"Indicates whether or not a case insensitive search can be performed on a substring."},"caseInsensitivePrefixSearch":{"type":"boolean","description":"Indicates whether or not a case insensitive search can be performed on a prefix."},"filterOnly":{"type":"boolean","description":"Indicates whether a field can only be used as part of a filter."},"typeaheadDataTableId":{"type":"string","description":"The ID of the typeahead table that this column references."}},"title":"Data Table Column"},"ApiDataTable_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisId":{"type":"string","description":"Identifies the associated analysis."},"analysisResultId":{"type":"string","description":"Identifies the associated analysis results."},"logicalName":{"type":"string","description":"The name of the data table."},"type":{"type":"string","description":"The type of data table."},"columns":{"type":"array","description":"Details about the data table columns.","items":{"$ref":"#/components/schemas/ApiDataTableColumn_Read"}}},"title":"Data Table"},"ApiPageApiDataTable_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiDataTable_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiConnection_Create":{"type":"object","properties":{"type":{"type":"string","description":"The type of external connection.","enum":["DATABRICKS","MINDBRIDGE_DATA_TABLES"]}},"required":["type"],"title":"Connection"},"ApiConnection_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"type":{"type":"string","description":"The type of external connection.","enum":["DATABRICKS","MINDBRIDGE_DATA_TABLES"]}},"required":["type","version"],"title":"Connection"},"ApiConnectionDataRequest_Create":{"type":"object","properties":{"tableId":{"type":"string","description":"The identifier of the table to retrieve data from."},"engagementId":{"type":"string","description":"Identifies the engagement that the resulting Data Table will be associated with."},"tabularSchemaHint":{"$ref":"#/components/schemas/ApiTabularSchema_Create","description":"Optional schema hint describing expected column types."},"filter":{"$ref":"#/components/schemas/ShieldQueryTerm_Create","description":"Optional filter to apply to the data retrieval."},"limit":{"type":"integer","format":"int64","description":"Maximum number of rows to return."},"offset":{"type":"integer","format":"int64","description":"Number of rows to skip before returning results."}},"required":["engagementId","tableId"],"title":"Connection Data Request"},"ApiTabularSchemaColumn_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the column."},"columnType":{"type":"string","description":"The data type of the column.","enum":["STRING","DATE","DATE_TIME","BOOLEAN","INT16","INT32","INT64","FLOAT32","FLOAT64","MONEY_100","PERCENTAGE_FIXED_POINT","ARRAY_STRINGS","ARRAY_INT64","KEYWORD_SEARCH","OBJECTID","BOOLEAN_FLAGS","MAP_SCALARS","LEGACY_ACCOUNT_TAG_EFFECTS","JSONB"]},"nullable":{"type":"boolean","description":"Whether the column allows null values."}},"required":["columnType","name","nullable"],"title":"Tabular Schema Column"},"ApiTabularSchema_Create":{"type":"object","properties":{"columns":{"type":"array","description":"The list of column definitions for the table.","items":{"$ref":"#/components/schemas/ApiTabularSchemaColumn_Create"}}},"required":["columns"],"title":"Tabular Schema"},"ApiPageApiConnection_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiConnection_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiConnectionTestResult_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"connectionId":{"type":"string","description":"The ID of the Connection that was tested."},"message":{"type":"string","description":"A message describing the outcome of the connection test."}},"required":["version"],"title":"Connection Test Result"},"ApiPageApiConnectionTestResult_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiConnectionTestResult_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiConnectionTable_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"tablesResultId":{"type":"string","description":"The ID of the Connection Tables Result that discovered this table."},"connectionId":{"type":"string","description":"The ID of the Connection this table belongs to."},"tableId":{"type":"string","description":"The identifier of the table within the external data source."},"name":{"type":"string","description":"The display name of the table."},"schema":{"$ref":"#/components/schemas/ApiTabularSchema_Read","description":"The schema describing the columns of the table."}},"required":["connectionId","schema","tableId","tablesResultId","version"],"title":"Connection Table"},"ApiPageApiConnectionTable_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiConnectionTable_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiTabularSchemaColumn_Read":{"type":"object","properties":{"name":{"type":"string","description":"The name of the column."},"columnType":{"type":"string","description":"The data type of the column.","enum":["STRING","DATE","DATE_TIME","BOOLEAN","INT16","INT32","INT64","FLOAT32","FLOAT64","MONEY_100","PERCENTAGE_FIXED_POINT","ARRAY_STRINGS","ARRAY_INT64","KEYWORD_SEARCH","OBJECTID","BOOLEAN_FLAGS","MAP_SCALARS","LEGACY_ACCOUNT_TAG_EFFECTS","JSONB"]},"nullable":{"type":"boolean","description":"Whether the column allows null values."}},"required":["columnType","name","nullable"],"title":"Tabular Schema Column"},"ApiTabularSchema_Read":{"type":"object","properties":{"columns":{"type":"array","description":"The list of column definitions for the table.","items":{"$ref":"#/components/schemas/ApiTabularSchemaColumn_Read"}}},"required":["columns"],"title":"Tabular Schema"},"ApiConnectionTablesResult_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"connectionId":{"type":"string","description":"The ID of the Connection that this tables result belongs to."},"tableCount":{"type":"integer","format":"int32","description":"The total number of tables discovered from the connection."}},"required":["connectionId","tableCount","version"],"title":"Connection Tables Result"},"ApiPageApiConnectionTablesResult_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiConnectionTablesResult_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiConnectionDataSource_Create":{"type":"object","properties":{"connectionId":{"type":"string","description":"The ID of the Connection this data source belongs to."},"tableId":{"type":"string","description":"The identifier of the table within the external connection."},"schema":{"$ref":"#/components/schemas/ApiTabularSchema_Create","description":"The schema describing the columns of the table."}},"required":["connectionId","schema","tableId"],"title":"Connection Data Source"},"ApiConnectionDataSource_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"connectionId":{"type":"string","description":"The ID of the Connection this data source belongs to."},"tableId":{"type":"string","description":"The identifier of the table within the external connection."},"schema":{"$ref":"#/components/schemas/ApiTabularSchema_Read","description":"The schema describing the columns of the table."}},"required":["connectionId","schema","tableId","version"],"title":"Connection Data Source"},"ApiDataSourceDataRequest_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the engagement that the resulting Data Table will be associated with."},"filter":{"$ref":"#/components/schemas/ShieldQueryTerm_Create","description":"Optional filter to apply to the data retrieval. If not set, all rows are returned unfiltered."},"limit":{"type":"integer","format":"int64","description":"Maximum number of rows to return. If not set, all matching rows are returned.","minimum":0},"offset":{"type":"integer","format":"int64","description":"Number of rows to skip before returning results. If not set, results start from the first row.","minimum":0}},"required":["engagementId"],"title":"Data Source Data Request"},"ApiPageApiConnectionDataSource_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiConnectionDataSource_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiChunkedFile_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the chunked file."},"size":{"type":"integer","format":"int64","description":"The size of the chunked file.","minimum":0}},"required":["name","size"],"title":"Chunked File"},"ApiChunkedFilePart_Read":{"type":"object","properties":{"offset":{"type":"integer","format":"int64","description":"Indicates the start position of the file part in the chunked file.","minimum":0},"size":{"type":"integer","format":"int64","description":"The size of the file part.","minimum":0}},"title":"Chunked File Part"},"ApiChunkedFile_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"string","description":"The name of the chunked file."},"size":{"type":"integer","format":"int64","description":"The size of the chunked file.","minimum":0},"chunkedFileParts":{"type":"array","description":"The offset and size of the chunked file parts.","items":{"$ref":"#/components/schemas/ApiChunkedFilePart_Read"}}},"required":["name","size","version"],"title":"Chunked File"},"ApiChunkedFilePart":{"type":"object","properties":{"offset":{"type":"integer","format":"int64","description":"Indicates the start position of the file part in the chunked file.","minimum":0},"size":{"type":"integer","format":"int64","description":"The size of the file part.","minimum":0}},"title":"Chunked File Part"},"ApiPageApiChunkedFile_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiChunkedFile_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiPageApiAsyncResult_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAsyncResult_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiApiToken_Create":{"type":"object","properties":{"name":{"type":"string","description":"The token record's name. This will also be used as the API Token User's name."},"expiry":{"type":"string","format":"date-time","description":"The day on which the API token expires."},"allowedAddresses":{"type":"array","description":"Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.","items":{"type":"string"}},"permissions":{"type":"array","description":"The set of permissions that inform which endpoints this token is authorized to access.","items":{"type":"string","enum":["api.organizations.read","api.organizations.write","api.organizations.delete","api.engagements.read","api.engagements.write","api.engagements.delete","api.analyses.read","api.analyses.write","api.analyses.delete","api.analyses.run","api.analysis-sources.read","api.analysis-sources.write","api.analysis-sources.delete","api.file-manager.read","api.file-manager.write","api.file-manager.delete","api.reporting-period-config.read","api.reporting-period-config.write","api.reporting-period-config.delete","api.libraries.read","api.libraries.write","api.libraries.delete","api.account-groupings.read","api.account-groupings.write","api.account-groupings.delete","api.engagement-account-groupings.read","api.engagement-account-groupings.write","api.engagement-account-groupings.delete","api.users.read","api.users.write","api.users.delete","api.data-tables.read","api.api-tokens.read","api.api-tokens.write","api.api-tokens.delete","api.tasks.read","api.tasks.write","api.tasks.delete","api.admin-reports.run","api.analysis-types.read","api.analysis-source-types.read","api.analysis-type-configuration.read","api.analysis-type-configuration.write","api.analysis-type-configuration.delete","api.risk-ranges.read","api.risk-ranges.write","api.risk-ranges.delete","api.filters.read","api.filters.write","api.filters.delete","api.file-infos.read","api.webhooks.read","api.webhooks.write","api.webhooks.delete","api.connections.read","api.connections.write","api.connections.delete","api.connection-data-sources.read","api.connection-data-sources.write","api.connection-data-sources.delete","scim.user.read","scim.user.write","scim.user.delete","scim.user.schema"]}}},"required":["expiry","name","permissions"],"title":"API Token"},"CreateApiTokenResponse_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"userId":{"type":"string","description":"Identifies the API Token User associated with this token."},"name":{"type":"string","description":"The token record's name. This will also be used as the API Token User's name."},"partialToken":{"type":"string","description":"A partial representation of the API token."},"expiry":{"type":"string","format":"date-time","description":"The day on which the API token expires."},"allowedAddresses":{"type":"array","description":"Indicates the set of addresses that are allowed to use this token. If empty, any address may use it.","items":{"type":"string"}},"permissions":{"type":"array","description":"The set of permissions that inform which endpoints this token is authorized to access.","items":{"type":"string","enum":["api.organizations.read","api.organizations.write","api.organizations.delete","api.engagements.read","api.engagements.write","api.engagements.delete","api.analyses.read","api.analyses.write","api.analyses.delete","api.analyses.run","api.analysis-sources.read","api.analysis-sources.write","api.analysis-sources.delete","api.file-manager.read","api.file-manager.write","api.file-manager.delete","api.reporting-period-config.read","api.reporting-period-config.write","api.reporting-period-config.delete","api.libraries.read","api.libraries.write","api.libraries.delete","api.account-groupings.read","api.account-groupings.write","api.account-groupings.delete","api.engagement-account-groupings.read","api.engagement-account-groupings.write","api.engagement-account-groupings.delete","api.users.read","api.users.write","api.users.delete","api.data-tables.read","api.api-tokens.read","api.api-tokens.write","api.api-tokens.delete","api.tasks.read","api.tasks.write","api.tasks.delete","api.admin-reports.run","api.analysis-types.read","api.analysis-source-types.read","api.analysis-type-configuration.read","api.analysis-type-configuration.write","api.analysis-type-configuration.delete","api.risk-ranges.read","api.risk-ranges.write","api.risk-ranges.delete","api.filters.read","api.filters.write","api.filters.delete","api.file-infos.read","api.webhooks.read","api.webhooks.write","api.webhooks.delete","api.connections.read","api.connections.write","api.connections.delete","api.connection-data-sources.read","api.connection-data-sources.write","api.connection-data-sources.delete","scim.user.read","scim.user.write","scim.user.delete","scim.user.schema"]}},"token":{"type":"string","description":"The API token.\n\n**Note:** The security of the API token is paramount. If compromised, contact your **App Admin** immediately."}},"required":["expiry","name","permissions","version"],"title":"API token creation response"},"ApiPageApiApiToken_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiApiToken_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiAnalysisType_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"string","description":"The name of the analysis type."},"interimName":{"type":"string","description":"The name of the analysis type when the analysis uses an interim time frame."},"description":{"type":"string","description":"The description of the analysis type."},"accountMappingRequired":{"type":"boolean","description":"Indicates whether or not account mapping must be performed."},"fundSupported":{"type":"boolean","description":"Indicates whether or not the analysis supports restricted and unrestricted funds."},"interimSupported":{"type":"boolean","description":"Indicates whether or not the analysis supports the interim time frame."},"periodicSupported":{"type":"boolean","description":"Indicates whether or not the analysis supports the periodic time frame."},"archived":{"type":"boolean","description":"Indicates whether or not the analysis type has been archived."},"maxPeriod":{"type":"integer","format":"int32","description":"A configuration value for the max analysis period."},"sourceConfigurations":{"type":"array","description":"A list of analysis source configurations that can be imported into the analysis, as determined by the analysis type.","items":{"$ref":"#/components/schemas/ApiSourceConfiguration_Read"}}},"required":["version"],"title":"Analysis Type"},"ApiPageApiAnalysisType_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysisType_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiSourceConfiguration_Read":{"type":"object","properties":{"sourceTypeId":{"type":"string","description":"The source type ID selected as part of this configuration."},"sourceScope":{"type":"string","description":"Indicates whether the source configuration applies to the current period, all of the prior periods, or the entire analysis.\n\n**Note**: Sources with an `ANALYSIS` scope should not provide an `analysisPeriodId`.","enum":["CURRENT_PERIOD","PRIOR_PERIOD","ANALYSIS"]},"required":{"type":"boolean","description":"When `true`, the analysis cannot be run until at least one analysis source with this source type in this source scope is present."},"postAnalysis":{"type":"boolean","description":"When `true`, this source configuration will be enabled after an analysis is run (not before)."},"interimOnly":{"type":"boolean","description":"When `true`, this source configuration only applies when the interim time frame is used (i.e., it has not been converted for use with a full time frame)."},"disableForInterim":{"type":"boolean","description":"When `true` and the interim time frame is used (i.e., it has not been converted for use with a full time frame), new analysis sources of this source type and source scope cannot be added."},"allowMultiple":{"type":"boolean","description":"When `true`, multiple versions of this analysis source type may be imported using this source scope."},"allowMultipleForPeriodic":{"type":"boolean","description":"When `true` and the periodic time frame is used, multiple versions of this analysis source type may be imported using this source scope."},"alternativeRequiredSourceTypes":{"type":"array","description":"A list of alternative analysis source types. If one of the alternatives is present for this source scope, then the `required` constraint is considered satisfied.","items":{"type":"string"},"uniqueItems":true},"tracksAdditionalDataEntries":{"type":"boolean","description":"When `true`, the `additionalDataColumnField` field is required upon importing an analysis source type."}},"title":"Source Configuration"},"ApiPageApiAnalysisTypeConfiguration_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysisTypeConfiguration_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiAnalysisSource_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisId":{"type":"string","description":"Identifies the associated analysis."},"analysisPeriodId":{"type":"string","description":"Identifies the analysis period within MindBridge."},"analysisSourceTypeId":{"type":"string","description":"Identifies the analysis source type."},"fileManagerFileId":{"type":"string","deprecated":true,"description":"Identifies the specific file manager file within MindBridge."},"additionalDataColumnField":{"type":"string","description":"When creating an additional data source type, this indicates which additional data column is being targeted."},"warningsIgnored":{"type":"boolean","description":"Indicates whether or not warnings should be ignored."},"targetWorkflowState":{"type":"string","description":"The state that the current workflow will advance to.","enum":["COMPLETED","CANCELLED","FAILED","STARTED","DETECTING_FORMAT","ANALYZING_COLUMNS","CHECKING_INTEGRITY","SCANNING_TRANSACTION_COMBINATIONS","PARSING","PARSING_ICEBERG","ANALYZING_EFFECTIVE_DATE_METRICS","FORMAT_DETECTION_COMPLETED","COLUMN_MAPPINGS_CONFIRMED","SETTINGS_CONFIRMED","PREPARING_ICEBERG","ANALYSIS_PERIOD_SELECTED","FUNDS_REVIEWED","RUNNING","UNPACK_COMPLETE","UPLOADED","FORMAT_DETECTED","COLUMNS_ANALYZED","INTEGRITY_CHECKED","PARSED","AUTHENTICATED","CONFIGURED","EFFECTIVE_DATE_METRICS_ANALYZED","DATA_VALIDATION_CONFIRMED"]},"applyDegrouper":{"type":"boolean","description":"Indicates whether or not the degrouper should be applied."},"proposedColumnMappings":{"type":"array","description":"Details about the proposed column mapping.","items":{"$ref":"#/components/schemas/ApiProposedColumnMapping_Create"}},"proposedVirtualColumns":{"type":"array","description":"Details about the proposed virtual columns added during the file import process.","items":{"oneOf":[{"$ref":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Create"},{"$ref":"#/components/schemas/ApiProposedJoinVirtualColumn_Create"},{"$ref":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Create"},{"$ref":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Create"}]}},"proposedAmbiguousColumnResolutions":{"type":"array","description":"Details about the virtual columns added during file ingestion.","items":{"$ref":"#/components/schemas/ApiProposedAmbiguousColumnResolution_Create"}},"proposedTransactionIdSelection":{"$ref":"#/components/schemas/ApiTransactionIdSelection_Create","description":"The proposed columns to include when selecting a transaction ID."}},"required":["analysisId","analysisSourceTypeId","engagementId","fileManagerFileId"],"title":"Analysis Source"},"ApiProposedAmbiguousColumnResolution_Create":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column with the proposed resolution.","minimum":0},"selectedFormat":{"type":"string","description":"The selected format of the proposed resolution."}},"required":["position","selectedFormat"],"title":"Proposed Ambiguous Column Resolution"},"ApiProposedColumnMapping_Create":{"type":"object","properties":{"columnPosition":{"type":"integer","format":"int32","description":"The position of the proposed column mapping in the original input file."},"virtualColumnIndex":{"type":"integer","format":"int32","description":"The position of the proposed virtual columns within the `proposedVirtualColumns` list."},"mindbridgeField":{"type":"string","description":"The MindBridge field that the data column should be mapped to."},"additionalColumnName":{"type":"string","description":"Proposed additional columns of data to be added to the analysis."}},"title":"Proposed Column Mapping"},"ApiProposedDuplicateVirtualColumn_Create":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Create"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be duplicated."}}}],"required":["columnIndex"],"title":"Proposed Duplicate Virtual Column"},"ApiProposedJoinVirtualColumn_Create":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Create"},{"type":"object","properties":{"columnIndices":{"type":"array","description":"The positions of the columns to be joined.","items":{"type":"integer","format":"int32"}},"delimiter":{"type":"string","description":"The character(s) that should be inserted to separate values."}}}],"required":["columnIndices","delimiter"],"title":"Proposed Join Virtual Column"},"ApiProposedSplitByDelimiterVirtualColumn_Create":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Create"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"delimiter":{"type":"string","description":"The character(s) that should be used to separate the string into parts."},"splitIndex":{"type":"integer","format":"int32","description":"The position of the part to be used as a virtual column."}}}],"required":["columnIndex","delimiter","splitIndex"],"title":"Proposed Split By Delimiter Virtual Column"},"ApiProposedSplitByPositionVirtualColumn_Create":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Create"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"startPosition":{"type":"integer","format":"int32","description":"The starting position of the substring to be used as the new column. **Inclusive**."},"endPosition":{"type":"integer","format":"int32","description":"The ending position of the substring to be used as the new column. **Exclusive**."}}}],"required":["columnIndex","endPosition","startPosition"],"title":"Proposed Split By Position Virtual Column"},"ApiProposedVirtualColumn_Create":{"type":"object","discriminator":{"propertyName":"type","mapping":{"DUPLICATE":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Create","JOIN":"#/components/schemas/ApiProposedJoinVirtualColumn_Create","SPLIT_BY_DELIMITER":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Create","SPLIT_BY_POSITION":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Create"}},"properties":{"name":{"type":"string","description":"The name of the proposed virtual column."},"type":{"type":"string","description":"The type of proposed virtual column.","enum":["DUPLICATE","SPLIT_BY_POSITION","SPLIT_BY_DELIMITER","JOIN"]}},"title":"Proposed Virtual Column"},"ApiTransactionIdSelection_Create":{"type":"object","properties":{"columnSelection":{"type":"array","description":"The columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"virtualColumnSelection":{"type":"array","description":"The virtual columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"type":{"type":"string","description":"The type used when selecting a transaction ID.","enum":["COMBINATION","RUNNING_TOTAL"]},"applySmartSplitter":{"type":"boolean","description":"Indicates whether or not the Smart Splitter was run when selecting a transaction ID."}},"required":["type"],"title":"Transaction ID Selection"},"ApiAmbiguousColumn_Read":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column with the resolution."},"ambiguousFormats":{"type":"array","description":"A list of ambiguous formats detected.","items":{"type":"string"}},"selectedFormat":{"type":"string","description":"The data format to be used in case of ambiguity."}},"title":"Ambiguous Column Resolution"},"ApiAnalysisSource_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Indicates the data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisId":{"type":"string","description":"Identifies the associated analysis."},"analysisPeriodId":{"type":"string","description":"Identifies the analysis period within MindBridge."},"analysisSourceTypeId":{"type":"string","description":"Identifies the analysis source type."},"fileManagerFileId":{"type":"string","deprecated":true,"description":"Identifies the specific file manager file within MindBridge."},"additionalDataColumnField":{"type":"string","description":"When creating an additional data source type, this indicates which additional data column is being targeted."},"warningsIgnored":{"type":"boolean","description":"Indicates whether or not warnings should be ignored."},"warnings":{"type":"array","description":"Details about the warnings associated with the source.","items":{"$ref":"#/components/schemas/ApiMessage_Read"}},"errors":{"type":"array","description":"Details about the errors associated with the specific source.","items":{"$ref":"#/components/schemas/ApiMessage_Read"}},"workflowState":{"type":"string","description":"The current state of the workflow.","enum":["COMPLETED","CANCELLED","FAILED","STARTED","DETECTING_FORMAT","ANALYZING_COLUMNS","CHECKING_INTEGRITY","SCANNING_TRANSACTION_COMBINATIONS","PARSING","PARSING_ICEBERG","ANALYZING_EFFECTIVE_DATE_METRICS","FORMAT_DETECTION_COMPLETED","COLUMN_MAPPINGS_CONFIRMED","SETTINGS_CONFIRMED","PREPARING_ICEBERG","ANALYSIS_PERIOD_SELECTED","FUNDS_REVIEWED","RUNNING","UNPACK_COMPLETE","UPLOADED","FORMAT_DETECTED","COLUMNS_ANALYZED","INTEGRITY_CHECKED","PARSED","AUTHENTICATED","CONFIGURED","EFFECTIVE_DATE_METRICS_ANALYZED","DATA_VALIDATION_CONFIRMED"]},"targetWorkflowState":{"type":"string","description":"The state that the current workflow will advance to.","enum":["COMPLETED","CANCELLED","FAILED","STARTED","DETECTING_FORMAT","ANALYZING_COLUMNS","CHECKING_INTEGRITY","SCANNING_TRANSACTION_COMBINATIONS","PARSING","PARSING_ICEBERG","ANALYZING_EFFECTIVE_DATE_METRICS","FORMAT_DETECTION_COMPLETED","COLUMN_MAPPINGS_CONFIRMED","SETTINGS_CONFIRMED","PREPARING_ICEBERG","ANALYSIS_PERIOD_SELECTED","FUNDS_REVIEWED","RUNNING","UNPACK_COMPLETE","UPLOADED","FORMAT_DETECTED","COLUMNS_ANALYZED","INTEGRITY_CHECKED","PARSED","AUTHENTICATED","CONFIGURED","EFFECTIVE_DATE_METRICS_ANALYZED","DATA_VALIDATION_CONFIRMED"]},"detectedFormat":{"type":"string","description":"The data format that MindBridge detected.","enum":["QUICKBOOKS_JOURNAL","QUICKBOOKS_JOURNAL_2024","QUICKBOOKS_TRANSACTION_DETAIL_BY_ACCOUNT","SAGE50_LEDGER","SAGE50_TRANSACTIONS","CCH_ACCOUNT_LIST","MS_DYNAMICS_JOURNAL","SAGE50_UK"]},"applyDegrouper":{"type":"boolean","description":"Indicates whether or not the degrouper should be applied."},"degrouperApplied":{"type":"boolean","description":"Indicates whether or not the degrouper was applied."},"fileInfo":{"description":"Details about the file being imported into MindBridge.","oneOf":[{"$ref":"#/components/schemas/ApiFileInfo_Read","deprecated":true},{"$ref":"#/components/schemas/ApiTabularFileInfo_Read"}]},"proposedColumnMappings":{"type":"array","description":"Details about the proposed column mapping.","items":{"$ref":"#/components/schemas/ApiProposedColumnMapping_Read"}},"columnMappings":{"type":"array","description":"Details about column mapping.","items":{"$ref":"#/components/schemas/ApiColumnMapping_Read"}},"proposedVirtualColumns":{"type":"array","description":"Details about the proposed virtual columns added during the file import process.","items":{"oneOf":[{"$ref":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiProposedJoinVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Read"}]}},"virtualColumns":{"type":"array","description":"Details about the virtual columns added during file ingestion. ","items":{"oneOf":[{"$ref":"#/components/schemas/ApiDuplicateVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiJoinVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiSplitByDelimiterVirtualColumn_Read"},{"$ref":"#/components/schemas/ApiSplitByPositionVirtualColumn_Read"}]}},"proposedAmbiguousColumnResolutions":{"type":"array","description":"Details about the virtual columns added during file ingestion.","items":{"$ref":"#/components/schemas/ApiProposedAmbiguousColumnResolution_Read"}},"ambiguousColumnResolutions":{"type":"array","description":"Details about resolutions to ambiguity in a column.","items":{"$ref":"#/components/schemas/ApiAmbiguousColumn_Read"}},"proposedTransactionIdSelection":{"$ref":"#/components/schemas/ApiTransactionIdSelection_Read","description":"The proposed columns to include when selecting a transaction ID."},"transactionIdSelection":{"$ref":"#/components/schemas/ApiTransactionIdSelection_Read","description":"Details about transaction ID selection."},"fileInfoVersions":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of providing a set of file info IDs by their Analysis Source File Version."},"fileManagerFiles":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of providing a set of file manager file IDs by their Analysis Source File Version."}},"required":["analysisId","analysisSourceTypeId","engagementId","fileManagerFileId","version"],"title":"Analysis Source"},"ApiColumnMapping_Read":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column mapping."},"field":{"type":"string","description":"The column name."},"mindbridgeField":{"type":"string","description":"The MindBridge field that the data column was mapped to."},"mappingType":{"type":"string","description":"The method used to map the column.","enum":["AUTO","NOT_MAPPED","MANUAL"]},"additionalColumnName":{"type":"string","description":"Additional columns of data that were added to the analysis."}},"title":"Column Mapping"},"ApiDuplicateVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the duplicated column."}}}],"required":["columnIndex","name","type","version"],"title":"Duplicate Virtual Column"},"ApiJoinVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Read"},{"type":"object","properties":{"columnIndices":{"type":"array","description":"The position of the joined column.","items":{"type":"integer","format":"int32"}},"delimiter":{"type":"string","description":"The character(s) used to separate values."}}}],"required":["columnIndices","delimiter","name","type","version"],"title":"Join Virtual Column"},"ApiMessage_Read":{"type":"object","properties":{"code":{"type":"string","description":"Identifies the message type."},"defaultMessage":{"type":"string","description":"The message as it appears in MindBridge."}}},"ApiPageApiAnalysisSource_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysisSource_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiProposedAmbiguousColumnResolution_Read":{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"The position of the column with the proposed resolution.","minimum":0},"selectedFormat":{"type":"string","description":"The selected format of the proposed resolution."}},"required":["position","selectedFormat"],"title":"Proposed Ambiguous Column Resolution"},"ApiProposedColumnMapping_Read":{"type":"object","properties":{"columnPosition":{"type":"integer","format":"int32","description":"The position of the proposed column mapping in the original input file."},"virtualColumnIndex":{"type":"integer","format":"int32","description":"The position of the proposed virtual columns within the `proposedVirtualColumns` list."},"mindbridgeField":{"type":"string","description":"The MindBridge field that the data column should be mapped to."},"additionalColumnName":{"type":"string","description":"Proposed additional columns of data to be added to the analysis."}},"title":"Proposed Column Mapping"},"ApiProposedDuplicateVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be duplicated."}}}],"required":["columnIndex"],"title":"Proposed Duplicate Virtual Column"},"ApiProposedJoinVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Read"},{"type":"object","properties":{"columnIndices":{"type":"array","description":"The positions of the columns to be joined.","items":{"type":"integer","format":"int32"}},"delimiter":{"type":"string","description":"The character(s) that should be inserted to separate values."}}}],"required":["columnIndices","delimiter"],"title":"Proposed Join Virtual Column"},"ApiProposedSplitByDelimiterVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"delimiter":{"type":"string","description":"The character(s) that should be used to separate the string into parts."},"splitIndex":{"type":"integer","format":"int32","description":"The position of the part to be used as a virtual column."}}}],"required":["columnIndex","delimiter","splitIndex"],"title":"Proposed Split By Delimiter Virtual Column"},"ApiProposedSplitByPositionVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiProposedVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the column to be split."},"startPosition":{"type":"integer","format":"int32","description":"The starting position of the substring to be used as the new column. **Inclusive**."},"endPosition":{"type":"integer","format":"int32","description":"The ending position of the substring to be used as the new column. **Exclusive**."}}}],"required":["columnIndex","endPosition","startPosition"],"title":"Proposed Split By Position Virtual Column"},"ApiProposedVirtualColumn_Read":{"type":"object","discriminator":{"propertyName":"type","mapping":{"DUPLICATE":"#/components/schemas/ApiProposedDuplicateVirtualColumn_Read","JOIN":"#/components/schemas/ApiProposedJoinVirtualColumn_Read","SPLIT_BY_DELIMITER":"#/components/schemas/ApiProposedSplitByDelimiterVirtualColumn_Read","SPLIT_BY_POSITION":"#/components/schemas/ApiProposedSplitByPositionVirtualColumn_Read"}},"properties":{"name":{"type":"string","description":"The name of the proposed virtual column."},"type":{"type":"string","description":"The type of proposed virtual column.","enum":["DUPLICATE","SPLIT_BY_POSITION","SPLIT_BY_DELIMITER","JOIN"]}},"title":"Proposed Virtual Column"},"ApiSplitByDelimiterVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the split column."},"delimiter":{"type":"string","description":"The character(s) used to separate the string into parts."},"splitIndex":{"type":"integer","format":"int32","description":"The position of the part used as a virtual column."}}}],"required":["columnIndex","delimiter","name","splitIndex","type","version"],"title":"Split By Delimiter Virtual Column"},"ApiSplitByPositionVirtualColumn_Read":{"allOf":[{"$ref":"#/components/schemas/ApiVirtualColumn_Read"},{"type":"object","properties":{"columnIndex":{"type":"integer","format":"int32","description":"The position of the split column."},"startPosition":{"type":"integer","format":"int32","description":"The starting position of the substring in the new column. **Inclusive**."},"endPosition":{"type":"integer","format":"int32","description":"The ending position of the substring in the new column. **Exclusive**."}}}],"required":["columnIndex","endPosition","name","startPosition","type","version"],"title":"Split By Position Virtual Column"},"ApiTransactionIdSelection_Read":{"type":"object","properties":{"columnSelection":{"type":"array","description":"The columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"virtualColumnSelection":{"type":"array","description":"The virtual columns included when selecting a transaction ID.","items":{"type":"integer","format":"int32"}},"type":{"type":"string","description":"The type used when selecting a transaction ID.","enum":["COMBINATION","RUNNING_TOTAL"]},"applySmartSplitter":{"type":"boolean","description":"Indicates whether or not the Smart Splitter was run when selecting a transaction ID."}},"required":["type"],"title":"Transaction ID Selection"},"ApiVirtualColumn_Read":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"index":{"type":"integer","format":"int32","description":"The position of the virtual column."},"name":{"type":"string","description":"The name of the virtual column."},"type":{"type":"string","description":"The type of virtual column.","enum":["DUPLICATE","SPLIT_BY_POSITION","SPLIT_BY_DELIMITER","JOIN"]}},"required":["name","type","version"],"title":"Virtual Column"},"ApiAnalysisSourceType_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"Data integrity version to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"string","description":"The name of the analysis source type."},"interimName":{"type":"string","description":"The name of the analysis source type when the analysis uses an interim time frame."},"archived":{"type":"boolean","description":"Indicates whether or not the analysis source type is archived."},"features":{"type":"array","description":"A list of the features used when importing data for this analysis source type.","items":{"type":"string","enum":["FORMAT_DETECTION","DATA_VALIDATION","COLUMN_MAPPING","EFFECTIVE_DATE_METRICS","TRANSACTION_ID_SELECTION","PARSE","CONFIRM_SETTINGS","REVIEW_FUNDS"],"title":"Analysis Source Feature"},"uniqueItems":true},"columnDefinitions":{"type":"array","description":"A list of MindBridge column definitions that this analysis source type supports.","items":{"$ref":"#/components/schemas/ApiColumnDefinition_Read"}}},"required":["version"],"title":"Analysis Source Type"},"ApiColumnDefinition_Read":{"type":"object","properties":{"mindbridgeFieldName":{"type":"string","description":"The internal name of the analysis source type's column."},"mindbridgeFieldNameForNonMacGroupings":{"type":"string","description":"The alternative column name when a non-MAC based account grouping is used."},"type":{"type":"string","description":"The type of data this column accepts.","enum":["TEXT","NUMBER","DATE","UNKNOWN","FLOAT64"]},"required":{"type":"boolean","description":"Indicates whether or not this column is required."},"requiredForNonMacGroupings":{"type":"boolean","description":"Indicates whether or not this column is required when using a non-MAC based account grouping."},"allowBlanks":{"type":"boolean","description":"Indicates whether or not this column allows the source column to contain blank values."},"alternativeMappings":{"type":"array","description":"A list of alternative mappings, identified by their `mindbridgeFieldName`. If all of the alternatives are mapped, then this mapping's `required` constraint is considered satisfied. \n\n**Note**: This column may not be mapped if any alternative is also mapped.","items":{"type":"string"}},"defaultValue":{"type":"string","description":"A value that is substituted for blank values when `allowBlanks` is false."}},"title":"Column Definition"},"ApiPageApiAnalysisSourceType_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysisSourceType_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiAnalysisResult_Read":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo_Read","description":"Details about the user who last modified or updated the object.","readOnly":true},"analysisId":{"type":"string","description":"Identifies the associated analysis."},"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisTypeId":{"type":"string","description":"Identifies the type of analysis."},"interim":{"type":"boolean","description":"Indicates whether or not the analysis is using an interim time frame."},"analysisPeriods":{"type":"array","description":"Details about the specific analysis periods under audit.","items":{"$ref":"#/components/schemas/ApiAnalysisPeriod_Read"}},"reportingPeriodConfigurationId":{"type":"string","description":"Identifies the associated reporting period configuration. If null the analysis uses a standard reporting period."}},"required":["version"],"title":"Analysis Result"},"PageApiAnalysisResult_Read":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/Pageablenull_Read"},"numberOfElements":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysisResult_Read"}},"number":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/Sortnull_Read"},"empty":{"type":"boolean"}}},"Pageablenull_Read":{"type":"object","properties":{"paged":{"type":"boolean"},"pageNumber":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"unpaged":{"type":"boolean"},"offset":{"type":"integer","format":"int64"},"sort":{"$ref":"#/components/schemas/Sortnull_Read"}}},"ApiAnalysisPeriod_Create":{"type":"object","properties":{"startDate":{"type":"string","format":"date","description":"The first day of the period under analysis."},"interimAsAtDate":{"type":"string","format":"date","description":"The last day of the interim period under analysis."},"endDate":{"type":"string","format":"date","description":"The last day of the period under analysis."}},"required":["endDate","startDate"]},"ApiAnalysis_Create":{"type":"object","properties":{"engagementId":{"type":"string","description":"Identifies the associated engagement."},"analysisTypeId":{"type":"string","description":"Identifies the type of analysis."},"name":{"type":"string","description":"The name of the analysis.","maxLength":80,"minLength":0},"interim":{"type":"boolean","description":"Indicates whether or not the analysis is using an interim time frame."},"periodic":{"type":"boolean","description":"Indicates whether or not the analysis is using a periodic time frame."},"analysisPeriods":{"type":"array","description":"Details about the specific analysis periods under audit.","items":{"$ref":"#/components/schemas/ApiAnalysisPeriod_Create"}},"currencyCode":{"type":"string","description":"The currency to be displayed across the analysis results."},"referenceId":{"type":"string","description":"A reference ID to identify the analysis.","maxLength":256,"minLength":0}},"required":["analysisPeriods","analysisTypeId","currencyCode","engagementId","name"],"title":"Analysis"},"ApiPageApiAnalysis_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAnalysis_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiEngagementRollForwardRequest":{"type":"object","properties":{"analysisId":{"type":"string","description":"Identifies the analysis to roll forward."},"targetEngagementId":{"type":"string","description":"Identifies the engagement that the analysis will be rolled forward into."},"interim":{"type":"boolean","description":"When `true`, the new analysis period will use an interim time frame."}},"required":["analysisId","targetEngagementId"],"title":"Engagement Roll Forward Request"},"RunAdminReportRequest_Create":{"type":"object","properties":{"start":{"type":"string","format":"date-time","description":"The first date in the reporting timeframe."},"end":{"type":"string","format":"date-time","description":"The last date in the reporting timeframe."}},"required":["end","start"],"title":"Run Admin Report Request"},"RunAnalysisOverviewReportRequest_Create":{"type":"object","properties":{"includeAmountValue":{"type":"boolean","description":"Indicates whether to include amount value. Defaults to `false` if not specified."},"includeEntriesPercentageValue":{"type":"boolean","description":"Indicates whether to include entries percentage value. Defaults to `false` if not specified."},"includeAmountPercentageValue":{"type":"boolean","description":"Indicates whether to include amount percentage value. Defaults to `false` if not specified."},"includeControlPointAndWeights":{"type":"boolean","description":"Indicates whether to include control point and weights. Defaults to `false` if not specified."},"userTimeZone":{"type":"string","description":"Time zone to use for certain times in the export. Defaults to `UTC` if not specified or if the provided timezone string value is unable to be determined."},"csvExport":{"type":"boolean","description":"Indicates to export as a CSV file format instead of Excel. Defaults to `true` if not specified."},"analysisIds":{"type":"array","description":"The analysis ids to include. If not provided or empty, all will be included.","items":{"type":"string"}},"riskScoreIds":{"type":"array","description":"The risk score ids being filtered. If not provided, all will be included.","items":{"type":"string"},"uniqueItems":true}},"title":"Run Analysis Overview Report Request"},"RunActivityReportRequest_Create":{"type":"object","properties":{"start":{"type":"string","format":"date-time","description":"The first date in the reporting timeframe."},"end":{"type":"string","format":"date-time","description":"The last date in the reporting timeframe."},"userIds":{"type":"array","description":"The users to include in the report. If empty, all users will be included.","items":{"type":"string"}},"categories":{"type":"array","description":"The categories to include in the report. If empty, all categories will be included.","items":{"type":"string","enum":["ACCOUNT_GROUPING","ACCOUNT_MAPPING","ADMIN_REPORT","ANALYSIS","ANALYSIS_SETTINGS","ANALYSIS_TYPE","API_TOKEN","AUDIT_ANNOTATION","COLLECTION_ASSIGNMENT","CUSTOM_CONTROL_POINT","ENGAGEMENT","ENGAGEMENT_ACCOUNT_GROUP","FILE_LOCKER","FILE_MANAGER","FILTER","GDPDU","INGESTION","INTEGRATIONS","LIBRARY","MIGRATION","ORGANIZATION","POPULATION","QUERY","RATIO","REPORT_BUILDER","REPORT","RESULTS_EXPORT","RISK_RANGES","RISK_SEGMENTATION_DASHBOARD","SCIM_API","SUPPORT_ACCESS","TASK","USER","WORKFLOW","PAGE_VIEW","ANALYSIS_SOURCE","WEBHOOK","PROCEDURE_INSTANCE","CLOUD_ELEMENTS","ENGAGEMENT_ACCOUNT_GROUPING_NODE"]}},"onlyCompletedAnalyses":{"type":"boolean","description":"Restrict entries to analysis complete events."}},"required":["end","start"],"title":"Run Activity Report Request"},"ApiVerifyAccountsRequest":{"type":"object","properties":{"engagementId":{"type":"string","description":"The unique identifier of the engagement to verify accounts for."}},"required":["engagementId"],"title":"Verify Accounts Request"},"ApiPageApiAccountMapping_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAccountMapping_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiExportAccountsRequest":{"type":"object","properties":{"engagementId":{"type":"string"}},"required":["engagementId"],"title":"Export Accounts Request"},"ApiDeleteUnusedAccountMappingsRequest":{"type":"object","properties":{"engagementId":{"type":"string","description":"The unique identifier of the engagement to delete unused account mappings for."}},"required":["engagementId"],"title":"Delete Unused Account Mappings Request"},"ApiPageApiAccountGroup_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAccountGroup_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiImportAccountGroupingParams_Update":{"type":"object","properties":{"chunkedFileId":{"type":"string","description":"The unique identifier of the chunked file that contains the account grouping data."}},"required":["chunkedFileId"],"title":"Import Account Grouping Parameters"},"ApiAccountGrouping":{"type":"object","properties":{"id":{"type":"string","description":"The unique object identifier."},"version":{"type":"integer","format":"int64","description":"The data integrity version, to ensure data consistency."},"creationDate":{"type":"string","format":"date-time","description":"The date that the object was originally created."},"lastModifiedDate":{"type":"string","format":"date-time","description":"The date that the object was last updated or modified."},"createdUserInfo":{"$ref":"#/components/schemas/ApiUserInfo","description":"Details about the user who created the object.","readOnly":true},"lastModifiedUserInfo":{"$ref":"#/components/schemas/ApiUserInfo","description":"Details about the user who last modified or updated the object.","readOnly":true},"name":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account grouping."},"codeDisplayName":{"type":"object","additionalProperties":{"type":"string"},"description":"The name of the account code hierarchy system used within the dataset."},"delimiter":{"type":"string","description":"The delimiter character used to separate each category level in an account grouping code."},"mac":{"type":"boolean","description":"When `true`, the account grouping is based on the MAC code system."},"system":{"type":"boolean","description":"When `true`, the account grouping is a system account grouping and cannot be modified."},"archived":{"type":"boolean","description":"When `true`, the account grouping is archived."},"publishedDate":{"type":"string","format":"date-time","description":"The date that the account grouping was published."},"publishStatus":{"type":"string","description":"The current status of the account grouping.","enum":["DRAFT","UNPUBLISHED_CHANGES","PUBLISHED"]}},"required":["codeDisplayName","delimiter","name","publishStatus","version"],"title":"Account Grouping"},"ApiPageApiAccountGrouping_Read":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/ApiAccountGrouping_Read"}},"numberOfElements":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"pageable":{"$ref":"#/components/schemas/ApiPageable_Read","deprecated":true},"pageSize":{"type":"integer","format":"int32","deprecated":true},"sort":{"$ref":"#/components/schemas/Sortnull_Read","deprecated":true},"first":{"type":"boolean","deprecated":true},"last":{"type":"boolean","deprecated":true},"size":{"type":"integer","format":"int32","deprecated":true},"number":{"type":"integer","format":"int32","deprecated":true}},"title":"Page"},"ApiImportAccountGroupingParams_Create":{"type":"object","properties":{"name":{"type":"string","description":"The name of the new account grouping."},"type":{"type":"string","description":"The type of account grouping file being imported.","enum":["MINDBRIDGE_TEMPLATE","CCH_GROUP_TRIAL_BALANCE"]},"chunkedFileId":{"type":"string","description":"The unique identifier of the chunked file that contains the account grouping data."}},"required":["chunkedFileId","name","type"],"title":"Import Account Grouping Parameters"},"ApiBasicMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}}},"title":"Table Metadata Basic Metrics"},"ApiColumnData":{"type":"object","properties":{"columnName":{"type":"string","description":"The name of the column."},"position":{"type":"integer","format":"int32","description":"The index of the column."},"synthetic":{"type":"boolean","description":"If `true` this column was generated, as opposed to being a part of the original data."},"rowSample":{"type":"array","description":"A list of values from this column across multiple rows. All values are distinct.","items":{"type":"string"}},"columnMetadata":{"$ref":"#/components/schemas/ApiColumnMetadata","description":"A collection of metrics."}},"title":"Column Metadata"},"ApiColumnDateTimeFormat":{"type":"object","properties":{"selected":{"type":"boolean","description":"If true, this format was selected during column mapping as the correct format for this column."},"customFormatPattern":{"type":"string","description":"The pattern of this date format."},"sampleRawValues":{"type":"array","description":"A list of values in this column.","items":{"type":"string"}},"sampleConvertedValues":{"type":"array","description":"A list of date time values derived by parsing the text using this format.","items":{"type":"string","format":"date-time"}}},"title":"Table Metadata Date Time Format"},"ApiColumnMetadata":{"type":"object","properties":{"cellLengthMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding cells that are larger than 2000 characters in the column."},"dataTypeMetrics":{"$ref":"#/components/schemas/ApiDataTypeMetrics","description":"Metrics regarding the data types of column values."},"densityMetrics":{"$ref":"#/components/schemas/ApiDensityMetrics","description":"Metrics regarding the density of column values."},"distinctValueMetrics":{"$ref":"#/components/schemas/ApiDistinctValueMetrics","description":"Metrics regarding the uniqueness of column values."},"nullValueMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding “null” values in the column."},"scientificNotationMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding the use of scientific notation in the column."},"specialCharacterMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding the use of special characters in the column."}},"title":"Column Metadata Metrics"},"ApiCountMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."}},"title":"Table Metadata Count Metrics"},"ApiCurrencyFormat":{"type":"object","properties":{"decimalCharacter":{"type":"string","description":"The character used as a decimal separator."},"nonDecimalDelimiters":{"type":"array","description":"Non decimal separator special characters, including currency and grouping characters.","items":{"type":"string"},"uniqueItems":true},"ambiguousDelimiters":{"type":"array","description":"A list of possible delimiter characters, if multiple possible candidates are available.","items":{"type":"string"},"uniqueItems":true},"example":{"type":"string","description":"An example value."}},"title":"Table Metadata Currency Format"},"ApiDataPreview":{"type":"object","properties":{"row":{"type":"integer","format":"int64","description":"The row number within the table."},"column":{"type":"integer","format":"int32","description":"The column index within the row."},"data":{"type":"string","description":"The value within the target row."}},"title":"Table Metadata Data Preview"},"ApiDataTypeMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"nonNullValueCount":{"type":"integer","format":"int64","description":"The number of non-null values in this column."},"typeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of column type to number of occurrences. A single column value can match multiple types."},"textTypeDetails":{"$ref":"#/components/schemas/ApiTextTypeDetails","description":"Metrics regarding the text type values in this column."},"numericTypeDetails":{"$ref":"#/components/schemas/ApiNumericTypeDetails","description":"Metrics regarding the number type values in this column."},"dateTypeDetails":{"$ref":"#/components/schemas/ApiDateTypeDetails","description":"Metrics regarding the date type values in this column."},"detectedTypes":{"type":"array","description":"A list of all detected types in this column.","items":{"type":"string","enum":["TEXT","NUMBER","DATE","UNKNOWN","FLOAT64"]}},"dominantType":{"type":"string","description":"The type determined to be the most prevalent in this column.","enum":["TEXT","NUMBER","DATE","UNKNOWN","FLOAT64"]}},"title":"Table Metadata Data Type Metrics"},"ApiDateTypeDetails":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeZonedDateTime","description":"A pair of values representing the earliest and latest values within this column."},"ambiguousDateTimeFormats":{"type":"array","description":"A list of possible date time formats, if multiple possible candidates are available.","items":{"$ref":"#/components/schemas/ApiColumnDateTimeFormat"}},"unambiguousDateTimeFormats":{"type":"array","description":"A list of possible date time formats, if multiple possible candidates are available.","items":{"$ref":"#/components/schemas/ApiColumnDateTimeFormat"}}},"title":"Table Metadata Date Type Details"},"ApiDensityMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"density":{"type":"number","format":"float","description":"The percentage density of values against blanks, represented as decimal between 1 and 0."},"blanks":{"type":"integer","format":"int64","description":"The number of blank values."}},"title":"Table Metadata Density Metrics"},"ApiDistinctValueMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."}},"title":"Table Metadata Distinct Metrics"},"ApiHistogramMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"histogram":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of the number of columns to the number of rows with that many columns, in the case of unevenColumnsMetrics."}},"title":"Table Metadata Histogram Metrics"},"ApiNumericTypeDetails":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeBigDecimal","description":"A pair of values representing the min and max values within this column."},"currencyFormat":{"$ref":"#/components/schemas/ApiCurrencyFormat","description":"Metadata on the detected number format of this column."},"examplePairFromCurrencyFormatter":{"type":"array","description":"A pair of values as examples in the event that two or more unambiguous number formats are detected in the same column.","items":{"type":"string"}},"sum":{"type":"number","description":"The sum of all values in this column, up to a maximum of 10e50. Values smaller than 10e-50 will be rounded up."},"cappedSum":{"type":"boolean","description":"If `true` then the sum is larger than 10e50."},"cappedMax":{"type":"boolean","description":"If `true` then at least one individual value is larger than 10e50."}},"title":"Table Metadata Numeric Type Details"},"ApiOverallDataTypeMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"cellTypeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map of data types to the number of cells in the table of that data type."},"columnTypeCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"A map of data types to the number of columns in the table of that data type."},"totalRecords":{"type":"integer","format":"int64","description":"The total number of values."},"blankRecords":{"type":"integer","format":"int64","description":"The number of blank values."},"columnCount":{"type":"integer","format":"int32","description":"The number of columns."},"totalRows":{"type":"integer","format":"int64","description":"The total number of rows."}},"title":"Table Metadata Overall Data Type Metrics"},"ApiSheetMetrics":{"type":"object","properties":{"state":{"type":"string","description":"Validation state of the metric within its context.","enum":["PASS","WARN","FAIL"]},"dataPreviews":{"type":"array","description":"A list of values within the table relevant to the metric.","items":{"$ref":"#/components/schemas/ApiDataPreview"}},"count":{"type":"integer","format":"int64","description":"The amount of a given metric."},"sheetNames":{"type":"array","description":"A list of sheet names within the underlying Excel file.","items":{"type":"string"}},"validSheets":{"type":"array","description":"A list of usable sheet names within the underlying Excel file.","items":{"type":"string"}}},"title":"Table Metadata Sheet Metrics"},"ApiTableMetadata":{"type":"object","properties":{"cellLengthMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding cells that are larger than 2000 characters in the table."},"densityMetrics":{"$ref":"#/components/schemas/ApiDensityMetrics","description":"Metrics regarding whole table density."},"inconsistentDateMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding inconsistent date formats within columns for the entire table."},"nullValueMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding “null” values across the entire table."},"numericColumnMetrics":{"$ref":"#/components/schemas/ApiBasicMetrics","description":"Metrics regarding numeric columns within the table."},"overallDataTypeMetrics":{"$ref":"#/components/schemas/ApiOverallDataTypeMetrics","description":"Metrics regarding detected data types across the entire table."},"scientificNotationMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding scientific notation across the entire table."},"sheetMetrics":{"$ref":"#/components/schemas/ApiSheetMetrics","description":"Metrics regarding excel sheets within the underlying excel file."},"specialCharacterMetrics":{"$ref":"#/components/schemas/ApiCountMetrics","description":"Metrics regarding special characters across the entire table."},"unevenColumnsMetrics":{"$ref":"#/components/schemas/ApiHistogramMetrics","description":"Metrics regarding column length by row."}},"title":"Table Metadata"},"ApiTabularFileInfo":{"allOf":[{"$ref":"#/components/schemas/ApiFileInfo"},{"type":"object","properties":{"headerRowIndex":{"type":"integer","format":"int32","description":"The row number of the first detected header."},"firstLine":{"type":"string","description":"The first line of the table."},"delimiter":{"type":"string","description":"The delimiter character used to separate cells. Only populated when the underlying file is a CSV file."},"lastNonBlankRowIndex":{"type":"integer","format":"int64","description":"The row number of the last row that isn't blank."},"tableMetadata":{"$ref":"#/components/schemas/ApiTableMetadata","description":"A collection of metadata describing the table as a whole."},"columnData":{"type":"array","description":"A list of column metadata entities, describing each column.","items":{"$ref":"#/components/schemas/ApiColumnData"}},"rowContentSnippets":{"type":"array","description":"A list of sample rows from the underlying file.","items":{"type":"array","items":{"type":"string"}}}}}],"required":["version"],"title":"Tabular File Info"},"ApiTextTypeDetails":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/RangeInteger","description":"A pair of values representing the min and max length of text values within this column."}},"title":"Table Metadata Text Type Details"},"RangeBigDecimal":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}}},"RangeInteger":{"type":"object","properties":{"min":{"type":"integer","format":"int32"},"max":{"type":"integer","format":"int32"}}},"RangeZonedDateTime":{"type":"object","properties":{"min":{"type":"string","format":"date-time"},"max":{"type":"string","format":"date-time"}}},"ApiEffectiveDateMetrics_Read":{"type":"object","properties":{"periodType":{"type":"string","description":"Indicates the time period by which the histogram has been broken down.","enum":["DAY","WEEK","MONTH"]},"entriesInPeriod":{"type":"integer","format":"int64","description":"The number of entries that occurred within the source period's date range."},"entriesOutOfPeriod":{"type":"integer","format":"int64","description":"The number of entries that occurred outside of the source period's date range."},"debitsInPeriod":{"type":"number","description":"The total debit amount that occurred within the source period's date range."},"creditsInPeriod":{"type":"number","description":"The total credit amount that occurred within the source period's date range."},"inPeriodCountHistogram":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map showing the total number of entries that occurred within each indicated date period."},"outOfPeriodCountHistogram":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"A map showing the total number of entries that occurred outside of each indicated date period."}}},"ApiAnalysisSourceStatus_Read":{"type":"object","properties":{"sourceId":{"type":"string","description":"Identifies the analysis source object."},"analysisSourceTypeId":{"type":"string","description":"Identifies the analysis source type."},"status":{"type":"string","description":"The current state of the analysis source.","enum":["IMPORTING","UPLOADING","IN_PROGRESS","COMPLETED","CANCELLED","FAILED"]},"periodId":{"type":"string","description":"Identifies the analysis period within the analysis."}}},"ApiAnalysisStatus_Read":{"type":"object","properties":{"analysisId":{"type":"string","description":"Identifies the associated analysis."},"analysisTypeId":{"type":"string","description":"Identifies the type of analysis."},"preflightErrors":{"type":"array","description":"The errors that occurred before the analysis was run.","items":{"type":"string","enum":["IN_PROGRESS","NOT_READY","ARCHIVED","REQUIRED_FILES_MISSING","SOURCES_NOT_READY","SOURCE_ERROR","UNVERIFIED_ACCOUNT_MAPPINGS","ANALYSIS_PERIOD_OVERLAP","SOURCE_WARNINGS_PRESENT"]}},"sourceStatuses":{"type":"array","description":"Details about the state of each analysis source.","items":{"$ref":"#/components/schemas/ApiAnalysisSourceStatus_Read"}},"availableFeatures":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Details about the various analysis capabilities available in MindBridge. [Learn more](https://support.mindbridge.ai/hc/en-us/articles/360056395234)"},"status":{"type":"string","description":"The current state of the analysis.","enum":["NOT_STARTED","IMPORTING_FILE","PREPARING_DATA","PROCESSING","CONSOLIDATING_RESULTS","COMPLETED","FAILED"]},"ready":{"type":"boolean","description":"Indicates whether or not the analysis is ready to be run."},"mappedAccountMappingCount":{"type":"integer","format":"int64","description":"The number of mapped accounts."},"unmappedAccountMappingCount":{"type":"integer","format":"int64","description":"The number of unmapped accounts."},"inferredAccountMappingCount":{"type":"integer","format":"int64","description":"The number of inferred account mapping; this can be considered a warning on partial matches."},"reRunReady":{"type":"boolean","description":"Indicates whether or not the analysis is ready to be run again."}},"title":"Analysis Status"},"MindBridgeQueryTerm":{"type":"object","anyOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}},{"type":"object","additionalProperties":{"type":"object","properties":{"$eq":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$ne":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$gt":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$gte":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$lt":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$lte":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$contains":{"type":"array","items":{"type":"string"}}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$contains":{"type":"array","items":{"type":"string"}}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$in":{"type":"array","items":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$nin":{"type":"array","items":{"oneOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$flags":{"type":"object","additionalProperties":{"type":"boolean"}}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$isubstr":{"type":"string"}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$iprefix":{"type":"string"}}}},{"type":"object","additionalProperties":{"type":"object","properties":{"$niprefix":{"type":"string"}}}},{"type":"object","properties":{"$and":{"type":"array","items":{"$ref":"#/components/schemas/MindBridgeQueryTerm"}}}},{"type":"object","properties":{"$or":{"type":"array","items":{"$ref":"#/components/schemas/MindBridgeQueryTerm"}}}},{"type":"object","properties":{"$keyword_prefix":{"type":"string"}}},{"type":"object","properties":{"$keyword_prefix_not":{"type":"string"}}},{"type":"object"}]},"JsonTableBody":{"type":"array","example":[{"Amount":"100.00$","Account":"Accounts Receivable"},{"Amount":"100.00$","Account":"Accounts Payable"}],"items":{"type":"object","items":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}},"securitySchemes":{"mindbridge-api":{"type":"http","scheme":"bearer","bearerFormat":"opaque"}}},"webhooks":{"webhooks":{"post":{"tags":["Webhooks"],"description":"Webhooks\n------\n\nWebhooks provide a lightweight, event driven method of notifying external systems of events within the MindBridge platform, enabling internal events to\ncommunicate data with external systems via HTTPS requests originating from our platform, allowing for a more robust automation potential, without the need to\npoll for status. In order to leverage webhook functionality, a URL must be provided, and a selection of events that you would like to receive notifications for\nassociated with that URL.\n\n## URL Restrictions\n\n- URL defined must be unique.\n- Protocols are limited to https.\n- IP addresses are not permitted.\n- Domains that resolve to local ip addresses.\n- Unqualified hosts are not permitted (domains without a `.` in them).\n- Domains ending in `.local`, `.azure.com`, `microsoft.net`, `mindbridge.ai`, `mindbridge.com` are not allowed (this list is subject to change, as additional\n restrictions may be introduced in the future).\n\n## Outbound Request\n\nEach outbound request is sent as an HTTPS POST. The post will contain a JSON payload in the body of the message. As well as the JSON payload, there are a number\nof important HTTPS headers that are attached to each message. Using this information, combined with the public key associated with the configured webhook,\nallows the verification of a digital signature. The method of authenticating the payload will be covered in a separate section.\n\n| **HTTPS Header** | **Description** |\n|---------------------|------------------------------------------------------------------------------------------|\n| `webhook-id` | A unique event ID for the event that triggered the outbound webhook request. |\n| `webhook-timestamp` | Timestamp associated with the outbound HTTPS request. |\n| `webhook-signature` | The digital signature that can be used to validate the authenticity of the webhook data. |\n\n## Security\n\nWebhooks operate by communicating with user provided HTTPS URLs. This can lead to potential security risks from malicious actors. In order to provide a way to\nauthenticate the validity of the webhook on the client side, we have implemented an asymmetric digital signature scheme that can be used to check that the\npayload is from us, and has not been modified. When a webhook is registered within our system, clients are provided with a public key, which utilizes the\n`Ed25519`algorithm. There are a number of measures used to avoid common attack scenarios within the digital signing scheme, which will be covered below.\n\n## Configuring your Server\n\nIn order to listen to webhook events, you must have a publicly accessible server that can accept HTTPS POST requests from the MindBridge system. This server\nmust not implement any authentication protocols in order to receive data. The data signature scheme implemented provides a mechanism to ensure data integrity,\nand while this is optional\nto [authenticate the received payload,](https://mindbridge-ai.atlassian.net/wiki/spaces/SBE/pages/4921327617/API+Content+-+Webhooks#Authenticating-a-Payload\n\"https://mindbridge-ai.atlassian.net/wiki/spaces/SBE/pages/4921327617/API+Content+-+Webhooks#Authenticating-a-Payload\")\nit is highly recommended to utilize this data integrity check in your workflow.\n\n## Responding to Webhook Requests\n\nHow you respond to a webhook event has implications on the status of the webhook configured within the MindBridge system. We look at the HTTP response code, and\nin some cases the HTTP headers in order to determine actions we may take within our system.\n\n| **HTTP Code** | **Result** |\n|---------------------|---------------------------------------|\n| 200 series response | Successfully received webhook payload |\n\n## Authenticating a Payload\n\nUtilizing the data from the payload, as well as the headers in the HTTP post, as well as the public key associated with your webhook configuration, you will be\nable to validate the digital signature that is attached in the HTTP header. In order to accomplish this, you need to format a string with the following format:\n\n`..`\n\nValues with `< >` surrounding them are variables to insert into the template above.\n\n| **Variable** | **Description** |\n|-------------------|--------------------------------------------------|\n| webhook-id | Found in the HTTP header |\n| webhook-timestamp | Found in the HTTP header |\n| payload | The unmodified contents of the HTTP POST request |\n\nWith this string generated, and using the public key from the webhook configuration, and the algorithm `Ed25519`, you can create a digital signature of the\nformatted string created above, and compare it against the digital signature provided in the HTTP header, under the key `webhook-signature`. The creation of\nthis formatted payload helps to mitigate common attack patterns, such as replay attacks, which is why the timestamp of the outbound request is part of the\nsigned message.\n\n## Events\n\n| **Name** | **Description** | **Event Type** | **Payload Model** |\n|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|------------------------------|\n| Analysis Created | Notify the registered webhook URL that an Analysis has been created. | analysis.created | AnalysisWebhookPayload |\n| Analysis Updated | Notify the registered webhook URL that an Analysis has been updated. | analysis.updated | AnalysisWebhookPayload |\n| Analysis Deleted | Notify the registered webhook URL that an Analysis has been deleted. | analysis.deleted | AnalysisWebhookPayload |\n| Analysis Archived | Notify the registered webhook URL that an Analysis has been archived. | analysis.archived | AnalysisWebhookPayload |\n| Analysis Unarchived | Notify the registered webhook URL that an Analysis has been unarchived. | analysis.unarchived | AnalysisWebhookPayload |\n| Analysis Complete | Notify the registered webhook URL that an analysis has been completed. | analysis.complete | AnalysisWebhookPayload |\n| Analysis Failed | Notify the registered webhook URL that the Analysis has failed. | analysis.failed | AnalysisWebhookPayload |\n| Engagement Created | Notify the registered webhook URL that an Engagement has been created. | engagement.created | EngagementWebhookPayload |\n| Engagement Updated | Notify the registered webhook URL that an Engagement has been updated. | engagement.updated | EngagementWebhookPayload |\n| Engagement Deleted | Notify the registered webhook URL that an Engagement has been deleted. | engagement.deleted | EngagementWebhookPayload |\n| Unmapped Accounts | Notify the registered webhook URL that an engagement has unresolved account mappings that exist, which is the result of new accounts discovered during a data ingestion workflow. | unmapped.accounts | EngagementWebhookPayload |\n| Ingestion Complete | Notify the registered webhook URL that a data ingestion workflow has been completed. | ingestion.complete | AnalysisSourceWebhookPayload |\n| Ingestion Failed | Notify the registered webhook URL that a data ingestion workflow has been completed. | ingestion.failed | AnalysisSourceWebhookPayload |\n| Data Added | Notify the registered webhook URL that new data has been added to an engagement. | data.added | FileManagerWebhookPayload |\n| Export Ready | Notify the registered webhook URL that a requested file export has been completed. | export.ready | FileManagerWebhookPayload |\n| User Invited | Notify the registered webhook URL that a User has been invited to the tenant. | user.invited | UserRoleWebhookPayload |\n| User Role Updated | Notify the registered webhook URL that a User's role has been updated. | user.role | UserRoleWebhookPayload |\n| User Deleted | Notify the registered webhook URL that a User has been deleted. | user.deleted | UserWebhookPayload |\n| User Login | Notify the registered webhook URL that a User has logged in. | user.login | UserLoginWebhookPayload |\n| User Status Updated | Notify the registered webhook URL that a User has been enabled or disabled. | user.status | UserStatusWebhookPayload |\n","parameters":[{"name":"webhook-id","in":"header","description":"A unique event ID for the event that triggered the outbound webhook request.","required":true,"schema":{"type":"string"}},{"name":"webhook-timestamp","in":"header","description":"Timestamp associated with the outbound HTTPS request.","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"webhook-signature","in":"header","description":"The digital signature that can be used to validate the authenticity of the webhook data.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AnalysisResultWebhookPayload"},{"$ref":"#/components/schemas/AnalysisResultWebhookPayload"},{"$ref":"#/components/schemas/AnalysisSourceWebhookPayload"},{"$ref":"#/components/schemas/EngagementSubscriptionWebhookPayload"},{"$ref":"#/components/schemas/EngagementWebhookPayload"},{"$ref":"#/components/schemas/FileManagerWebhookPayload"},{"$ref":"#/components/schemas/UserWebhookPayload"},{"$ref":"#/components/schemas/UserRoleWebhookPayload"},{"$ref":"#/components/schemas/UserLoginWebhookPayload"},{"$ref":"#/components/schemas/UserStatusWebhookPayload"}],"discriminator":{"propertyName":"type","mapping":{"user.status":"UserStatusWebhookPayload","analysis.updated":"AnalysisResultWebhookPayload","analysis.failed":"AnalysisResultWebhookPayload","analysis.created":"AnalysisResultWebhookPayload","analysis.unarchived":"AnalysisResultWebhookPayload","analysis.deleted":"AnalysisResultWebhookPayload","export.ready":"FileManagerWebhookPayload","unmapped.accounts":"EngagementSubscriptionWebhookPayload","analysis.completed":"AnalysisResultWebhookPayload","analysis.archived":"AnalysisResultWebhookPayload","user.role":"UserRoleWebhookPayload","engagement.deleted":"EngagementWebhookPayload","user.invited":"UserRoleWebhookPayload","engagement.updated":"EngagementWebhookPayload","user.deleted":"UserWebhookPayload","user.login":"UserLoginWebhookPayload","ingestion.complete":"AnalysisSourceWebhookPayload","engagement.created":"EngagementWebhookPayload","data.added":"FileManagerWebhookPayload","ingestion.failed":"AnalysisSourceWebhookPayload"}}}}}}}}}} \ No newline at end of file +{ + "openapi": "3.1.0", + "info": { + "title": "sort_data_models infinite loop reproducer", + "version": "1.0", + "description": "Discriminated oneOf (X) with variants that allOf-reference X causes circular inheritance among generated models. sort_data_models then never converges (while-loop oscillation). See parser/base.py sort_data_models." + }, + "paths": {}, + "components": { + "schemas": { + "X": { + "type": "object", + "discriminator": { + "propertyName": "kind" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/A" + }, + { + "$ref": "#/components/schemas/B" + } + ] + }, + "A": { + "allOf": [ + { + "$ref": "#/components/schemas/X" + }, + { + "type": "object", + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "a" + } + } + } + ] + }, + "B": { + "allOf": [ + { + "$ref": "#/components/schemas/X" + }, + { + "type": "object", + "required": [ + "kind" + ], + "properties": { + "kind": { + "const": "b" + } + } + } + ] + } + } + } +} diff --git a/uv.lock b/uv.lock index 8d3ce5252..a12766c67 100644 --- a/uv.lock +++ b/uv.lock @@ -981,7 +981,7 @@ dev = [ { name = "pytest", specifier = ">=8.3.4" }, { name = "pytest-cov", specifier = ">=5" }, { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-timeout", specifier = ">=2.4.0" }, + { name = "pytest-timeout", specifier = ">=2.4" }, { name = "pytest-xdist", specifier = ">=3.3.1" }, { name = "time-machine", specifier = ">=3.1" }, { name = "twine", specifier = ">=6.1" }, @@ -1014,7 +1014,7 @@ test = [ { name = "pytest", specifier = ">=8.3.4" }, { name = "pytest-cov", specifier = ">=5" }, { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-timeout", specifier = ">=2.4.0" }, + { name = "pytest-timeout", specifier = ">=2.4" }, { name = "pytest-xdist", specifier = ">=3.3.1" }, { name = "time-machine", specifier = ">=3.1" }, { name = "watchfiles", specifier = ">=1.1" }, @@ -1028,7 +1028,7 @@ type = [ { name = "pytest", specifier = ">=8.3.4" }, { name = "pytest-cov", specifier = ">=5" }, { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-timeout", specifier = ">=2.4.0" }, + { name = "pytest-timeout", specifier = ">=2.4" }, { name = "pytest-xdist", specifier = ">=3.3.1" }, { name = "time-machine", specifier = ">=3.1" }, { name = "ty", specifier = ">=0.0.8" }, From 582a49525c75b5c7d156fcd2fe2320c3a4dd81ea Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Thu, 16 Apr 2026 19:39:10 -0400 Subject: [PATCH 15/23] Resolve test failure 1) Avoid infinite loop due to cyclic inheritance with discriminators 2) De-duplicate union members (but keep same order) --- src/datamodel_code_generator/model/base.py | 4 +- src/datamodel_code_generator/parser/base.py | 11 ++++- .../main/openapi/to_be_renamed_later.py | 44 +++++++++++++++++++ 3 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 tests/data/expected/main/openapi/to_be_renamed_later.py diff --git a/src/datamodel_code_generator/model/base.py b/src/datamodel_code_generator/model/base.py index 7110f58bc..75bb109a7 100644 --- a/src/datamodel_code_generator/model/base.py +++ b/src/datamodel_code_generator/model/base.py @@ -223,7 +223,7 @@ def _build_union_type_hint(self) -> str | None: """Build Union[] type hint from data_type.data_types if forward reference requires it.""" if not (self._use_union_operator != self.data_type.use_union_operator and self.data_type.is_union): return None - parts = [dt.type_hint for dt in self.data_type.data_types if dt.type_hint] + parts = dict.fromkeys(dt.type_hint for dt in self.data_type.data_types if dt.type_hint).keys() if len(parts) > 1: return f"Union[{', '.join(parts)}]" return None # pragma: no cover @@ -232,7 +232,7 @@ def _build_base_union_type_hint(self) -> str | None: # pragma: no cover """Build Union[] base type hint from data_type.data_types if forward reference requires it.""" if not (self._use_union_operator != self.data_type.use_union_operator and self.data_type.is_union): return None - parts = [dt.base_type_hint for dt in self.data_type.data_types if dt.base_type_hint] + parts = dict.fromkeys(dt.base_type_hint for dt in self.data_type.data_types if dt.base_type_hint).keys() if len(parts) > 1: return f"Union[{', '.join(parts)}]" return None diff --git a/src/datamodel_code_generator/parser/base.py b/src/datamodel_code_generator/parser/base.py index e11c08791..9926e49fc 100644 --- a/src/datamodel_code_generator/parser/base.py +++ b/src/datamodel_code_generator/parser/base.py @@ -493,7 +493,7 @@ def add_model_path_to_list( return paths -def sort_data_models( # noqa: PLR0912, PLR0915 +def sort_data_models( # noqa: PLR0912, PLR0914, PLR0915 unsorted_data_models: list[DataModel], sorted_data_models: SortedDataModels | None = None, require_update_action_models: list[str] | None = None, @@ -537,6 +537,7 @@ def sort_data_models( # noqa: PLR0912, PLR0915 pass # sort on base_class dependency + seen_orderings: set[tuple[str, ...]] = set() while True: ordered_models: list[tuple[int, DataModel]] = [] # Build lookup dict for O(1) index access instead of O(n) list.index() @@ -571,6 +572,14 @@ def sort_data_models( # noqa: PLR0912, PLR0915 if sorted_unresolved_models == unresolved_references: break + sig = tuple(m.path for m in sorted_unresolved_models) + if sig in seen_orderings: + # Base-class dependency order has no fixed point (e.g. cyclic inheritance with + # discriminators). Further iterations only permute the list; use stable order. + unresolved_references.sort(key=lambda m: m.path) + break + + seen_orderings.add(sig) unresolved_references = sorted_unresolved_models # circular reference diff --git a/tests/data/expected/main/openapi/to_be_renamed_later.py b/tests/data/expected/main/openapi/to_be_renamed_later.py new file mode 100644 index 000000000..e7bd50f22 --- /dev/null +++ b/tests/data/expected/main/openapi/to_be_renamed_later.py @@ -0,0 +1,44 @@ +# generated by datamodel-codegen: +# filename: to_be_renamed_later.json + +from __future__ import annotations + +from typing import Literal, Union + +from pydantic import BaseModel, Field, RootModel + + +class A1(BaseModel): + kind: Literal['a'] + + +class B1(BaseModel): + kind: Literal['b'] + + +class A(RootModel[Union["A2", "A3"]]): + root: Union["A2", "A3"] + + +class A2(A1): + pass + + +class A3(A1): + pass + + +class B(RootModel["B2"]): + root: "B2" + + +class B2(B1): + pass + + +class X(RootModel[A | B]): + root: A | B = Field(..., discriminator='kind') + + +A.model_rebuild() +B.model_rebuild() From b3a3e3ea1c5b5f7899d7cd83b25b8dcea8272b13 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Thu, 16 Apr 2026 21:50:40 -0400 Subject: [PATCH 16/23] handle None model case in discriminator mapping validation --- src/datamodel_code_generator/parser/base.py | 8 +++++++- .../main/openapi/to_be_renamed_later.py | 8 ++++++++ tests/data/openapi/to_be_renamed_later.json | 19 +++++++++++++++---- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/datamodel_code_generator/parser/base.py b/src/datamodel_code_generator/parser/base.py index 9926e49fc..363f9e060 100644 --- a/src/datamodel_code_generator/parser/base.py +++ b/src/datamodel_code_generator/parser/base.py @@ -1594,11 +1594,14 @@ def __apply_discriminator_type( # noqa: PLR0912, PLR0914, PLR0915 discriminator_values: list[DiscriminatorValue] = [] def check_paths( - model: pydantic_model_v2.BaseModel | Reference, + model: pydantic_model_v2.BaseModel | Reference | None, mapping: dict[str, str], discriminator_values: list[DiscriminatorValue] = discriminator_values, ) -> None: """Validate discriminator mapping paths for a model.""" + if model is None: + return + for name, path in mapping.items(): if (model.path.split("#/")[-1] != path.split("#/")[-1]) and ( path.startswith("#/") or model.path[:-1] != path.split("/")[-1] @@ -1642,6 +1645,9 @@ def get_discriminator_field_value( if len(discriminator_values) == 0: for base_class in discriminator_model.base_classes: + if not base_class.reference: + continue + check_paths(base_class.reference, mapping) # ty: ignore if not discriminator_values: diff --git a/tests/data/expected/main/openapi/to_be_renamed_later.py b/tests/data/expected/main/openapi/to_be_renamed_later.py index e7bd50f22..9c0b8abab 100644 --- a/tests/data/expected/main/openapi/to_be_renamed_later.py +++ b/tests/data/expected/main/openapi/to_be_renamed_later.py @@ -8,6 +8,14 @@ from pydantic import BaseModel, Field, RootModel +class ASchema(BaseModel): + pass + + +class BSchema(BaseModel): + pass + + class A1(BaseModel): kind: Literal['a'] diff --git a/tests/data/openapi/to_be_renamed_later.json b/tests/data/openapi/to_be_renamed_later.json index 2370d0dfe..aa84a4f15 100644 --- a/tests/data/openapi/to_be_renamed_later.json +++ b/tests/data/openapi/to_be_renamed_later.json @@ -1,17 +1,28 @@ { "openapi": "3.1.0", "info": { - "title": "sort_data_models infinite loop reproducer", - "version": "1.0", - "description": "Discriminated oneOf (X) with variants that allOf-reference X causes circular inheritance among generated models. sort_data_models then never converges (while-loop oscillation). See parser/base.py sort_data_models." + "title": "", + "version": "" }, "paths": {}, "components": { "schemas": { + "ASchema": { + "type": "object", + "description": "Schema referenced by discriminator mapping." + }, + "BSchema": { + "type": "object", + "description": "Schema referenced by discriminator mapping." + }, "X": { "type": "object", "discriminator": { - "propertyName": "kind" + "propertyName": "kind", + "mapping": { + "a": "#/components/schemas/ASchema", + "b": "#/components/schemas/BSchema" + } }, "oneOf": [ { From 064c620bec5d0aa0515a8aa42e70e18e09f92a23 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Thu, 16 Apr 2026 22:07:53 -0400 Subject: [PATCH 17/23] Rename and describe test --- ...r.py => openapi_discriminated_oneof_allof_cycle.py} | 2 +- ...on => openapi_discriminated_oneof_allof_cycle.json} | 0 tests/main/openapi/test_main_openapi.py | 10 +++++++--- 3 files changed, 8 insertions(+), 4 deletions(-) rename tests/data/expected/main/openapi/{to_be_renamed_later.py => openapi_discriminated_oneof_allof_cycle.py} (91%) rename tests/data/openapi/{to_be_renamed_later.json => openapi_discriminated_oneof_allof_cycle.json} (100%) diff --git a/tests/data/expected/main/openapi/to_be_renamed_later.py b/tests/data/expected/main/openapi/openapi_discriminated_oneof_allof_cycle.py similarity index 91% rename from tests/data/expected/main/openapi/to_be_renamed_later.py rename to tests/data/expected/main/openapi/openapi_discriminated_oneof_allof_cycle.py index 9c0b8abab..617e61d87 100644 --- a/tests/data/expected/main/openapi/to_be_renamed_later.py +++ b/tests/data/expected/main/openapi/openapi_discriminated_oneof_allof_cycle.py @@ -1,5 +1,5 @@ # generated by datamodel-codegen: -# filename: to_be_renamed_later.json +# filename: openapi_discriminated_oneof_allof_cycle.json from __future__ import annotations diff --git a/tests/data/openapi/to_be_renamed_later.json b/tests/data/openapi/openapi_discriminated_oneof_allof_cycle.json similarity index 100% rename from tests/data/openapi/to_be_renamed_later.json rename to tests/data/openapi/openapi_discriminated_oneof_allof_cycle.json diff --git a/tests/main/openapi/test_main_openapi.py b/tests/main/openapi/test_main_openapi.py index e12bbafc5..491b61c79 100644 --- a/tests/main/openapi/test_main_openapi.py +++ b/tests/main/openapi/test_main_openapi.py @@ -5319,10 +5319,14 @@ def test_main_reuse_model_with_type_alias(output_file: Path) -> None: @pytest.mark.timeout(30) -def test_main_to_be_renamed_later(output_file: Path) -> None: - """To be updated later.""" +def test_main_openapi_discriminated_oneof_allof_cycle(output_file: Path) -> None: + """Discriminated oneOf with variants that allOf the parent (circular graph). + + Covers sort_data_models ordering for cyclic base dependencies and discriminator + handling (mapping + RootModel) on a minimal OpenAPI spec. + """ run_main_and_assert( - input_path=OPEN_API_DATA_PATH / "to_be_renamed_later.json", + input_path=OPEN_API_DATA_PATH / "openapi_discriminated_oneof_allof_cycle.json", output_path=output_file, input_file_type="openapi", assert_func=assert_file_content, From d10ed4ad9630790ceb335e3e878d955af45ec549 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Thu, 16 Apr 2026 22:10:25 -0400 Subject: [PATCH 18/23] No disable timestamp like the other tests --- .../main/openapi/openapi_discriminated_oneof_allof_cycle.py | 1 + tests/main/openapi/test_main_openapi.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/expected/main/openapi/openapi_discriminated_oneof_allof_cycle.py b/tests/data/expected/main/openapi/openapi_discriminated_oneof_allof_cycle.py index 617e61d87..f4a2870df 100644 --- a/tests/data/expected/main/openapi/openapi_discriminated_oneof_allof_cycle.py +++ b/tests/data/expected/main/openapi/openapi_discriminated_oneof_allof_cycle.py @@ -1,5 +1,6 @@ # generated by datamodel-codegen: # filename: openapi_discriminated_oneof_allof_cycle.json +# timestamp: 2019-07-26T00:00:00+00:00 from __future__ import annotations diff --git a/tests/main/openapi/test_main_openapi.py b/tests/main/openapi/test_main_openapi.py index 491b61c79..dd4a5a757 100644 --- a/tests/main/openapi/test_main_openapi.py +++ b/tests/main/openapi/test_main_openapi.py @@ -5330,5 +5330,4 @@ def test_main_openapi_discriminated_oneof_allof_cycle(output_file: Path) -> None output_path=output_file, input_file_type="openapi", assert_func=assert_file_content, - extra_args=["--disable-timestamp"], ) From 622476de0a764c6ad32b31590c2c52c5eab2d8b3 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Mon, 27 Apr 2026 13:40:18 -0400 Subject: [PATCH 19/23] Remove unneeded if model is none --- src/datamodel_code_generator/parser/base.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/datamodel_code_generator/parser/base.py b/src/datamodel_code_generator/parser/base.py index 363f9e060..ce24ad5f7 100644 --- a/src/datamodel_code_generator/parser/base.py +++ b/src/datamodel_code_generator/parser/base.py @@ -1594,14 +1594,11 @@ def __apply_discriminator_type( # noqa: PLR0912, PLR0914, PLR0915 discriminator_values: list[DiscriminatorValue] = [] def check_paths( - model: pydantic_model_v2.BaseModel | Reference | None, + model: pydantic_model_v2.BaseModel | Reference, mapping: dict[str, str], discriminator_values: list[DiscriminatorValue] = discriminator_values, ) -> None: """Validate discriminator mapping paths for a model.""" - if model is None: - return - for name, path in mapping.items(): if (model.path.split("#/")[-1] != path.split("#/")[-1]) and ( path.startswith("#/") or model.path[:-1] != path.split("/")[-1] From f4ed663d4f31270632e7de7ae39a8675c2b54486 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Mon, 27 Apr 2026 14:15:58 -0400 Subject: [PATCH 20/23] Add jsonschema test --- ...nschema_discriminated_oneof_allof_cycle.py | 54 +++++++++++++++++++ ...chema_discriminated_oneof_allof_cycle.json | 49 +++++++++++++++++ tests/main/jsonschema/test_main_jsonschema.py | 15 ++++++ 3 files changed, 118 insertions(+) create mode 100644 tests/data/expected/main/jsonschema/jsonschema_discriminated_oneof_allof_cycle.py create mode 100644 tests/data/jsonschema/jsonschema_discriminated_oneof_allof_cycle.json diff --git a/tests/data/expected/main/jsonschema/jsonschema_discriminated_oneof_allof_cycle.py b/tests/data/expected/main/jsonschema/jsonschema_discriminated_oneof_allof_cycle.py new file mode 100644 index 000000000..04a452dbc --- /dev/null +++ b/tests/data/expected/main/jsonschema/jsonschema_discriminated_oneof_allof_cycle.py @@ -0,0 +1,54 @@ +# generated by datamodel-codegen: +# filename: jsonschema_discriminated_oneof_allof_cycle.json +# timestamp: 2019-07-26T00:00:00+00:00 + +from __future__ import annotations + +from typing import Literal, Union + +from pydantic import BaseModel, Field, RootModel + + +class ASchema(BaseModel): + pass + + +class BSchema(BaseModel): + pass + + +class A1(BaseModel): + kind: Literal['a'] + + +class B1(BaseModel): + kind: Literal['b'] + + +class Model(RootModel[Union["A", "B"]]): + root: Union["A", "B"] = Field(..., discriminator='kind') + + +class A(RootModel[Union["A2", "A3"]]): + root: Union["A2", "A3"] + + +class A2(A1): + pass + + +class A3(A1): + pass + + +class B(RootModel["B2"]): + root: "B2" + + +class B2(B1): + pass + + +Model.model_rebuild() +A.model_rebuild() +B.model_rebuild() diff --git a/tests/data/jsonschema/jsonschema_discriminated_oneof_allof_cycle.json b/tests/data/jsonschema/jsonschema_discriminated_oneof_allof_cycle.json new file mode 100644 index 000000000..b2cc8b6ae --- /dev/null +++ b/tests/data/jsonschema/jsonschema_discriminated_oneof_allof_cycle.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "discriminator": { + "propertyName": "kind", + "mapping": { + "a": "#/$defs/ASchema", + "b": "#/$defs/BSchema" + } + }, + "oneOf": [ + { "$ref": "#/$defs/A" }, + { "$ref": "#/$defs/B" } + ], + "$defs": { + "ASchema": { + "type": "object", + "description": "Schema referenced by discriminator mapping." + }, + "BSchema": { + "type": "object", + "description": "Schema referenced by discriminator mapping." + }, + "A": { + "allOf": [ + { "$ref": "#" }, + { + "type": "object", + "required": ["kind"], + "properties": { + "kind": { "const": "a" } + } + } + ] + }, + "B": { + "allOf": [ + { "$ref": "#" }, + { + "type": "object", + "required": ["kind"], + "properties": { + "kind": { "const": "b" } + } + } + ] + } + } +} diff --git a/tests/main/jsonschema/test_main_jsonschema.py b/tests/main/jsonschema/test_main_jsonschema.py index 2931c19c3..36c8c5695 100644 --- a/tests/main/jsonschema/test_main_jsonschema.py +++ b/tests/main/jsonschema/test_main_jsonschema.py @@ -9612,3 +9612,18 @@ def test_main_exact_imports_collapse_root_models_title_array(output_dir: Path) - ], force_exec_validation=True, ) + + +@pytest.mark.timeout(30) +def test_main_jsonschema_discriminated_oneof_allof_cycle(output_file: Path) -> None: + """Discriminated oneOf with variants that allOf the parent (circular graph). + + Covers sort_data_models ordering for cyclic base dependencies and discriminator + handling (mapping + RootModel) on a minimal OpenAPI spec. + """ + run_main_and_assert( + input_path=JSON_SCHEMA_DATA_PATH / "jsonschema_discriminated_oneof_allof_cycle.json", + output_path=output_file, + input_file_type="jsonschema", + assert_func=assert_file_content, + ) From d1190ede070fab399f21b1d6084df0065172c168 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Mon, 27 Apr 2026 14:31:02 -0400 Subject: [PATCH 21/23] Add graphql test --- ...graphql_discriminated_oneof_allof_cycle.py | 58 +++++++++++++++++++ .../discriminated_oneof_allof_cycle.graphql | 24 ++++++++ tests/main/graphql/test_main_graphql.py | 15 +++++ 3 files changed, 97 insertions(+) create mode 100644 tests/data/expected/main/graphql/graphql_discriminated_oneof_allof_cycle.py create mode 100644 tests/data/graphql/discriminated_oneof_allof_cycle.graphql diff --git a/tests/data/expected/main/graphql/graphql_discriminated_oneof_allof_cycle.py b/tests/data/expected/main/graphql/graphql_discriminated_oneof_allof_cycle.py new file mode 100644 index 000000000..c4d3fccc6 --- /dev/null +++ b/tests/data/expected/main/graphql/graphql_discriminated_oneof_allof_cycle.py @@ -0,0 +1,58 @@ +# generated by datamodel-codegen: +# filename: discriminated_oneof_allof_cycle.graphql +# timestamp: 2019-07-26T00:00:00+00:00 + +from __future__ import annotations + +from typing import Literal, Union + +from pydantic import BaseModel, Field +from typing_extensions import TypeAliasType + +Boolean = TypeAliasType("Boolean", bool) +""" +The `Boolean` scalar type represents `true` or `false`. +""" + + +String = TypeAliasType("String", str) +""" +The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. +""" + + +class ASchema(BaseModel): + field_: Boolean | None = Field(None, alias='_') + typename__: Literal['ASchema'] | None = Field('ASchema', alias='__typename') + + +class BSchema(BaseModel): + field_: Boolean | None = Field(None, alias='_') + typename__: Literal['BSchema'] | None = Field('BSchema', alias='__typename') + + +X = TypeAliasType( + "X", + Union[ + 'A', + 'B', + ], +) + + +class XMember(BaseModel): + kind: String + self: X | None = None + typename__: Literal['XMember'] | None = Field('XMember', alias='__typename') + + +class A(XMember): + kind: String + self: X | None = None + typename__: Literal['A'] | None = Field('A', alias='__typename') + + +class B(XMember): + kind: String + self: X | None = None + typename__: Literal['B'] | None = Field('B', alias='__typename') diff --git a/tests/data/graphql/discriminated_oneof_allof_cycle.graphql b/tests/data/graphql/discriminated_oneof_allof_cycle.graphql new file mode 100644 index 000000000..5a70d2dc4 --- /dev/null +++ b/tests/data/graphql/discriminated_oneof_allof_cycle.graphql @@ -0,0 +1,24 @@ +type ASchema { + _: Boolean +} + +type BSchema { + _: Boolean +} + +interface XMember { + kind: String! + self: X +} + +type A implements XMember { + kind: String! + self: X +} + +type B implements XMember { + kind: String! + self: X +} + +union X = A | B diff --git a/tests/main/graphql/test_main_graphql.py b/tests/main/graphql/test_main_graphql.py index c71e35e8a..a447bd2d9 100644 --- a/tests/main/graphql/test_main_graphql.py +++ b/tests/main/graphql/test_main_graphql.py @@ -917,3 +917,18 @@ def test_main_graphql_no_typename(output_file: Path) -> None: expected_file="no_typename.py", extra_args=["--graphql-no-typename"], ) + + +@pytest.mark.timeout(30) +def test_main_graphql_discriminated_oneof_allof_cycle(output_file: Path) -> None: + """Discriminated oneOf with variants that allOf the parent (circular graph). + + Covers sort_data_models ordering for cyclic base dependencies and discriminator + handling (mapping + RootModel) on a minimal OpenAPI spec. + """ + run_main_and_assert( + input_path=GRAPHQL_DATA_PATH / "discriminated_oneof_allof_cycle.graphql", + output_path=output_file, + input_file_type="graphql", + assert_func=assert_file_content, + ) From c9a99b63eecebefc33f88fd26a7dc77db721c935 Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Mon, 27 Apr 2026 15:05:04 -0400 Subject: [PATCH 22/23] Revert "Add graphql test" This reverts commit d1190ede070fab399f21b1d6084df0065172c168. --- ...graphql_discriminated_oneof_allof_cycle.py | 58 ------------------- .../discriminated_oneof_allof_cycle.graphql | 24 -------- tests/main/graphql/test_main_graphql.py | 15 ----- 3 files changed, 97 deletions(-) delete mode 100644 tests/data/expected/main/graphql/graphql_discriminated_oneof_allof_cycle.py delete mode 100644 tests/data/graphql/discriminated_oneof_allof_cycle.graphql diff --git a/tests/data/expected/main/graphql/graphql_discriminated_oneof_allof_cycle.py b/tests/data/expected/main/graphql/graphql_discriminated_oneof_allof_cycle.py deleted file mode 100644 index c4d3fccc6..000000000 --- a/tests/data/expected/main/graphql/graphql_discriminated_oneof_allof_cycle.py +++ /dev/null @@ -1,58 +0,0 @@ -# generated by datamodel-codegen: -# filename: discriminated_oneof_allof_cycle.graphql -# timestamp: 2019-07-26T00:00:00+00:00 - -from __future__ import annotations - -from typing import Literal, Union - -from pydantic import BaseModel, Field -from typing_extensions import TypeAliasType - -Boolean = TypeAliasType("Boolean", bool) -""" -The `Boolean` scalar type represents `true` or `false`. -""" - - -String = TypeAliasType("String", str) -""" -The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. -""" - - -class ASchema(BaseModel): - field_: Boolean | None = Field(None, alias='_') - typename__: Literal['ASchema'] | None = Field('ASchema', alias='__typename') - - -class BSchema(BaseModel): - field_: Boolean | None = Field(None, alias='_') - typename__: Literal['BSchema'] | None = Field('BSchema', alias='__typename') - - -X = TypeAliasType( - "X", - Union[ - 'A', - 'B', - ], -) - - -class XMember(BaseModel): - kind: String - self: X | None = None - typename__: Literal['XMember'] | None = Field('XMember', alias='__typename') - - -class A(XMember): - kind: String - self: X | None = None - typename__: Literal['A'] | None = Field('A', alias='__typename') - - -class B(XMember): - kind: String - self: X | None = None - typename__: Literal['B'] | None = Field('B', alias='__typename') diff --git a/tests/data/graphql/discriminated_oneof_allof_cycle.graphql b/tests/data/graphql/discriminated_oneof_allof_cycle.graphql deleted file mode 100644 index 5a70d2dc4..000000000 --- a/tests/data/graphql/discriminated_oneof_allof_cycle.graphql +++ /dev/null @@ -1,24 +0,0 @@ -type ASchema { - _: Boolean -} - -type BSchema { - _: Boolean -} - -interface XMember { - kind: String! - self: X -} - -type A implements XMember { - kind: String! - self: X -} - -type B implements XMember { - kind: String! - self: X -} - -union X = A | B diff --git a/tests/main/graphql/test_main_graphql.py b/tests/main/graphql/test_main_graphql.py index a447bd2d9..c71e35e8a 100644 --- a/tests/main/graphql/test_main_graphql.py +++ b/tests/main/graphql/test_main_graphql.py @@ -917,18 +917,3 @@ def test_main_graphql_no_typename(output_file: Path) -> None: expected_file="no_typename.py", extra_args=["--graphql-no-typename"], ) - - -@pytest.mark.timeout(30) -def test_main_graphql_discriminated_oneof_allof_cycle(output_file: Path) -> None: - """Discriminated oneOf with variants that allOf the parent (circular graph). - - Covers sort_data_models ordering for cyclic base dependencies and discriminator - handling (mapping + RootModel) on a minimal OpenAPI spec. - """ - run_main_and_assert( - input_path=GRAPHQL_DATA_PATH / "discriminated_oneof_allof_cycle.graphql", - output_path=output_file, - input_file_type="graphql", - assert_func=assert_file_content, - ) From 9eaaaf9bfe018cb8bbfd5dccc150c08530e73cda Mon Sep 17 00:00:00 2001 From: Kevin Paulson Date: Mon, 27 Apr 2026 15:16:06 -0400 Subject: [PATCH 23/23] Update test docstrings --- tests/main/jsonschema/test_main_jsonschema.py | 6 ++++-- tests/main/openapi/test_main_openapi.py | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/main/jsonschema/test_main_jsonschema.py b/tests/main/jsonschema/test_main_jsonschema.py index 36c8c5695..5f17186dd 100644 --- a/tests/main/jsonschema/test_main_jsonschema.py +++ b/tests/main/jsonschema/test_main_jsonschema.py @@ -9618,8 +9618,10 @@ def test_main_exact_imports_collapse_root_models_title_array(output_dir: Path) - def test_main_jsonschema_discriminated_oneof_allof_cycle(output_file: Path) -> None: """Discriminated oneOf with variants that allOf the parent (circular graph). - Covers sort_data_models ordering for cyclic base dependencies and discriminator - handling (mapping + RootModel) on a minimal OpenAPI spec. + Covers `sort_data_models` ordering for cyclic base dependencies and discriminator + handling (mapping + RootModel) on a minimal JSON Schema spec. See the + [Pull Request](https://github.com/koxudaxi/datamodel-code-generator/pull/3078) for + more details. """ run_main_and_assert( input_path=JSON_SCHEMA_DATA_PATH / "jsonschema_discriminated_oneof_allof_cycle.json", diff --git a/tests/main/openapi/test_main_openapi.py b/tests/main/openapi/test_main_openapi.py index dd4a5a757..4c881a3e8 100644 --- a/tests/main/openapi/test_main_openapi.py +++ b/tests/main/openapi/test_main_openapi.py @@ -5322,8 +5322,10 @@ def test_main_reuse_model_with_type_alias(output_file: Path) -> None: def test_main_openapi_discriminated_oneof_allof_cycle(output_file: Path) -> None: """Discriminated oneOf with variants that allOf the parent (circular graph). - Covers sort_data_models ordering for cyclic base dependencies and discriminator - handling (mapping + RootModel) on a minimal OpenAPI spec. + Covers `sort_data_models` ordering for cyclic base dependencies and discriminator + handling (mapping + RootModel) on a minimal OpenAPI spec. See the + [Pull Request](https://github.com/koxudaxi/datamodel-code-generator/pull/3078) for + more details. """ run_main_and_assert( input_path=OPEN_API_DATA_PATH / "openapi_discriminated_oneof_allof_cycle.json",