Add superset

This commit is contained in:
Paul-Henry PERRIN 2026-01-27 14:48:39 +01:00
parent d1404b2736
commit d1057513ad
392 changed files with 33982 additions and 35 deletions

View File

@ -5,5 +5,13 @@ helm template valkey https://github.com/valkey-io/valkey-helm/releases/download/
helm template azurite https://github.com/viters/azurite-helm-chart/releases/download/azurite-2.0.0/azurite-2.0.0.tgz --values azurite-values.yaml > sds/base/azurite.yaml helm template azurite https://github.com/viters/azurite-helm-chart/releases/download/azurite-2.0.0/azurite-2.0.0.tgz --values azurite-values.yaml > sds/base/azurite.yaml
helm template elasticsearch https://github.com/wiremind/wiremind-helm-charts/releases/download/elasticsearch-8.16.0/elasticsearch-8.16.0.tgz --values elasticsearch-values.yaml > sds/base/elasticsearch.yaml helm template elasticsearch https://github.com/wiremind/wiremind-helm-charts/releases/download/elasticsearch-8.16.0/elasticsearch-8.16.0.tgz --values elasticsearch-values.yaml > sds/base/elasticsearch.yaml
helm template valkey https://github.com/valkey-io/valkey-helm/releases/download/valkey-0.9.3/valkey-0.9.3.tgz --namespace reports-superset --values valkey-values.yaml > superset/base/valkey.yaml
helm template superset https://github.com/apache/superset/releases/download/superset-helm-chart-0.15.2/superset-0.15.2.tgz --namespace reports-superset --values superset-values.yaml > superset/base/superset.yaml
docker buildx build --push -t registry.dev.k8s.transcity/reports/superset:5.0.0 superset-image

View File

@ -20,5 +20,9 @@ resources:
extraEnvs: extraEnvs:
- name: xpack.security.enabled - name: xpack.security.enabled
value: "false" value: "false"
- name: http.cors.enabled
value: "true"
- name: http.cors.allow-origin
value: "*"
secret: secret:
password: GTRNZHCJTiGJ2CfY password: GTRNZHCJTiGJ2CfY

2
es_elt/.dockerignore Normal file
View File

@ -0,0 +1,2 @@
samples/
xsd/

3
es_elt/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
/samples/
__pycache__/
/last.json

41
es_elt/Dockerfile Normal file
View File

@ -0,0 +1,41 @@
FROM python:3.12-slim AS builder
COPY --from=ghcr.io/astral-sh/uv:0.8 /uv /bin/
WORKDIR /app
ENV UV_LINK_MODE=copy \
UV_COMPILE_BYTECODE=1
RUN uv venv --clear --relocatable /app
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
uv sync --locked --no-install-project --no-dev --no-editable
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=.,target=/usr/src \
uv pip install /usr/src
FROM python:3.12-slim
COPY --from=builder /app /app
WORKDIR /app
COPY settings.toml /app/settings.toml
RUN mkdir /state /data
VOLUME /state
ENV ELT_ENV=docker \
ELT_ELASTICSEARCH_URL=http://elasticsearch:9200/ \
ELT_ELASTICSEARCH_USER=elasticsearch \
ELT_ELASTICSEARCH_PASSWORD=password
ENTRYPOINT [ "/app/bin/es-elt" ]

0
es_elt/README.md Normal file
View File

21
es_elt/compose.yaml Normal file
View File

@ -0,0 +1,21 @@
name: es
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:9.1.3
ports:
- "9200:9200"
- "9300:9300"
environment:
ES_JAVA_OPTS: "-Xms2g -Xmx2g"
ELASTIC_PASSWORD: "password"
http.cors.enabled: "true"
http.cors.allow-origin: "http://localhost:9800"
xpack.security.enabled: "false"
discovery.type: single-node
elasticvue:
image: cars10/elasticvue
ports:
- "9800:8080"

57
es_elt/cronjob.yaml Normal file
View File

@ -0,0 +1,57 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: elt-es
namespace: transcity-demo-aws-pg
spec:
schedule: "5 * * * *"
concurrencyPolicy: Forbid
suspend: false
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
nodeSelector:
workload: transcity-pg
containers:
- name: es-elt
image: 767397786784.dkr.ecr.eu-west-3.amazonaws.com/reports/es-elt:0.1.4
# args:
# - --start-from
# - 2026-01-26/00
env:
- name: ELT_ELASTICSEARCH_URL
value: http://elasticsearch-master.reports-sds.svc:9200
- name: ELT_ELASTICSEARCH_USER
value: elastic
- name: ELT_ELASTICSEARCH_PASSWORD
value: GTRNZHCJTiGJ2CfY
- name: ELT_MAX_WORKERS
value: "2"
volumeMounts:
- name: export
mountPath: /data
- name: state
mountPath: /state
volumes:
- name: export
persistentVolumeClaim:
claimName: demo-aws-pg-dih-export
- name: state
persistentVolumeClaim:
claimName: elt-es
parallelism: 1
backoffLimit: 3
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: elt-es
namespace: transcity-demo-aws-pg
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 16Mi

34
es_elt/pyproject.toml Normal file
View File

@ -0,0 +1,34 @@
[project]
name = "es-elt"
version = "0.1.4"
description = "Add your description here"
readme = "README.md"
authors = [
{ name = "Paul-Henry PERRIN", email = "paul-henry.perrin@urbanandmainlines.com" }
]
requires-python = ">=3.12"
dependencies = [
"cyclopts>=4.5.0",
"dynaconf>=3.2.12",
"elasticsearch>=9.2.1",
"xsdata-pydantic[cli,lxml]>=24.5",
]
[project.scripts]
es-elt = "es_elt:main"
[build-system]
requires = ["uv_build>=0.8.14,<0.9.0"]
build-backend = "uv_build"
[dependency-groups]
dev = [
"isort>=7.0.0",
"ruff>=0.14.13",
"taskipy>=1.14.1",
]
[tool.taskipy.tasks]
generate = "cd src && ELT_ENV=default uv run xsdata generate --output pydantic --package es_elt.xml --recursive --unnest-classes ../xsd && uv run isort es_elt/xml && uv run ruff format es_elt/xml"
package = "docker buildx build -t es-elt:$(uv version --short) ."
deploy = "docker buildx build --push -t registry.dev.k8s.transcity/reports/es-elt:$(uv version --short) ."

22
es_elt/settings.toml Normal file
View File

@ -0,0 +1,22 @@
[global]
ingest_device_txn=false
ingest_bo_txn=false
[default]
state_file="last.json"
include_audit= [ "mam_str_media_consumptions" ]
audit_dir = "/tmp"
[docker]
state_file="/state/last.json"
include_audit= [ "mam_str_media_consumptions" ]
audit_dir = "/data"
[dev]
state_file="last.json"
elasticsearch_url="http://localhost:9200"
elasticsearch_user="elasticsearch"
include_audit= []
audit_dir = "samples"

3
es_elt/src/es_elt/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Ignore dynaconf secret files
.secrets.*

View File

@ -0,0 +1,3 @@
from .main import main
__all__ = ("main",)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,22 @@
from pathlib import Path
from dynaconf import Dynaconf, Validator
settings = Dynaconf(
envvar_prefix="ELT",
environments=True,
env_switcher="ELT_ENV",
settings_files=["settings.toml", ".secrets.toml"],
validators=[
Validator(
"include_audit",
cast=lambda v: (v.split(",") if isinstance(v, str) else v),
default=[],
),
Validator("audit_dir", cast=lambda p: Path(p), condition=lambda p: p.is_dir()),
Validator("max_workers", cast=int),
],
)
# `envvar_prefix` = export envvars with `export DYNACONF_FOO=bar`.
# `settings_files` = Load these files in the order.

345
es_elt/src/es_elt/main.py Normal file
View File

@ -0,0 +1,345 @@
import importlib
import json
import pkgutil
import re
import time
from concurrent.futures import ProcessPoolExecutor, wait
from pathlib import Path
# from pprint import pprint
from typing import Any
import cyclopts
from elasticsearch import BadRequestError, Elasticsearch, helpers
from xsdata_pydantic.bindings import XmlParser
import es_elt.xml as xml
from .config import settings
## Generation:
## uv run xsdata generate --output pydantic --package es_elt.xml --recursive --unnest-classes ../xsd
## Import all modules generated by xsd
models = [
importlib.import_module(pkg.name)
for pkg in pkgutil.walk_packages(xml.__path__, prefix=xml.__name__ + ".")
if not pkg.ispkg
]
## Associate xml namespace to top level generated class
audit_class = {
getattr(module, "__NAMESPACE__"): getattr(module, "AuditMessages")
for module in models
if hasattr(module, "__NAMESPACE__") and hasattr(module, "AuditMessages")
}
## pprint(audit_class)
re_ifsng = re.compile(r"^(X-)?[Ii]fsng-")
re_camel_case = re.compile(r"[a-z][A-Z]")
def clean_header(header: str):
# print(header)
h = re_ifsng.sub("", header)
h = h.replace("-", "_")
h = re_camel_case.sub(lambda x: f"{x.group()[0]}_{x.group()[1].lower()}", h)
return h
def to_document[T](audit: T) -> dict[str, Any]:
headers = {clean_header(elt.qname): elt.text for elt in audit.headers.any_element}
document = audit.model_dump(mode="json")
document["headers"] = headers
return document
def to_index_action(document, index: str):
action = {
"_index": index,
"_id": document["headers"]["msg_id"],
"_source": document,
}
return action
def list_days_after(
root: Path, start_day: str = None, stop_day: str = None
) -> list[Path]:
start_day = start_day or "0000-00-00"
stop_day = stop_day or "9999-99-99"
days = sorted(p for p in root.glob("????-??-??") if start_day <= p.name <= stop_day)
return days
def list_hours_after(
day: Path, start_hour: str = None, stop_hour: str = None
) -> list[Path]:
start_hour = start_hour or "00"
stop_hour = stop_hour or "99"
hours = sorted(p for p in day.glob("??") if start_hour <= p.name <= stop_hour)
return hours
include_audit = set(settings.include_audit or [])
def list_audit_types(hour: Path) -> list[Path]:
return list(
audit_dir
for audit_dir in (hour / "auditData").glob("*")
if (audit_dir.name in include_audit if include_audit else True)
)
def list_txn_device(hour: Path) -> list[Path]:
return list((hour / "txn" / "device").glob("*/*"))
def list_txn_bo(hour: Path) -> list[Path]:
return list((hour / "txn" / "bo").glob("*/*"))
def ingest_file(es: Elasticsearch, audit_dir: Path, index_name: str) -> None:
def get_namespace():
ns_rx = re.compile(
r'\<([^:>]+:)?AuditMessages.*xmlns(:[^ =]+)? *= *"(?P<ns>[^"]*)"'
)
sample = next(audit_dir.glob("*.xml"))
with sample.open("r") as sample_stream:
header = sample_stream.read(512)
if match := ns_rx.search(header):
return match.groupdict()["ns"]
return None
parser = XmlParser()
ns = get_namespace()
if ns is None:
print("Unable to find namespace")
return
message_class = audit_class[ns]
try:
# Check if index exists silently
# if not es.indices.exists(index="pom_orders_post"):
es.indices.create(index=index_name)
except BadRequestError as ex:
if ex.error != "resource_already_exists_exception":
raise
# print(f"Index {index_name} already exists")
fail_doc = []
def generate_document():
for xml_file in audit_dir.glob("*"):
# print(xml_file)
with xml_file.open("rb") as input_stream:
try:
result = parser.parse(input_stream, message_class)
# print(result)
for audit in result.audit_message:
yield to_index_action(to_document(audit), index_name)
except Exception as ex:
# print(f"Failed to read {xml_file}: {ex}, skipping")
# import traceback
# traceback.print_exception(ex)
fail_doc.append(
{
"_index": "error-ingestion-parsing",
"_id": xml_file.name,
"error": str(ex),
}
)
start_time = time.monotonic()
succeeded, failed = helpers.bulk(
es,
generate_document(),
raise_on_error=False,
max_retries=3,
initial_backoff=2,
)
duration = int(time.monotonic() - start_time) or 1
print(
f"{audit_dir} {index_name} {succeeded} inserted, failures: {len(failed)} in {duration // 60}m{duration % 60}s, ({(succeeded + len(failed)) / duration:.2f} records/s)"
)
if fail_doc:
helpers.bulk(
es,
fail_doc,
raise_on_error=False,
max_retries=3,
initial_backoff=2,
)
def ingest_dir(ingest_dir, index_name):
es = Elasticsearch(
settings.elasticsearch_url,
basic_auth=(settings.elasticsearch_user, settings.elasticsearch_password),
)
try:
es.indices.create(index="error-ingestion-parsing")
except BadRequestError as ex:
if ex.error != "resource_already_exists_exception":
raise
try:
es.indices.create(index="error-ingestion-insert")
except BadRequestError as ex:
if ex.error != "resource_already_exists_exception":
raise
try:
ingest_file(es, ingest_dir, index_name)
except Exception as ex:
print(f"Failed: {ingest_dir.name} {ex}")
def ingest(
*,
start_from: str | None = None,
stop_at: str | None = None,
single: str | None = None,
) -> None:
"""Load audit xml files in ElasticSearch
Parameters
----------
start_from
Start ingestion from this date/hour YYYY-MM-DD[/HH].
stop_at
Last date / hour to ingest YYYY-MM-DD[/HH].
single
Load only this directory YYYY-MM-DD[/HH].
"""
state_file = Path(settings.state_file)
if state_file.is_file():
state = json.loads(state_file.read_text())
start_day = state["last_day"]
start_hour = state["last_hour"]
else:
start_day = None
start_hour = None
if single:
start_from = stop_at = single
if start_from:
if "/" in start_from:
start_day, _, start_hour = start_from.partition("/")
else:
start_day = start_from
start_hour = None
if stop_at:
if "/" in stop_at:
stop_day, _, stop_hour = stop_at.partition("/")
else:
stop_day = stop_at
stop_hour = None
else:
stop_day = None
stop_hour = None
file_root = settings.audit_dir
es = Elasticsearch(
settings.elasticsearch_url,
basic_auth=(settings.elasticsearch_user, settings.elasticsearch_password),
)
if not es.ping():
print("ElasticSearch not reachable")
return
print(
f"Ingest files from {file_root}/{start_day or '<earliest>'}/{start_hour or '00'} to {file_root}/{stop_day or '<latest>'}/{stop_hour or '23'} in {settings.elasticsearch_url}"
)
hour_dirs = sorted(
[
hour
for day in list_days_after(file_root, start_day, stop_day)
for hour in list_hours_after(
day,
start_hour if day.name == (start_day or "0000-00-00") else None,
stop_hour if day.name == (stop_day or "0000-00-00") else None,
)
]
)
print("Will process:")
for h in hour_dirs:
print(f" {h}")
audit_dirs = [
audit_type for hour in hour_dirs for audit_type in list_audit_types(hour)
]
txn_devices_dirs = [
txn_device for hour in hour_dirs for txn_device in list_txn_device(hour)
]
txn_bo_dirs = [txn_bo for hour in hour_dirs for txn_bo in list_txn_bo(hour)]
with ProcessPoolExecutor(max_workers=settings.get("max_workers")) as pool:
futures = (
[
pool.submit(
ingest_dir, audit_dir, f"audit-{audit_dir.name.replace('_', '-')}"
)
for audit_dir in audit_dirs
]
+ (
[
pool.submit(
ingest_dir,
txn_device_dir,
f"txn-device-{txn_device_dir.name.lower().replace('_', '-')}",
)
for txn_device_dir in txn_devices_dirs
]
if settings.ingest_device_txn
else []
)
+ (
[
pool.submit(
ingest_dir,
txn_bo_dir,
f"txn-bo-{txn_bo_dir.name.lower().replace('_', '-')}",
)
for txn_bo_dir in txn_bo_dirs
]
if settings.ingest_bo_txn
else []
)
)
done, not_done = wait(futures)
# pprint([d.result() for d in done])
if hour_dirs:
last_dir = hour_dirs[-1]
last_day = last_dir.parts[-2]
last_hour = last_dir.parts[-1]
state_file.write_text(
json.dumps({"last_day": last_day, "last_hour": last_hour})
)
def main() -> None:
cyclopts.run(ingest)

View File

@ -0,0 +1 @@
# nothing here

View File

@ -0,0 +1 @@
# nothing here

View File

@ -0,0 +1,35 @@
from es_elt.xml.audit_data.acm.user_group import ActionStatus
from es_elt.xml.audit_data.acm.user_group import AuditMessages as GroupAuditMessages
from es_elt.xml.audit_data.acm.user_group import (
AuditMessagesType as GroupAuditMessagesType,
)
from es_elt.xml.audit_data.acm.user_group import (
AuditMessageType as GroupAuditMessageType,
)
from es_elt.xml.audit_data.acm.user_group import UserGroupAuditExchange
from es_elt.xml.audit_data.acm.user_login import AuditMessages as LoginAuditMessages
from es_elt.xml.audit_data.acm.user_login import (
AuditMessagesType as LoginAuditMessagesType,
)
from es_elt.xml.audit_data.acm.user_login import (
AuditMessageType as LoginAuditMessageType,
)
from es_elt.xml.audit_data.acm.user_login import (
ConnexionStatus,
UserLoginAuditExchange,
UserLoginAuditExchangeUserGroups,
)
__all__ = [
"ActionStatus",
"GroupAuditMessageType",
"GroupAuditMessages",
"GroupAuditMessagesType",
"UserGroupAuditExchange",
"LoginAuditMessageType",
"LoginAuditMessages",
"LoginAuditMessagesType",
"ConnexionStatus",
"UserLoginAuditExchange",
"UserLoginAuditExchangeUserGroups",
]

View File

@ -0,0 +1,108 @@
from __future__ import annotations
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/UserGroup"
class ActionStatus(Enum):
ADDED = "ADDED"
UPDATED = "UPDATED"
DELETED = "DELETED"
class UserGroupAuditExchange(BaseModel):
model_config = ConfigDict(defer_build=True)
date: None | XmlDateTime = field(
default=None,
metadata={
"name": "Date",
"type": "Element",
"namespace": "",
},
)
user_group_name: None | str = field(
default=None,
metadata={
"name": "UserGroupName",
"type": "Element",
"namespace": "",
},
)
user_group_id: None | int = field(
default=None,
metadata={
"name": "UserGroupId",
"type": "Element",
"namespace": "",
},
)
user_id: None | str = field(
default=None,
metadata={
"name": "UserId",
"type": "Element",
"namespace": "",
},
)
status: ActionStatus = field(
metadata={
"name": "Status",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: UserGroupAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
user_group_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "UserGroupXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/UserGroup"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,130 @@
from __future__ import annotations
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/UserLogin"
class ConnexionStatus(Enum):
SUCCESS = "SUCCESS"
FAILED = "FAILED"
class UserLoginAuditExchangeUserGroups(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
user_group: list[str] = field(
default_factory=list,
metadata={
"name": "UserGroup",
"type": "Element",
"namespace": "",
},
)
class UserLoginAuditExchange(BaseModel):
"""
:ivar date:
:ivar user_id:
:ivar realm:
:ivar result:
:ivar user_groups: List of userGroups associated to user
"""
model_config = ConfigDict(defer_build=True)
date: None | XmlDateTime = field(
default=None,
metadata={
"name": "Date",
"type": "Element",
"namespace": "",
},
)
user_id: None | str = field(
default=None,
metadata={
"name": "UserId",
"type": "Element",
"namespace": "",
},
)
realm: None | str = field(
default=None,
metadata={
"name": "Realm",
"type": "Element",
"namespace": "",
},
)
result: ConnexionStatus = field(
metadata={
"name": "Result",
"type": "Element",
"namespace": "",
"required": True,
}
)
user_groups: None | UserLoginAuditExchangeUserGroups = field(
default=None,
metadata={
"name": "UserGroups",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: None | UserLoginAuditExchange = field(
default=None,
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
},
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
user_login_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "UserLoginXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/UserLogin"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,17 @@
from es_elt.xml.audit_data.alm.action_list import (
ActionEntryStatus,
ActionEntryType,
ActionListAuditExchange,
AuditMessages,
AuditMessagesType,
AuditMessageType,
)
__all__ = [
"ActionEntryStatus",
"ActionEntryType",
"ActionListAuditExchange",
"AuditMessageType",
"AuditMessages",
"AuditMessagesType",
]

View File

@ -0,0 +1,162 @@
from __future__ import annotations
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/ActionList"
class ActionEntryStatus(Enum):
INITIALIZED = "INITIALIZED"
COMPLETED = "COMPLETED"
CANCELLED = "CANCELLED"
class ActionEntryType(Enum):
APPLICATION_ACTIVATION = "APPLICATION_ACTIVATION"
APPLICATION_UNBLOCKING = "APPLICATION_UNBLOCKING"
HOLDER_PROFILE_UPDATE = "HOLDER_PROFILE_UPDATE"
PURSE_RELOAD = "PURSE_RELOAD"
PURSE_DEBIT = "PURSE_DEBIT"
CONTRACT_SALE = "CONTRACT_SALE"
CONTRACT_UNBLOCKING = "CONTRACT_UNBLOCKING"
class ActionListAuditExchange(BaseModel):
"""
:ivar action_entry_status: Dictionary prefix: ActionEntryStatus
:ivar action_entry_type: Dictionary prefix: ActionEntryType
:ivar execution_date:
:ivar expiry_date:
:ivar media_id:
:ivar media_serial_number:
:ivar media_type_id:
:ivar submission_date:
:ivar system_action_number:
"""
model_config = ConfigDict(defer_build=True)
action_entry_status: None | ActionEntryStatus = field(
default=None,
metadata={
"name": "ActionEntryStatus",
"type": "Element",
"namespace": "",
},
)
action_entry_type: None | ActionEntryType = field(
default=None,
metadata={
"name": "ActionEntryType",
"type": "Element",
"namespace": "",
},
)
execution_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "ExecutionDate",
"type": "Element",
"namespace": "",
},
)
expiry_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "ExpiryDate",
"type": "Element",
"namespace": "",
},
)
media_id: None | str = field(
default=None,
metadata={
"name": "MediaId",
"type": "Element",
"namespace": "",
},
)
media_serial_number: None | str = field(
default=None,
metadata={
"name": "MediaSerialNumber",
"type": "Element",
"namespace": "",
},
)
media_type_id: None | int = field(
default=None,
metadata={
"name": "MediaTypeId",
"type": "Element",
"namespace": "",
},
)
submission_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "SubmissionDate",
"type": "Element",
"namespace": "",
},
)
system_action_number: None | str = field(
default=None,
metadata={
"name": "SystemActionNumber",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: ActionListAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
action_list_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "ActionListXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/ActionList"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,73 @@
from es_elt.xml.audit_data.bpm.configuration_parameters import (
AuditMessages as ConfigurationParametersAuditMessages,
)
from es_elt.xml.audit_data.bpm.configuration_parameters import (
AuditMessagesType as ConfigurationParametersAuditMessagesType,
)
from es_elt.xml.audit_data.bpm.configuration_parameters import (
AuditMessageType as ConfigurationParametersAuditMessageType,
)
from es_elt.xml.audit_data.bpm.configuration_parameters import (
ConfigurationParametersAuditExchange,
)
from es_elt.xml.audit_data.bpm.ticketing_conf_item_creation import (
AuditMessages as TicketingConfItemCreationAuditMessages,
)
from es_elt.xml.audit_data.bpm.ticketing_conf_item_creation import (
AuditMessagesType as TicketingConfItemCreationAuditMessagesType,
)
from es_elt.xml.audit_data.bpm.ticketing_conf_item_creation import (
AuditMessageType as TicketingConfItemCreationAuditMessageType,
)
from es_elt.xml.audit_data.bpm.ticketing_conf_item_creation import (
TicketingConfItemCreationAuditExchange,
)
from es_elt.xml.audit_data.bpm.ticketing_set_creation import (
AuditMessages as SetAuditMessages,
)
from es_elt.xml.audit_data.bpm.ticketing_set_creation import (
AuditMessagesType as SetAuditMessagesType,
)
from es_elt.xml.audit_data.bpm.ticketing_set_creation import (
AuditMessageType as SetAuditMessageType,
)
from es_elt.xml.audit_data.bpm.ticketing_set_creation import (
ConfItem,
ConfItems,
TicketingSetCreationAuditExchange,
TicketingSetValidationStatus,
)
from es_elt.xml.audit_data.bpm.ticketing_set_publish import (
AuditMessages as PublishAuditMessages,
)
from es_elt.xml.audit_data.bpm.ticketing_set_publish import (
AuditMessagesType as PublishAuditMessagesType,
)
from es_elt.xml.audit_data.bpm.ticketing_set_publish import (
AuditMessageType as PublishAuditMessageType,
)
from es_elt.xml.audit_data.bpm.ticketing_set_publish import (
TicketingSetPublishAuditExchange,
)
__all__ = [
"ConfigurationParametersAuditMessageType",
"ConfigurationParametersAuditMessages",
"ConfigurationParametersAuditMessagesType",
"ConfigurationParametersAuditExchange",
"TicketingConfItemCreationAuditMessageType",
"TicketingConfItemCreationAuditMessages",
"TicketingConfItemCreationAuditMessagesType",
"TicketingConfItemCreationAuditExchange",
"SetAuditMessageType",
"SetAuditMessages",
"SetAuditMessagesType",
"ConfItem",
"ConfItems",
"TicketingSetCreationAuditExchange",
"TicketingSetValidationStatus",
"PublishAuditMessageType",
"PublishAuditMessages",
"PublishAuditMessagesType",
"TicketingSetPublishAuditExchange",
]

View File

@ -0,0 +1,116 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/ConfigurationParameters"
class ConfigurationParametersAuditExchange(BaseModel):
model_config = ConfigDict(defer_build=True)
operator_id: str = field(
metadata={
"name": "OperatorId",
"type": "Element",
"namespace": "",
"required": True,
}
)
creation_date_time: XmlDateTime = field(
metadata={
"name": "CreationDateTime",
"type": "Element",
"namespace": "",
"required": True,
}
)
activation_date_time: None | XmlDateTime = field(
default=None,
metadata={
"name": "ActivationDateTime",
"type": "Element",
"namespace": "",
},
)
filename: str = field(
metadata={
"name": "Filename",
"type": "Element",
"namespace": "",
"required": True,
}
)
identifier_version: str = field(
metadata={
"name": "IdentifierVersion",
"type": "Element",
"namespace": "",
"required": True,
}
)
type_value: str = field(
metadata={
"name": "Type",
"type": "Element",
"namespace": "",
"required": True,
}
)
content: str = field(
metadata={
"name": "Content",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: ConfigurationParametersAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
configuration_parameters_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "ConfigurationParametersXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/ConfigurationParameters"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,113 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/TicketingConfItemCreation"
class TicketingConfItemCreationAuditExchange(BaseModel):
"""
bpm_ticketing_configurationItem_post: At business parameters
configuration item creation.
"""
model_config = ConfigDict(defer_build=True)
conf_item_type: str = field(
metadata={
"name": "ConfItemType",
"type": "Element",
"namespace": "",
"required": True,
}
)
creation_date_time: XmlDateTime = field(
metadata={
"name": "CreationDateTime",
"type": "Element",
"namespace": "",
"required": True,
}
)
hash: str = field(
metadata={
"name": "Hash",
"type": "Element",
"namespace": "",
"required": True,
}
)
identifier_version: str = field(
metadata={
"name": "IdentifierVersion",
"type": "Element",
"namespace": "",
"required": True,
}
)
parameters_type: str = field(
metadata={
"name": "ParametersType",
"type": "Element",
"namespace": "",
"required": True,
}
)
ticketing_conf_item_id: str = field(
metadata={
"name": "TicketingConfItemId",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: TicketingConfItemCreationAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
ticketing_conf_item_creation_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "TicketingConfItemCreationXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/TicketingConfItemCreation"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,183 @@
from __future__ import annotations
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/TicketingSetCreation"
class ConfItem(BaseModel):
model_config = ConfigDict(defer_build=True)
conf_item_id: str = field(
metadata={
"name": "ConfItemId",
"type": "Element",
"namespace": "",
"required": True,
}
)
identifier_version: None | str = field(
default=None,
metadata={
"name": "IdentifierVersion",
"type": "Element",
"namespace": "",
},
)
class TicketingSetValidationStatus(Enum):
DRAFT = "DRAFT"
APPROVED = "APPROVED"
REJECTED = "REJECTED"
DEPLOYED = "DEPLOYED"
class ConfItems(BaseModel):
model_config = ConfigDict(defer_build=True)
conf_item: list[ConfItem] = field(
default_factory=list,
metadata={
"name": "ConfItem",
"type": "Element",
"namespace": "",
"min_occurs": 1,
},
)
class TicketingSetCreationAuditExchange(BaseModel):
"""
bpm_ticketing_set_approve_post: On approval of ticketing set by an
operator bpm_ticketing_set_reject_post: On rejection of ticketing set
by an operator bpm_ticketing_set_deploy_post: On deployment of
ticketing set by an operator bpm_ticketing_set_post: Creation of a
ticketing set.
:ivar activation_date_time:
:ivar creation_date_time:
:ivar update_date_time:
:ivar hash:
:ivar identifier_version:
:ivar ticketing_set_id:
:ivar status:
:ivar conf_items: List of configuration items contained in the set
"""
model_config = ConfigDict(defer_build=True)
activation_date_time: None | XmlDateTime = field(
default=None,
metadata={
"name": "ActivationDateTime",
"type": "Element",
"namespace": "",
},
)
creation_date_time: XmlDateTime = field(
metadata={
"name": "CreationDateTime",
"type": "Element",
"namespace": "",
"required": True,
}
)
update_date_time: XmlDateTime = field(
metadata={
"name": "UpdateDateTime",
"type": "Element",
"namespace": "",
"required": True,
}
)
hash: str = field(
metadata={
"name": "Hash",
"type": "Element",
"namespace": "",
"required": True,
}
)
identifier_version: str = field(
metadata={
"name": "IdentifierVersion",
"type": "Element",
"namespace": "",
"required": True,
}
)
ticketing_set_id: str = field(
metadata={
"name": "TicketingSetId",
"type": "Element",
"namespace": "",
"required": True,
}
)
status: TicketingSetValidationStatus = field(
metadata={
"name": "Status",
"type": "Element",
"namespace": "",
"required": True,
}
)
conf_items: ConfItems = field(
metadata={
"name": "ConfItems",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: TicketingSetCreationAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
ticketing_set_creation_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "TicketingSetCreationXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/TicketingSetCreation"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,96 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/TicketingSetPublish"
class TicketingSetPublishAuditExchange(BaseModel):
"""
bpm_ticketing_set_publication: At ticketing set publication.
"""
model_config = ConfigDict(defer_build=True)
activation_date_time: XmlDateTime = field(
metadata={
"name": "ActivationDateTime",
"type": "Element",
"namespace": "",
"required": True,
}
)
identifier_version: str = field(
metadata={
"name": "IdentifierVersion",
"type": "Element",
"namespace": "",
"required": True,
}
)
publication_date_time: XmlDateTime = field(
metadata={
"name": "PublicationDateTime",
"type": "Element",
"namespace": "",
"required": True,
}
)
ticketing_set_id: str = field(
metadata={
"name": "TicketingSetId",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: TicketingSetPublishAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
ticketing_set_publish_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "TicketingSetPublishXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/TicketingSetPublish"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,19 @@
from es_elt.xml.audit_data.clm.customer_claim import (
AuditMessages,
AuditMessagesType,
AuditMessageType,
CustomerClaimAuditExchange,
CustomerClaimAuthor,
CustomerClaimStatus,
CustomerClaimType,
)
__all__ = [
"AuditMessageType",
"AuditMessages",
"AuditMessagesType",
"CustomerClaimAuditExchange",
"CustomerClaimAuthor",
"CustomerClaimStatus",
"CustomerClaimType",
]

View File

@ -0,0 +1,181 @@
from __future__ import annotations
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime, XmlDuration
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/CustomerClaim"
class CustomerClaimAuthor(Enum):
OPERATOR = "OPERATOR"
DEVICE = "DEVICE"
CUSTOMER = "CUSTOMER"
class CustomerClaimStatus(Enum):
SUBMITTED = "SUBMITTED"
IN_PROGRESS = "IN_PROGRESS"
APPROVED = "APPROVED"
REJECTED = "REJECTED"
CLOSED = "CLOSED"
class CustomerClaimType(Enum):
REFUND = "REFUND"
CUSTOMER_CLAIM = "CUSTOMER_CLAIM"
EVIDENCE_CHECK = "EVIDENCE_CHECK"
DEVICE_DYSFUNCTION = "DEVICE_DYSFUNCTION"
class CustomerClaimAuditExchange(BaseModel):
"""
clm_customer_claims_post: At claims creation or update.
:ivar answer_expected: Whenever an operator answered a customer but
shall later come back to him.
:ivar author_id: Claim author id
:ivar author_type: Claim author type (operator, customer, ...).
:ivar claim_number:
:ivar customer_claim_type: Dictionary prefix: CustomerClaimType
:ivar customer_id: Customer account identifier. May be null
(DEVICE_DYSFUNCTION case).
:ivar last_event_duration: Duration since previous event sent
:ivar pending_limit_date: The date AFTER which the claim may be
processed.
:ivar status: Dictionary prefix: CustomerClaimStatus
:ivar text: Last message exchange during the conversation.
"""
model_config = ConfigDict(defer_build=True)
answer_expected: bool = field(
metadata={
"name": "AnswerExpected",
"type": "Element",
"namespace": "",
"required": True,
}
)
author_id: str = field(
metadata={
"name": "AuthorId",
"type": "Element",
"namespace": "",
"required": True,
}
)
author_type: CustomerClaimAuthor = field(
metadata={
"name": "AuthorType",
"type": "Element",
"namespace": "",
"required": True,
}
)
claim_number: str = field(
metadata={
"name": "ClaimNumber",
"type": "Element",
"namespace": "",
"required": True,
}
)
customer_claim_type: CustomerClaimType = field(
metadata={
"name": "CustomerClaimType",
"type": "Element",
"namespace": "",
"required": True,
}
)
customer_id: None | str = field(
default=None,
metadata={
"name": "CustomerId",
"type": "Element",
"namespace": "",
},
)
last_event_duration: None | XmlDuration = field(
default=None,
metadata={
"name": "LastEventDuration",
"type": "Element",
"namespace": "",
},
)
pending_limit_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "PendingLimitDate",
"type": "Element",
"namespace": "",
},
)
status: CustomerClaimStatus = field(
metadata={
"name": "Status",
"type": "Element",
"namespace": "",
"required": True,
}
)
text: None | str = field(
default=None,
metadata={
"name": "Text",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: CustomerClaimAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
customer_claim_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "CustomerClaimXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/CustomerClaim"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,263 @@
from es_elt.xml.audit_data.clr.apportionment_using_capping_ratio_plugin_details import (
ApportionmentUsingCappingRatioPluginDetailsAuditExchange,
ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptions,
ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptionsDailyMediaConsumption,
ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptionsDailyMediaConsumptionLegApportionments,
)
from es_elt.xml.audit_data.clr.apportionment_using_capping_ratio_plugin_details import (
AuditMessages as ApportionmentUsingCappingRatioPluginDetailsAuditMessages,
)
from es_elt.xml.audit_data.clr.apportionment_using_capping_ratio_plugin_details import (
AuditMessagesType as ApportionmentUsingCappingRatioPluginDetailsAuditMessagesType,
)
from es_elt.xml.audit_data.clr.apportionment_using_capping_ratio_plugin_details import (
AuditMessageType as ApportionmentUsingCappingRatioPluginDetailsAuditMessageType,
)
from es_elt.xml.audit_data.clr.apportionment_using_capping_ratio_plugin_details import (
CappingRatioApportionmentItemType,
)
from es_elt.xml.audit_data.clr.apportionment_using_capping_ratio_plugin_details import (
LegApportionment as UsingCappingRatioPluginLegApportionment,
)
from es_elt.xml.audit_data.clr.apportionment_using_capping_ratio_plugin_details import (
LegApportionmentApportionmentItems as UsingCappingRatioPluginLegApportionmentApportionmentItems,
)
from es_elt.xml.audit_data.clr.clearing_operation import (
AuditMessages as ClearingOperationAuditMessages,
)
from es_elt.xml.audit_data.clr.clearing_operation import (
AuditMessagesType as ClearingOperationAuditMessagesType,
)
from es_elt.xml.audit_data.clr.clearing_operation import (
AuditMessageType as ClearingOperationAuditMessageType,
)
from es_elt.xml.audit_data.clr.clearing_operation import (
ClearingOperationAuditExchange,
ClearingOperationAuditExchangeFees,
)
from es_elt.xml.audit_data.clr.contract_apportionment import (
AuditMessages as ContractApportionmentAuditMessages,
)
from es_elt.xml.audit_data.clr.contract_apportionment import (
AuditMessagesType as ContractApportionmentAuditMessagesType,
)
from es_elt.xml.audit_data.clr.contract_apportionment import (
AuditMessageType as ContractApportionmentAuditMessageType,
)
from es_elt.xml.audit_data.clr.contract_apportionment import (
ContractApportionmentAuditExchange,
ContractApportionmentAuditExchangeContractRuleDetails,
ContractApportionmentAuditExchangeDailyMediaConsumptions,
DailyMediaConsumption,
DailyMediaConsumptionLegs,
)
from es_elt.xml.audit_data.clr.contract_apportionment import Leg as ContractLeg
from es_elt.xml.audit_data.clr.fee_contract import AuditMessages as FeeAuditMessages
from es_elt.xml.audit_data.clr.fee_contract import (
AuditMessagesType as FeeAuditMessagesType,
)
from es_elt.xml.audit_data.clr.fee_contract import (
AuditMessageType as FeeAuditMessageType,
)
from es_elt.xml.audit_data.clr.fee_contract import (
FeeContractExchange,
FeeContractExchangeFeeItems,
FeeContractExchangeSettlementItems,
FeeContractItemType,
FeeSettlementItemType,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_details import (
AuditMessages as FixedOriginDestinationApportionmentDetailsAuditMessages,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_details import (
AuditMessagesType as FixedOriginDestinationApportionmentDetailsAuditMessagesType,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_details import (
AuditMessageType as FixedOriginDestinationApportionmentDetailsAuditMessageType,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_details import (
FixedOriginDestinationApportionmentDetailsAuditExchange,
FixedOriginDestinationApportionmentDetailsAuditExchangeLegApportionments,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_details import (
LegApportionment as FixedOriginDestinationLegApportionment,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_details import (
LegApportionmentApportionmentItems as FixedOriginDestinationLegApportionmentApportionmentItems,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_details import (
LegApportionmentLegRuleDetails,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_errors import (
ApportionmentErrorType,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_errors import (
AuditMessages as ErrorsAuditMessages,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_errors import (
AuditMessagesType as ErrorsAuditMessagesType,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_errors import (
AuditMessageType as ErrorsAuditMessageType,
)
from es_elt.xml.audit_data.clr.fixed_origin_destination_apportionment_errors import (
FixedOriginDestinationApportionmentErrorsAuditExchange,
)
from es_elt.xml.audit_data.clr.manual_settlement_item_audit import (
AuditMessages as ManualSettlementItemAuditMessages,
)
from es_elt.xml.audit_data.clr.manual_settlement_item_audit import (
AuditMessagesType as ManualSettlementItemAuditMessagesType,
)
from es_elt.xml.audit_data.clr.manual_settlement_item_audit import (
AuditMessageType as ManualSettlementItemAuditMessageType,
)
from es_elt.xml.audit_data.clr.manual_settlement_item_audit import (
ManualSettlementItemExchange,
ManualSettlementItemStatus,
)
from es_elt.xml.audit_data.clr.media_consumptions_apportionment import (
AuditMessages as MediaConsumptionsApportionmentAuditMessages,
)
from es_elt.xml.audit_data.clr.media_consumptions_apportionment import (
AuditMessagesType as MediaConsumptionsApportionmentAuditMessagesType,
)
from es_elt.xml.audit_data.clr.media_consumptions_apportionment import (
AuditMessageType as MediaConsumptionsApportionmentAuditMessageType,
)
from es_elt.xml.audit_data.clr.media_consumptions_apportionment import (
Journey,
JourneyLegs,
)
from es_elt.xml.audit_data.clr.media_consumptions_apportionment import (
Leg as MediaConsumptionsLeg,
)
from es_elt.xml.audit_data.clr.media_consumptions_apportionment import (
LegErrorCodes,
MediaConsumptionApportionment,
MediaConsumptionApportionmentFees,
MediaConsumptionApportionmentJourneys,
MediaConsumptionsApportionmentAuditExchange,
MediaConsumptionsApportionmentAuditExchangeMediaConsumptionApportionments,
)
from es_elt.xml.audit_data.clr.settlement_period import (
AuditMessages as SettlementPeriodAuditMessages,
)
from es_elt.xml.audit_data.clr.settlement_period import (
AuditMessagesType as SettlementPeriodAuditMessagesType,
)
from es_elt.xml.audit_data.clr.settlement_period import (
AuditMessageType as SettlementPeriodAuditMessageType,
)
from es_elt.xml.audit_data.clr.settlement_period import (
Balances,
FeeSettlements,
ManualSettlements,
ProductApportionments,
SettlementPeriodApportionmentExchange,
SettlementPeriodExchange,
Settlements,
StakeholderAccountBalanceExchange,
)
from es_elt.xml.audit_data.clr.transaction_apportionment import (
AuditMessages as TransactionApportionmentAuditMessages,
)
from es_elt.xml.audit_data.clr.transaction_apportionment import (
AuditMessagesType as TransactionApportionmentAuditMessagesType,
)
from es_elt.xml.audit_data.clr.transaction_apportionment import (
AuditMessageType as TransactionApportionmentAuditMessageType,
)
from es_elt.xml.audit_data.clr.transaction_apportionment import (
TransactionApportionmentAuditExchange,
TransactionApportionmentAuditExchangeTransactionRuleDetails,
TransactionRuleDetail,
TransactionRuleDetailApportionmentItems,
TransactionRuleDetailPtomContractTypes,
TransactionRuleDetailSettlementItems,
)
__all__ = [
"ApportionmentUsingCappingRatioPluginDetailsAuditExchange",
"ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptions",
"ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptionsDailyMediaConsumption",
"ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptionsDailyMediaConsumptionLegApportionments",
"ApportionmentUsingCappingRatioPluginDetailsAuditMessageType",
"ApportionmentUsingCappingRatioPluginDetailsAuditMessages",
"ApportionmentUsingCappingRatioPluginDetailsAuditMessagesType",
"CappingRatioApportionmentItemType",
"UsingCappingRatioPluginLegApportionment",
"UsingCappingRatioPluginLegApportionmentApportionmentItems",
"ClearingOperationAuditMessageType",
"ClearingOperationAuditMessages",
"ClearingOperationAuditMessagesType",
"ClearingOperationAuditExchange",
"ClearingOperationAuditExchangeFees",
"ContractApportionmentAuditMessageType",
"ContractApportionmentAuditMessages",
"ContractApportionmentAuditMessagesType",
"ContractApportionmentAuditExchange",
"ContractApportionmentAuditExchangeContractRuleDetails",
"ContractApportionmentAuditExchangeDailyMediaConsumptions",
"DailyMediaConsumption",
"DailyMediaConsumptionLegs",
"ContractLeg",
"FeeAuditMessageType",
"FeeAuditMessages",
"FeeAuditMessagesType",
"FeeContractExchange",
"FeeContractExchangeFeeItems",
"FeeContractExchangeSettlementItems",
"FeeContractItemType",
"FeeSettlementItemType",
"FixedOriginDestinationApportionmentDetailsAuditMessageType",
"FixedOriginDestinationApportionmentDetailsAuditMessages",
"FixedOriginDestinationApportionmentDetailsAuditMessagesType",
"FixedOriginDestinationApportionmentDetailsAuditExchange",
"FixedOriginDestinationApportionmentDetailsAuditExchangeLegApportionments",
"FixedOriginDestinationLegApportionment",
"FixedOriginDestinationLegApportionmentApportionmentItems",
"LegApportionmentLegRuleDetails",
"ApportionmentErrorType",
"ErrorsAuditMessageType",
"ErrorsAuditMessages",
"ErrorsAuditMessagesType",
"FixedOriginDestinationApportionmentErrorsAuditExchange",
"ManualSettlementItemAuditMessageType",
"ManualSettlementItemAuditMessages",
"ManualSettlementItemAuditMessagesType",
"ManualSettlementItemExchange",
"ManualSettlementItemStatus",
"MediaConsumptionsApportionmentAuditMessageType",
"MediaConsumptionsApportionmentAuditMessages",
"MediaConsumptionsApportionmentAuditMessagesType",
"Journey",
"JourneyLegs",
"MediaConsumptionsLeg",
"LegErrorCodes",
"MediaConsumptionApportionment",
"MediaConsumptionApportionmentFees",
"MediaConsumptionApportionmentJourneys",
"MediaConsumptionsApportionmentAuditExchange",
"MediaConsumptionsApportionmentAuditExchangeMediaConsumptionApportionments",
"SettlementPeriodAuditMessageType",
"SettlementPeriodAuditMessages",
"SettlementPeriodAuditMessagesType",
"Balances",
"FeeSettlements",
"ManualSettlements",
"ProductApportionments",
"SettlementPeriodApportionmentExchange",
"SettlementPeriodExchange",
"Settlements",
"StakeholderAccountBalanceExchange",
"TransactionApportionmentAuditMessageType",
"TransactionApportionmentAuditMessages",
"TransactionApportionmentAuditMessagesType",
"TransactionApportionmentAuditExchange",
"TransactionApportionmentAuditExchangeTransactionRuleDetails",
"TransactionRuleDetail",
"TransactionRuleDetailApportionmentItems",
"TransactionRuleDetailPtomContractTypes",
"TransactionRuleDetailSettlementItems",
]

View File

@ -0,0 +1,260 @@
from __future__ import annotations
from decimal import Decimal
from pydantic import BaseModel, ConfigDict
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
from es_elt.xml.common.localized import LocalizedBusinessEntity, LocalizedBusinessRole
__NAMESPACE__ = "http://www.thales.dc/ApportionmentUsingCappingRatioPluginDetails"
class CappingRatioApportionmentItemType(BaseModel):
"""
Details of apportionment for a leg.
:ivar stakeholder_id: The stakeholder involved in the apportionment
:ivar role_type: Retailer, Card Owner, Product Owner, Transporter...
:ivar account: The account to where the money is credited/debited.
:ivar allocated_amount: amount (positive or negative) allocated to
the Clearing Participant
:ivar allocated_amount_without_capping: amount (positive or
negative) allocated to the Clearing Participant if the
apportionment were performed without capping
"""
model_config = ConfigDict(defer_build=True)
stakeholder_id: LocalizedBusinessEntity = field(
metadata={
"name": "StakeholderId",
"type": "Element",
"namespace": "",
"required": True,
}
)
role_type: LocalizedBusinessRole = field(
metadata={
"name": "RoleType",
"type": "Element",
"namespace": "",
"required": True,
}
)
account: str = field(
metadata={
"name": "Account",
"type": "Element",
"namespace": "",
"required": True,
}
)
allocated_amount: Decimal = field(
metadata={
"name": "AllocatedAmount",
"type": "Element",
"namespace": "",
"required": True,
}
)
allocated_amount_without_capping: Decimal = field(
metadata={
"name": "AllocatedAmountWithoutCapping",
"type": "Element",
"namespace": "",
"required": True,
}
)
class LegApportionmentApportionmentItems(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
apportionment_item: list[CappingRatioApportionmentItemType] = field(
default_factory=list,
metadata={
"name": "ApportionmentItem",
"type": "Element",
"namespace": "",
},
)
class LegApportionment(BaseModel):
"""
Details of apportionment for a leg.
:ivar leg_id:
:ivar apportionment_items: Output from apportionment
"""
model_config = ConfigDict(defer_build=True)
leg_id: str = field(
metadata={
"name": "LegId",
"type": "Element",
"namespace": "",
"required": True,
}
)
apportionment_items: None | LegApportionmentApportionmentItems = field(
default=None,
metadata={
"name": "ApportionmentItems",
"type": "Element",
"namespace": "",
},
)
class ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptionsDailyMediaConsumptionLegApportionments(
BaseModel
):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
leg_apportionment: list[LegApportionment] = field(
default_factory=list,
metadata={
"name": "LegApportionment",
"type": "Element",
"namespace": "",
},
)
class ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptionsDailyMediaConsumption(
BaseModel
):
"""
:ivar daily_media_consumption_id:
:ivar leg_apportionments: Apportionment per leg
"""
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
daily_media_consumption_id: str = field(
metadata={
"name": "DailyMediaConsumptionId",
"type": "Element",
"namespace": "",
"required": True,
}
)
leg_apportionments: ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptionsDailyMediaConsumptionLegApportionments = field(
metadata={
"name": "LegApportionments",
"type": "Element",
"namespace": "",
"required": True,
}
)
class ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptions(
BaseModel
):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
daily_media_consumption: list[
ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptionsDailyMediaConsumption
] = field(
default_factory=list,
metadata={
"name": "DailyMediaConsumption",
"type": "Element",
"namespace": "",
},
)
class ApportionmentUsingCappingRatioPluginDetailsAuditExchange(BaseModel):
"""
Details of apportionment using capping ratio plugin for a contractId.
:ivar contract_id:
:ivar sequence: The ordering sequence number of this contract's
apportionment.
:ivar daily_media_consumptions:
"""
model_config = ConfigDict(defer_build=True)
contract_id: str = field(
metadata={
"name": "ContractId",
"type": "Element",
"namespace": "",
"required": True,
}
)
sequence: int = field(
metadata={
"name": "Sequence",
"type": "Element",
"namespace": "",
"required": True,
}
)
daily_media_consumptions: ApportionmentUsingCappingRatioPluginDetailsAuditExchangeDailyMediaConsumptions = field(
metadata={
"name": "DailyMediaConsumptions",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: ApportionmentUsingCappingRatioPluginDetailsAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
apportionment_using_capping_ratio_plugin_details_xsd_version: str = field(
const=True,
default="1.1",
metadata={
"name": "ApportionmentUsingCappingRatioPluginDetailsXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/ApportionmentUsingCappingRatioPluginDetails"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,108 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata_pydantic.fields import field
from es_elt.xml.common.clearing_item_type import FeeData
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/ClearingOperation"
class ClearingOperationAuditExchangeFees(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
fee: list[FeeData] = field(
default_factory=list,
metadata={
"name": "Fee",
"type": "Element",
"namespace": "",
},
)
class ClearingOperationAuditExchange(BaseModel):
"""
clr:clearing.operation.get: At transaction reception.
:ivar transaction_id: The transaction id (in case of
BOMessage/DeviceMessage)
:ivar contract_id: The contract Id.
:ivar fees: Fees information
"""
model_config = ConfigDict(defer_build=True)
transaction_id: str = field(
metadata={
"name": "TransactionId",
"type": "Element",
"namespace": "",
"required": True,
}
)
contract_id: str = field(
metadata={
"name": "ContractId",
"type": "Element",
"namespace": "",
"required": True,
}
)
fees: None | ClearingOperationAuditExchangeFees = field(
default=None,
metadata={
"name": "Fees",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: ClearingOperationAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
clearing_operation_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "ClearingOperationXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/ClearingOperation"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,371 @@
from __future__ import annotations
from decimal import Decimal
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.clearing_item_type import (
ApportionmentItemsType,
ContractRuleDetails,
SettlementItemsType,
)
from es_elt.xml.common.headers import HeadersType
from es_elt.xml.common.localized import (
LocalizedCappingRule,
LocalizedJourneyDefinition,
LocalizedNonTransitProductCode,
LocalizedProductCode,
LocalizedSupplementProductCode,
)
from es_elt.xml.common.media_identification import MediaIdentification
__NAMESPACE__ = "http://www.thales.dc/ContractApportionment"
class Leg(BaseModel):
"""
:ivar leg_id: Unique identifier for a leg. Between multiple
reconstructions, the legId will be kept constant if the leg did
not change
"""
model_config = ConfigDict(defer_build=True)
leg_id: str = field(
metadata={
"name": "LegId",
"type": "Element",
"namespace": "",
"required": True,
}
)
class ContractApportionmentAuditExchangeContractRuleDetails(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
contract_rule_detail: list[ContractRuleDetails] = field(
default_factory=list,
metadata={
"name": "ContractRuleDetail",
"type": "Element",
"namespace": "",
},
)
class DailyMediaConsumptionLegs(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
leg: list[Leg] = field(
default_factory=list,
metadata={
"name": "Leg",
"type": "Element",
"namespace": "",
},
)
class DailyMediaConsumption(BaseModel):
"""
:ivar daily_media_consumption_id: Id of the daily media consumption
that was involved in this payment request
:ivar legs: Legs
"""
model_config = ConfigDict(defer_build=True)
daily_media_consumption_id: str = field(
metadata={
"name": "DailyMediaConsumptionId",
"type": "Element",
"namespace": "",
"required": True,
}
)
legs: None | DailyMediaConsumptionLegs = field(
default=None,
metadata={
"name": "Legs",
"type": "Element",
"namespace": "",
},
)
class ContractApportionmentAuditExchangeDailyMediaConsumptions(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
daily_media_consumption: list[DailyMediaConsumption] = field(
default_factory=list,
metadata={
"name": "DailyMediaConsumption",
"type": "Element",
"namespace": "",
},
)
class ContractApportionmentAuditExchange(BaseModel):
"""
clr_apportionment_get: At apportionment creation Apportionment of a
fraction of contract from a payer to a payee's account during a
settlement period.
:ivar apportionment_items:
:ivar contract_rule_details: Sorted rule details
:ivar settlement_items:
:ivar amount_to_apportion: The total revenue to be apportioned among
all the stakeholder
:ivar contract_id: The contract as an instance of a product,
possibly on a media.
:ivar contract_serial_number: The contract serial number: serial
number of the Contract Id.
:ivar creation_event_id: The unique identifier of the related event.
:ivar media_identification: The media holding the contract
:ivar non_transit_product_code: The type of product of the contract
instance if it is a non transit product. Dictionary prefix:
NonTransitProductCode
:ivar processing_date:
:ivar clearing_version: The version of the clearing parameters.
:ivar product_code: The type of product of the contract instance if
it is a transit product. Dictionary prefix: ProductCode
:ivar supplement_product_code: The type of product of the contract
instance if it is a supplement product. Dictionary prefix:
SupplementProductCode
:ivar capping_product_code: The type of capping of the contract
instance if it is a capping instance. Dictionary prefix:
CappingRule
:ivar journey_product_code: The type of journey definition of the
contract instance if it is a journey instance. Dictionary
prefix: JourneyDefinition
:ivar best_effort: In case of an apportionment of an amount lower
than the revenue: If true, will perform the apportionment the
best way possible. If false, will do nothing for the
apportionment.
:ivar sequence: The ordering sequence number of this contract's
apportionment.
:ivar settlement_period_id:
:ivar settlement_period_creation_date_time:
:ivar daily_media_consumptions: DailyMediaConsumptions
"""
model_config = ConfigDict(defer_build=True)
apportionment_items: None | ApportionmentItemsType = field(
default=None,
metadata={
"name": "ApportionmentItems",
"type": "Element",
"namespace": "",
},
)
contract_rule_details: (
None | ContractApportionmentAuditExchangeContractRuleDetails
) = field(
default=None,
metadata={
"name": "ContractRuleDetails",
"type": "Element",
"namespace": "",
},
)
settlement_items: None | SettlementItemsType = field(
default=None,
metadata={
"name": "SettlementItems",
"type": "Element",
"namespace": "",
},
)
amount_to_apportion: Decimal = field(
metadata={
"name": "AmountToApportion",
"type": "Element",
"namespace": "",
"required": True,
}
)
contract_id: str = field(
metadata={
"name": "ContractId",
"type": "Element",
"namespace": "",
"required": True,
}
)
contract_serial_number: None | str = field(
default=None,
metadata={
"name": "ContractSerialNumber",
"type": "Element",
"namespace": "",
},
)
creation_event_id: str = field(
metadata={
"name": "CreationEventId",
"type": "Element",
"namespace": "",
"required": True,
}
)
media_identification: None | MediaIdentification = field(
default=None,
metadata={
"name": "MediaIdentification",
"type": "Element",
"namespace": "",
},
)
non_transit_product_code: None | LocalizedNonTransitProductCode = field(
default=None,
metadata={
"name": "NonTransitProductCode",
"type": "Element",
"namespace": "",
},
)
processing_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "ProcessingDate",
"type": "Element",
"namespace": "",
},
)
clearing_version: str = field(
metadata={
"name": "ClearingVersion",
"type": "Element",
"namespace": "",
"required": True,
}
)
product_code: None | LocalizedProductCode = field(
default=None,
metadata={
"name": "ProductCode",
"type": "Element",
"namespace": "",
},
)
supplement_product_code: None | LocalizedSupplementProductCode = field(
default=None,
metadata={
"name": "SupplementProductCode",
"type": "Element",
"namespace": "",
},
)
capping_product_code: None | LocalizedCappingRule = field(
default=None,
metadata={
"name": "CappingProductCode",
"type": "Element",
"namespace": "",
},
)
journey_product_code: None | LocalizedJourneyDefinition = field(
default=None,
metadata={
"name": "JourneyProductCode",
"type": "Element",
"namespace": "",
},
)
best_effort: None | bool = field(
default=None,
metadata={
"name": "BestEffort",
"type": "Element",
"namespace": "",
},
)
sequence: int = field(
metadata={
"name": "Sequence",
"type": "Element",
"namespace": "",
"required": True,
}
)
settlement_period_id: str = field(
metadata={
"name": "SettlementPeriodId",
"type": "Element",
"namespace": "",
"required": True,
}
)
settlement_period_creation_date_time: XmlDateTime = field(
metadata={
"name": "SettlementPeriodCreationDateTime",
"type": "Element",
"namespace": "",
"required": True,
}
)
daily_media_consumptions: (
None | ContractApportionmentAuditExchangeDailyMediaConsumptions
) = field(
default=None,
metadata={
"name": "DailyMediaConsumptions",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: ContractApportionmentAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
contract_apportionment_xsd_version: str = field(
const=True,
default="1.3",
metadata={
"name": "ContractApportionmentXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/ContractApportionment"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,315 @@
from __future__ import annotations
from decimal import Decimal
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
from es_elt.xml.common.localized import LocalizedBusinessEntity
__NAMESPACE__ = "http://www.thales.dc/FeeContract"
class FeeContractItemType(BaseModel):
"""
Results of fee calculation.
:ivar stakeholder_id: The stakeholder involved in the fee
:ivar account: The account to where the money is credited/debited.
:ivar allocated_amount: amount (positive or negative) allocated to
the Clearing Participant
"""
model_config = ConfigDict(defer_build=True)
stakeholder_id: LocalizedBusinessEntity = field(
metadata={
"name": "StakeholderId",
"type": "Element",
"namespace": "",
"required": True,
}
)
account: str = field(
metadata={
"name": "Account",
"type": "Element",
"namespace": "",
"required": True,
}
)
allocated_amount: Decimal = field(
metadata={
"name": "AllocatedAmount",
"type": "Element",
"namespace": "",
"required": True,
}
)
class FeeSettlementItemType(BaseModel):
"""
Individual money movement resulting from the fee items.
:ivar payer_id: The stakeholder who will be debited money
:ivar payee_id: The stakeholder who will be credited money
:ivar settlement_amount: amount (POSITIVE) to transfer between PAYER
and PAYEE
"""
model_config = ConfigDict(defer_build=True)
payer_id: LocalizedBusinessEntity = field(
metadata={
"name": "PayerId",
"type": "Element",
"namespace": "",
"required": True,
}
)
payee_id: LocalizedBusinessEntity = field(
metadata={
"name": "PayeeId",
"type": "Element",
"namespace": "",
"required": True,
}
)
settlement_amount: Decimal = field(
metadata={
"name": "SettlementAmount",
"type": "Element",
"namespace": "",
"required": True,
}
)
class FeeContractExchangeFeeItems(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
fee_item: list[FeeContractItemType] = field(
default_factory=list,
metadata={
"name": "FeeItem",
"type": "Element",
"namespace": "",
},
)
class FeeContractExchangeSettlementItems(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
settlement_item: list[FeeSettlementItemType] = field(
default_factory=list,
metadata={
"name": "SettlementItem",
"type": "Element",
"namespace": "",
},
)
class FeeContractExchange(BaseModel):
"""
clr:fee.contract.get: At fee distribution Distribution of a fee based
on a contract from a payer to a payee's account.
:ivar fee_items: Output from fee distribution
:ivar settlement_items: Individual money transfer. The current
settlements already take into account what has been done in
previous settlement periods. For instance, if in period n-1, we
needed to give A-&gt;B 10, and in current period n we realize
that we needed to give A-&gt;B 3, the current audit will only
contain a contractSettlement B-&gt;A 7 to compensate.
:ivar fee_contract_id: The contract as an instance of a fee.
:ivar fee_context_id:
:ivar fee_rule_id:
:ivar creation_event_id: The unique identifier of the related event.
:ivar charging_model: The charging model of the fee contract (per
event, per volume, per total value).
:ivar charging_period: The charging period of the fee contract
(Daily, Weekly, Monthly).
:ivar application_date:
:ivar processing_date:
:ivar clearing_version: The version of the clearing parameters.
:ivar settlement_period_id:
:ivar total_number:
:ivar total_amount:
:ivar sequence: The ordering sequence number of this contract.
"""
model_config = ConfigDict(defer_build=True)
fee_items: None | FeeContractExchangeFeeItems = field(
default=None,
metadata={
"name": "FeeItems",
"type": "Element",
"namespace": "",
},
)
settlement_items: None | FeeContractExchangeSettlementItems = field(
default=None,
metadata={
"name": "SettlementItems",
"type": "Element",
"namespace": "",
},
)
fee_contract_id: str = field(
metadata={
"name": "FeeContractId",
"type": "Element",
"namespace": "",
"required": True,
}
)
fee_context_id: str = field(
metadata={
"name": "FeeContextId",
"type": "Element",
"namespace": "",
"required": True,
}
)
fee_rule_id: str = field(
metadata={
"name": "FeeRuleId",
"type": "Element",
"namespace": "",
"required": True,
}
)
creation_event_id: str = field(
metadata={
"name": "CreationEventId",
"type": "Element",
"namespace": "",
"required": True,
}
)
charging_model: str = field(
metadata={
"name": "ChargingModel",
"type": "Element",
"namespace": "",
"required": True,
}
)
charging_period: str = field(
metadata={
"name": "ChargingPeriod",
"type": "Element",
"namespace": "",
"required": True,
}
)
application_date: XmlDateTime = field(
metadata={
"name": "ApplicationDate",
"type": "Element",
"namespace": "",
"required": True,
}
)
processing_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "ProcessingDate",
"type": "Element",
"namespace": "",
},
)
clearing_version: str = field(
metadata={
"name": "ClearingVersion",
"type": "Element",
"namespace": "",
"required": True,
}
)
settlement_period_id: str = field(
metadata={
"name": "SettlementPeriodId",
"type": "Element",
"namespace": "",
"required": True,
}
)
total_number: None | int = field(
default=None,
metadata={
"name": "TotalNumber",
"type": "Element",
"namespace": "",
},
)
total_amount: Decimal = field(
metadata={
"name": "TotalAmount",
"type": "Element",
"namespace": "",
"required": True,
}
)
sequence: int = field(
metadata={
"name": "Sequence",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: FeeContractExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
fee_contract_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "FeeContractXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/FeeContract"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,182 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata_pydantic.fields import field
from es_elt.xml.common.clearing_item_type import (
ApportionmentItemType,
ContractRuleDetails,
)
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/FixedOriginDestinationApportionmentDetails"
class LegApportionmentApportionmentItems(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
apportionment_item: list[ApportionmentItemType] = field(
default_factory=list,
metadata={
"name": "ApportionmentItem",
"type": "Element",
"namespace": "",
},
)
class LegApportionmentLegRuleDetails(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
leg_rule_detail: list[ContractRuleDetails] = field(
default_factory=list,
metadata={
"name": "LegRuleDetail",
"type": "Element",
"namespace": "",
},
)
class LegApportionment(BaseModel):
"""
Details of apportionment for a leg.
:ivar leg_id:
:ivar apportionment_items: Output from apportionment
:ivar leg_rule_details: Details of rule calculation, when several
parts are engaged for apportionment's calculation
"""
model_config = ConfigDict(defer_build=True)
leg_id: str = field(
metadata={
"name": "LegId",
"type": "Element",
"namespace": "",
"required": True,
}
)
apportionment_items: None | LegApportionmentApportionmentItems = field(
default=None,
metadata={
"name": "ApportionmentItems",
"type": "Element",
"namespace": "",
},
)
leg_rule_details: None | LegApportionmentLegRuleDetails = field(
default=None,
metadata={
"name": "LegRuleDetails",
"type": "Element",
"namespace": "",
},
)
class FixedOriginDestinationApportionmentDetailsAuditExchangeLegApportionments(
BaseModel
):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
leg_apportionment: list[LegApportionment] = field(
default_factory=list,
metadata={
"name": "LegApportionment",
"type": "Element",
"namespace": "",
},
)
class FixedOriginDestinationApportionmentDetailsAuditExchange(BaseModel):
"""
clr_apportionment_fixed_od_details: Created each time we receive a new
event Details of fixed origin destination apportionment for a
contractId.
:ivar contract_id:
:ivar leg_apportionments: Apportionment per leg
:ivar sequence: The ordering sequence number of this contract's
apportionment.
"""
model_config = ConfigDict(defer_build=True)
contract_id: str = field(
metadata={
"name": "ContractId",
"type": "Element",
"namespace": "",
"required": True,
}
)
leg_apportionments: FixedOriginDestinationApportionmentDetailsAuditExchangeLegApportionments = field(
metadata={
"name": "LegApportionments",
"type": "Element",
"namespace": "",
"required": True,
}
)
sequence: int = field(
metadata={
"name": "Sequence",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: FixedOriginDestinationApportionmentDetailsAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
fixed_origin_destination_apportionment_details_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "FixedOriginDestinationApportionmentDetailsXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/FixedOriginDestinationApportionmentDetails"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,151 @@
from __future__ import annotations
from decimal import Decimal
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
from es_elt.xml.common.localized import LocalizedProductCode
__NAMESPACE__ = "http://www.thales.dc/FixedOriginDestinationApportionmentErrors"
class ApportionmentErrorType(Enum):
MISSING_DATA_FOR_APPORTIONMENT = "MISSING_DATA_FOR_APPORTIONMENT"
TOTAL_AND_REVENUE_AMOUNT_DIFFERENT = "TOTAL_AND_REVENUE_AMOUNT_DIFFERENT"
TRANSFER_DISCOUNT_GREATER_THAN_ALLOCATED = (
"TRANSFER_DISCOUNT_GREATER_THAN_ALLOCATED"
)
class FixedOriginDestinationApportionmentErrorsAuditExchange(BaseModel):
"""
clr_contract_settlement_get: Apportionment error raised during an
apportionment plugin execution.
:ivar error_type:
:ivar product_code: The type of product of the contract instance if
it is a transit product. Dictionary prefix: ProductCode
:ivar table_id: The matrix applied for this apportionment.
:ivar origin_point_id:
:ivar destination_point_id:
:ivar amount: The total amount (the price of the leg).
:ivar apportioned_revenue: The total revenue to be apportioned among
all the stakeholder (this apportionment is a fraction of it)
:ivar media_serial_number:
"""
model_config = ConfigDict(defer_build=True)
error_type: ApportionmentErrorType = field(
metadata={
"name": "ErrorType",
"type": "Element",
"namespace": "",
"required": True,
}
)
product_code: None | LocalizedProductCode = field(
default=None,
metadata={
"name": "ProductCode",
"type": "Element",
"namespace": "",
},
)
table_id: None | str = field(
default=None,
metadata={
"name": "TableId",
"type": "Element",
"namespace": "",
},
)
origin_point_id: None | str = field(
default=None,
metadata={
"name": "OriginPointId",
"type": "Element",
"namespace": "",
},
)
destination_point_id: None | str = field(
default=None,
metadata={
"name": "DestinationPointId",
"type": "Element",
"namespace": "",
},
)
amount: None | Decimal = field(
default=None,
metadata={
"name": "Amount",
"type": "Element",
"namespace": "",
},
)
apportioned_revenue: None | Decimal = field(
default=None,
metadata={
"name": "ApportionedRevenue",
"type": "Element",
"namespace": "",
},
)
media_serial_number: None | str = field(
default=None,
metadata={
"name": "MediaSerialNumber",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: FixedOriginDestinationApportionmentErrorsAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
fixed_origin_destination_apportionment_errors_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "FixedOriginDestinationApportionmentErrorsXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/FixedOriginDestinationApportionmentErrors"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,242 @@
from __future__ import annotations
from decimal import Decimal
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
from es_elt.xml.common.localized import (
LocalizedBusinessEntity,
LocalizedBusinessEntityRoleType,
)
__NAMESPACE__ = "http://www.thales.dc/ManualSettlementItemAudit"
class ManualSettlementItemStatus(Enum):
PENDING = "PENDING"
CANCELLED = "CANCELLED"
SETTLED = "SETTLED"
class ManualSettlementItemExchange(BaseModel):
"""
clr_manual_settlement_item_post: At manual settlement item creation
clr_manual_settlement_item_put: At manual settlement item update
clr_manual_settlement_item_delete: At manual settlement item delete.
:ivar manual_settlement_item_id: Manual settlement item Id
:ivar payer_id: The stakeholder who will be debited money
:ivar payer_role_type: Retailer, Card Owner, Product Owner,
Transporter...
:ivar payer_account: The account from which the money will be
debited.
:ivar payee_id: The stakeholder who will be credited money
:ivar payee_role_type: Retailer, Card Owner, Product Owner,
Transporter...
:ivar payee_account: The account to where the money will be
credited.
:ivar amount: The amount of the transfer.
:ivar last_modification_date: Date of last change of the settlement
item.
:ivar creation_date: Date of creation of the settlement item.
:ivar execution_date: Date of creation or update of the settlement
item.
:ivar application_date: Application date of the settlement item.
:ivar user_id: The unique identifier of the user who created ou
updated Settlement Item.
:ivar clearing_period: The settlement period id.
:ivar manual_settlement_item_status: The type of the rule
:ivar reason: The reason of created or modification manual
settlement item
:ivar sequence: The ordering sequence number of this settlement
period.
"""
model_config = ConfigDict(defer_build=True)
manual_settlement_item_id: str = field(
metadata={
"name": "ManualSettlementItemId",
"type": "Element",
"namespace": "",
"required": True,
}
)
payer_id: LocalizedBusinessEntity = field(
metadata={
"name": "PayerId",
"type": "Element",
"namespace": "",
"required": True,
}
)
payer_role_type: LocalizedBusinessEntityRoleType = field(
metadata={
"name": "PayerRoleType",
"type": "Element",
"namespace": "",
"required": True,
}
)
payer_account: str = field(
metadata={
"name": "PayerAccount",
"type": "Element",
"namespace": "",
"required": True,
}
)
payee_id: LocalizedBusinessEntity = field(
metadata={
"name": "PayeeId",
"type": "Element",
"namespace": "",
"required": True,
}
)
payee_role_type: LocalizedBusinessEntityRoleType = field(
metadata={
"name": "PayeeRoleType",
"type": "Element",
"namespace": "",
"required": True,
}
)
payee_account: str = field(
metadata={
"name": "PayeeAccount",
"type": "Element",
"namespace": "",
"required": True,
}
)
amount: None | Decimal = field(
default=None,
metadata={
"name": "Amount",
"type": "Element",
"namespace": "",
},
)
last_modification_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "LastModificationDate",
"type": "Element",
"namespace": "",
},
)
creation_date: XmlDateTime = field(
metadata={
"name": "CreationDate",
"type": "Element",
"namespace": "",
"required": True,
}
)
execution_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "ExecutionDate",
"type": "Element",
"namespace": "",
},
)
application_date: XmlDateTime = field(
metadata={
"name": "ApplicationDate",
"type": "Element",
"namespace": "",
"required": True,
}
)
user_id: str = field(
metadata={
"name": "UserId",
"type": "Element",
"namespace": "",
"required": True,
}
)
clearing_period: None | str = field(
default=None,
metadata={
"name": "ClearingPeriod",
"type": "Element",
"namespace": "",
},
)
manual_settlement_item_status: ManualSettlementItemStatus = field(
metadata={
"name": "ManualSettlementItemStatus",
"type": "Element",
"namespace": "",
"required": True,
}
)
reason: None | str = field(
default=None,
metadata={
"name": "Reason",
"type": "Element",
"namespace": "",
},
)
sequence: None | int = field(
default=None,
metadata={
"name": "Sequence",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: ManualSettlementItemExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
manual_settlement_item_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "ManualSettlementItemXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/ManualSettlementItemAudit"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,253 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata_pydantic.fields import field
from es_elt.xml.common.clearing_item_type import FeeData
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/MediaConsumptionsApportionment"
class LegErrorCodes(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
error_code: list[str] = field(
default_factory=list,
metadata={
"name": "ErrorCode",
"type": "Element",
"namespace": "",
},
)
class Leg(BaseModel):
"""
:ivar leg_id: Unique identifier for a leg. Between multiple
reconstructions, the legId will be kept constant if the leg did
not change
:ivar contract_id: This leg is taken into account in this contract.
If empty, it means this leg is not taken into account for
apportionment purpose
:ivar error_codes:
"""
model_config = ConfigDict(defer_build=True)
leg_id: str = field(
metadata={
"name": "LegId",
"type": "Element",
"namespace": "",
"required": True,
}
)
contract_id: None | str = field(
default=None,
metadata={
"name": "ContractId",
"type": "Element",
"namespace": "",
},
)
error_codes: None | LegErrorCodes = field(
default=None,
metadata={
"name": "ErrorCodes",
"type": "Element",
"namespace": "",
},
)
class MediaConsumptionApportionmentFees(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
fee: list[FeeData] = field(
default_factory=list,
metadata={
"name": "Fee",
"type": "Element",
"namespace": "",
},
)
class JourneyLegs(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
leg: list[Leg] = field(
default_factory=list,
metadata={
"name": "Leg",
"type": "Element",
"namespace": "",
},
)
class Journey(BaseModel):
"""
:ivar journey_id: Unique identifier for a journey. Between multiple
reconstructions, the journeyId will be kept constant if the
journey did not change
:ivar legs: Legs
"""
model_config = ConfigDict(defer_build=True)
journey_id: str = field(
metadata={
"name": "JourneyId",
"type": "Element",
"namespace": "",
"required": True,
}
)
legs: None | JourneyLegs = field(
default=None,
metadata={
"name": "Legs",
"type": "Element",
"namespace": "",
},
)
class MediaConsumptionApportionmentJourneys(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
journey: list[Journey] = field(
default_factory=list,
metadata={
"name": "Journey",
"type": "Element",
"namespace": "",
},
)
class MediaConsumptionApportionment(BaseModel):
"""
:ivar daily_media_consumption_id:
:ivar journeys: Journeys
:ivar fees: Fees information
"""
model_config = ConfigDict(defer_build=True)
daily_media_consumption_id: str = field(
metadata={
"name": "DailyMediaConsumptionId",
"type": "Element",
"namespace": "",
"required": True,
}
)
journeys: None | MediaConsumptionApportionmentJourneys = field(
default=None,
metadata={
"name": "Journeys",
"type": "Element",
"namespace": "",
},
)
fees: None | MediaConsumptionApportionmentFees = field(
default=None,
metadata={
"name": "Fees",
"type": "Element",
"namespace": "",
},
)
class MediaConsumptionsApportionmentAuditExchangeMediaConsumptionApportionments(
BaseModel
):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
media_consumption_apportionment: list[MediaConsumptionApportionment] = field(
default_factory=list,
metadata={
"name": "MediaConsumptionApportionment",
"type": "Element",
"namespace": "",
},
)
class MediaConsumptionsApportionmentAuditExchange(BaseModel):
"""
clr_str_media_consumptions_apportionment: After reception of a new
journey reconstruction and rating.
:ivar media_consumption_apportionments: Media consumptions
"""
model_config = ConfigDict(defer_build=True)
media_consumption_apportionments: (
None | MediaConsumptionsApportionmentAuditExchangeMediaConsumptionApportionments
) = field(
default=None,
metadata={
"name": "MediaConsumptionApportionments",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: MediaConsumptionsApportionmentAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
media_consumptions_apportionment_xsd_version: str = field(
const=True,
default="1.1",
metadata={
"name": "MediaConsumptionsApportionmentXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/MediaConsumptionsApportionment"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,360 @@
from __future__ import annotations
from decimal import Decimal
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
from es_elt.xml.common.localized import LocalizedBusinessEntity
__NAMESPACE__ = "http://www.thales.dc/SettlementPeriod"
class SettlementPeriodApportionmentExchange(BaseModel):
"""
Apportionment from a payer to a payee's account during a settlement
period.
:ivar amount: The amount of the transfer.
:ivar payee_account: The account to where the money will be
credited.
:ivar payee_id: The stakeholder who will be credited money
:ivar payer_account: The account from which the money will be
debited.
:ivar payer_id: The stakeholder who will be debited money
"""
model_config = ConfigDict(defer_build=True)
amount: None | Decimal = field(
default=None,
metadata={
"name": "Amount",
"type": "Element",
"namespace": "",
},
)
payee_account: None | str = field(
default=None,
metadata={
"name": "PayeeAccount",
"type": "Element",
"namespace": "",
},
)
payee_id: None | LocalizedBusinessEntity = field(
default=None,
metadata={
"name": "PayeeId",
"type": "Element",
"namespace": "",
},
)
payer_account: None | str = field(
default=None,
metadata={
"name": "PayerAccount",
"type": "Element",
"namespace": "",
},
)
payer_id: None | LocalizedBusinessEntity = field(
default=None,
metadata={
"name": "PayerId",
"type": "Element",
"namespace": "",
},
)
class StakeholderAccountBalanceExchange(BaseModel):
"""
Total value per stakeholder for a given apportionment (i.e. set of
daily media journeys reconstructions).
:ivar account:
:ivar amount:
:ivar stakeholder_id: Aka business entity id
"""
model_config = ConfigDict(defer_build=True)
account: None | str = field(
default=None,
metadata={
"name": "Account",
"type": "Element",
"namespace": "",
},
)
amount: None | Decimal = field(
default=None,
metadata={
"name": "Amount",
"type": "Element",
"namespace": "",
},
)
stakeholder_id: None | LocalizedBusinessEntity = field(
default=None,
metadata={
"name": "StakeholderId",
"type": "Element",
"namespace": "",
},
)
class Balances(BaseModel):
model_config = ConfigDict(defer_build=True)
balance: list[StakeholderAccountBalanceExchange] = field(
default_factory=list,
metadata={
"name": "Balance",
"type": "Element",
"namespace": "",
},
)
class FeeSettlements(BaseModel):
model_config = ConfigDict(defer_build=True)
fee_settlement: list[SettlementPeriodApportionmentExchange] = field(
default_factory=list,
metadata={
"name": "FeeSettlement",
"type": "Element",
"namespace": "",
},
)
class ManualSettlements(BaseModel):
model_config = ConfigDict(defer_build=True)
manual_settlement: list[SettlementPeriodApportionmentExchange] = field(
default_factory=list,
metadata={
"name": "ManualSettlement",
"type": "Element",
"namespace": "",
},
)
class ProductApportionments(BaseModel):
model_config = ConfigDict(defer_build=True)
product_apportionment: list[SettlementPeriodApportionmentExchange] = field(
default_factory=list,
metadata={
"name": "ProductApportionment",
"type": "Element",
"namespace": "",
},
)
class Settlements(BaseModel):
model_config = ConfigDict(defer_build=True)
settlement: list[SettlementPeriodApportionmentExchange] = field(
default_factory=list,
metadata={
"name": "Settlement",
"type": "Element",
"namespace": "",
},
)
class SettlementPeriodExchange(BaseModel):
"""
clr_settlement_get: At settlement period creation or update
Apportionments for a settlement period.
:ivar clearing_date_time: Date of computation of the apportionments
of the settlement period.
:ivar closing_date_time: Closing date of the settlement period.
:ivar creation_date_time: Creation date of the settlement period.
:ivar creation_event_id: The unique identifier of the related event.
:ivar previous_clearing_period_id: The settlement period preceding
the current one.
:ivar reference_date_time: Reference date of the settlement period
(used for TFN). Used for displaying/grouping by week to overload
creationDate
:ivar sequence: The ordering sequence number of this settlement
period.
:ivar clearing_period_id: The settlement period.
:ivar signature: The signature of this settlement period.
:ivar settlements: Apportionment between stakeholders during the
settlement period.
:ivar product_apportionments: Apportionment between stakeholders
during the settlement period.
:ivar manual_settlements: Apportionment between stakeholders during
the settlement period.
:ivar fee_settlements: Fee distribution between stakeholders during
the settlement period.
:ivar balances: The balances of operations for each stakeholder
during the settlement period.
"""
model_config = ConfigDict(defer_build=True)
clearing_date_time: None | XmlDateTime = field(
default=None,
metadata={
"name": "ClearingDateTime",
"type": "Element",
"namespace": "",
},
)
closing_date_time: None | XmlDateTime = field(
default=None,
metadata={
"name": "ClosingDateTime",
"type": "Element",
"namespace": "",
},
)
creation_date_time: None | XmlDateTime = field(
default=None,
metadata={
"name": "CreationDateTime",
"type": "Element",
"namespace": "",
},
)
creation_event_id: None | str = field(
default=None,
metadata={
"name": "CreationEventId",
"type": "Element",
"namespace": "",
},
)
previous_clearing_period_id: None | str = field(
default=None,
metadata={
"name": "PreviousClearingPeriodId",
"type": "Element",
"namespace": "",
},
)
reference_date_time: None | XmlDateTime = field(
default=None,
metadata={
"name": "ReferenceDateTime",
"type": "Element",
"namespace": "",
},
)
sequence: None | int = field(
default=None,
metadata={
"name": "Sequence",
"type": "Element",
"namespace": "",
},
)
clearing_period_id: None | str = field(
default=None,
metadata={
"name": "ClearingPeriodId",
"type": "Element",
"namespace": "",
},
)
signature: None | bytes = field(
default=None,
metadata={
"name": "Signature",
"type": "Element",
"namespace": "",
"format": "base64",
},
)
settlements: None | Settlements = field(
default=None,
metadata={
"name": "Settlements",
"type": "Element",
"namespace": "",
},
)
product_apportionments: None | ProductApportionments = field(
default=None,
metadata={
"name": "ProductApportionments",
"type": "Element",
"namespace": "",
},
)
manual_settlements: None | ManualSettlements = field(
default=None,
metadata={
"name": "ManualSettlements",
"type": "Element",
"namespace": "",
},
)
fee_settlements: None | FeeSettlements = field(
default=None,
metadata={
"name": "FeeSettlements",
"type": "Element",
"namespace": "",
},
)
balances: None | Balances = field(
default=None,
metadata={
"name": "Balances",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: SettlementPeriodExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
settlement_period_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "SettlementPeriodXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/SettlementPeriod"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,325 @@
from __future__ import annotations
from decimal import Decimal
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.clearing_item_type import (
ApportionmentItemsType,
ApportionmentItemType,
ElementarySettlementItemType,
SettlementItemsType,
)
from es_elt.xml.common.headers import HeadersType
from es_elt.xml.common.media_identification import MediaIdentification
__NAMESPACE__ = "http://www.thales.dc/TransactionApportionment"
class TransactionRuleDetailPtomContractTypes(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
ptom_contract_type: list[int] = field(
default_factory=list,
metadata={
"name": "PtomContractType",
"type": "Element",
"namespace": "",
},
)
class TransactionRuleDetailApportionmentItems(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
apportionment_item: list[ApportionmentItemType] = field(
default_factory=list,
metadata={
"name": "ApportionmentItem",
"type": "Element",
"namespace": "",
},
)
class TransactionRuleDetailSettlementItems(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
settlement_item: list[ElementarySettlementItemType] = field(
default_factory=list,
metadata={
"name": "SettlementItem",
"type": "Element",
"namespace": "",
},
)
class TransactionRuleDetail(BaseModel):
"""
Results of apportionment calculation.
:ivar rule_id: The name of the rule
:ivar apportionment_items: The apportionment result for this rule.
If the
:ivar settlement_items: Individual money transfer
:ivar error:
:ivar error_message:
:ivar ptom_contract_types:
"""
model_config = ConfigDict(defer_build=True)
rule_id: str = field(
metadata={
"name": "RuleId",
"type": "Element",
"namespace": "",
"required": True,
}
)
apportionment_items: None | TransactionRuleDetailApportionmentItems = field(
default=None,
metadata={
"name": "ApportionmentItems",
"type": "Element",
"namespace": "",
},
)
settlement_items: None | TransactionRuleDetailSettlementItems = field(
default=None,
metadata={
"name": "SettlementItems",
"type": "Element",
"namespace": "",
},
)
error: None | bool = field(
default=None,
metadata={
"name": "Error",
"type": "Element",
"namespace": "",
},
)
error_message: None | str = field(
default=None,
metadata={
"name": "ErrorMessage",
"type": "Element",
"namespace": "",
},
)
ptom_contract_types: None | TransactionRuleDetailPtomContractTypes = field(
default=None,
metadata={
"name": "PtomContractTypes",
"type": "Element",
"namespace": "",
},
)
class TransactionApportionmentAuditExchangeTransactionRuleDetails(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
transaction_rule_detail: list[TransactionRuleDetail] = field(
default_factory=list,
metadata={
"name": "TransactionRuleDetail",
"type": "Element",
"namespace": "",
},
)
class TransactionApportionmentAuditExchange(BaseModel):
"""
clr_transaction_apportionment_get: At apportionment creation
Apportionment of an independent transaction (stored value debit, stored
value credit, ...).
:ivar transaction_type:
:ivar apportionment_items:
:ivar transaction_rule_details: Sorted rule details
:ivar settlement_items:
:ivar amount_to_apportion: The total revenue to be apportioned among
all the stakeholder
:ivar transaction_context_id: The contract as an instance of a
product, possibly on a media.
:ivar media_identification: The media holding the contract
:ivar processing_date:
:ivar clearing_version: The version of the clearing parameters.
:ivar best_effort: In case of an apportionment of an amount lower
than the revenue: If true, will perform the apportionment the
best way possible. If false, will do nothing for the
apportionment.
:ivar sequence: The ordering sequence number of this contract's
apportionment.
:ivar settlement_period_id:
:ivar settlement_period_creation_date_time:
"""
model_config = ConfigDict(defer_build=True)
transaction_type: None | str = field(
default=None,
metadata={
"name": "TransactionType",
"type": "Element",
"namespace": "",
},
)
apportionment_items: None | ApportionmentItemsType = field(
default=None,
metadata={
"name": "ApportionmentItems",
"type": "Element",
"namespace": "",
},
)
transaction_rule_details: (
None | TransactionApportionmentAuditExchangeTransactionRuleDetails
) = field(
default=None,
metadata={
"name": "TransactionRuleDetails",
"type": "Element",
"namespace": "",
},
)
settlement_items: None | SettlementItemsType = field(
default=None,
metadata={
"name": "SettlementItems",
"type": "Element",
"namespace": "",
},
)
amount_to_apportion: Decimal = field(
metadata={
"name": "AmountToApportion",
"type": "Element",
"namespace": "",
"required": True,
}
)
transaction_context_id: str = field(
metadata={
"name": "TransactionContextId",
"type": "Element",
"namespace": "",
"required": True,
}
)
media_identification: None | MediaIdentification = field(
default=None,
metadata={
"name": "MediaIdentification",
"type": "Element",
"namespace": "",
},
)
processing_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "ProcessingDate",
"type": "Element",
"namespace": "",
},
)
clearing_version: str = field(
metadata={
"name": "ClearingVersion",
"type": "Element",
"namespace": "",
"required": True,
}
)
best_effort: None | bool = field(
default=None,
metadata={
"name": "BestEffort",
"type": "Element",
"namespace": "",
},
)
sequence: int = field(
metadata={
"name": "Sequence",
"type": "Element",
"namespace": "",
"required": True,
}
)
settlement_period_id: str = field(
metadata={
"name": "SettlementPeriodId",
"type": "Element",
"namespace": "",
"required": True,
}
)
settlement_period_creation_date_time: XmlDateTime = field(
metadata={
"name": "SettlementPeriodCreationDateTime",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: TransactionApportionmentAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
transaction_apportionment_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "TransactionApportionmentXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/TransactionApportionment"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,71 @@
from es_elt.xml.audit_data.cmm.customer import AuditMessages as AuditMessages
from es_elt.xml.audit_data.cmm.customer import AuditMessagesType as AuditMessagesType
from es_elt.xml.audit_data.cmm.customer import AuditMessageType as AuditMessageType
from es_elt.xml.audit_data.cmm.customer import (
CustomerAccountAuditExchange,
CustomerAccountAuditExchangeAttachedMedia,
CustomerAccountAuditExchangeCustomerProfiles,
CustomerAccountAuditExchangeCustomerProfilesCustomerProfile,
CustomerAccountAuditExchangeNotificationChannelConfigurations,
CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfiguration,
CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfigurationNotificationChannelTypeConfigurations,
CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfigurationNotificationChannelTypeConfigurationsNotificationChannelTypeConfiguration,
CustomerMedia,
CustomerStatus,
CustomerType,
)
from es_elt.xml.audit_data.cmm.customer_profile import (
AuditMessages as ProfileAuditMessages,
)
from es_elt.xml.audit_data.cmm.customer_profile import (
AuditMessagesType as ProfileAuditMessagesType,
)
from es_elt.xml.audit_data.cmm.customer_profile import (
AuditMessageType as ProfileAuditMessageType,
)
from es_elt.xml.audit_data.cmm.customer_profile import (
CustomerExplicitProfileAudit,
CustomerProfileAuditExchange,
CustomerProfileAuditExchangeCustomerExplicitProfiles,
CustomerProfileAuditExchangeCustomerImplicitProfileAudit,
ProfileStatus,
)
from es_elt.xml.audit_data.cmm.payment_means import (
AuditMessages as PaymentMeansAuditMessages,
)
from es_elt.xml.audit_data.cmm.payment_means import (
AuditMessagesType as PaymentMeansAuditMessagesType,
)
from es_elt.xml.audit_data.cmm.payment_means import (
AuditMessageType as PaymentMeansAuditMessageType,
)
from es_elt.xml.audit_data.cmm.payment_means import PaymentMeansAuditExchange
__all__ = [
"AuditMessageType",
"AuditMessages",
"AuditMessagesType",
"CustomerAccountAuditExchange",
"CustomerAccountAuditExchangeAttachedMedia",
"CustomerAccountAuditExchangeCustomerProfiles",
"CustomerAccountAuditExchangeCustomerProfilesCustomerProfile",
"CustomerAccountAuditExchangeNotificationChannelConfigurations",
"CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfiguration",
"CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfigurationNotificationChannelTypeConfigurations",
"CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfigurationNotificationChannelTypeConfigurationsNotificationChannelTypeConfiguration",
"CustomerMedia",
"CustomerStatus",
"CustomerType",
"ProfileAuditMessageType",
"ProfileAuditMessages",
"ProfileAuditMessagesType",
"CustomerExplicitProfileAudit",
"CustomerProfileAuditExchange",
"CustomerProfileAuditExchangeCustomerExplicitProfiles",
"CustomerProfileAuditExchangeCustomerImplicitProfileAudit",
"ProfileStatus",
"PaymentMeansAuditMessageType",
"PaymentMeansAuditMessages",
"PaymentMeansAuditMessagesType",
"PaymentMeansAuditExchange",
]

View File

@ -0,0 +1,447 @@
from __future__ import annotations
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDate, XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/Customer"
class CustomerAccountAuditExchangeCustomerProfilesCustomerProfile(BaseModel):
"""
:ivar profile_id: To get profile name, please reference to system
parameters
:ivar start_date: Start date of the profile
:ivar expiry_date: Expiry date of the profile
:ivar update_date: Last update date of the profile
"""
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
profile_id: None | int = field(
default=None,
metadata={
"name": "ProfileId",
"type": "Element",
"namespace": "",
},
)
start_date: None | XmlDate = field(
default=None,
metadata={
"name": "StartDate",
"type": "Element",
"namespace": "",
},
)
expiry_date: None | XmlDate = field(
default=None,
metadata={
"name": "ExpiryDate",
"type": "Element",
"namespace": "",
},
)
update_date: None | XmlDate = field(
default=None,
metadata={
"name": "UpdateDate",
"type": "Element",
"namespace": "",
},
)
class CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfigurationNotificationChannelTypeConfigurationsNotificationChannelTypeConfiguration(
BaseModel
):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
notification_channel_type: None | str = field(
default=None,
metadata={
"name": "NotificationChannelType",
"type": "Element",
"namespace": "",
},
)
activation_status: None | bool = field(
default=None,
metadata={
"name": "ActivationStatus",
"type": "Element",
"namespace": "",
},
)
class CustomerMedia(BaseModel):
model_config = ConfigDict(defer_build=True)
media_id: None | str = field(
default=None,
metadata={
"name": "MediaId",
"type": "Element",
"namespace": "",
},
)
media_serial_number: None | str = field(
default=None,
metadata={
"name": "MediaSerialNumber",
"type": "Element",
"namespace": "",
},
)
media_type_id: None | int = field(
default=None,
metadata={
"name": "MediaTypeId",
"type": "Element",
"namespace": "",
},
)
class CustomerStatus(Enum):
"""
Customer Status enumeration.
"""
INITIALIZED = "INITIALIZED"
ENABLED = "ENABLED"
BLOCKED = "BLOCKED"
CLOSED = "CLOSED"
DISABLED = "DISABLED"
class CustomerType(Enum):
INDIVIDUAL = "INDIVIDUAL"
ORGANIZATION = "ORGANIZATION"
class CustomerAccountAuditExchangeAttachedMedia(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
attached_media: list[CustomerMedia] = field(
default_factory=list,
metadata={
"name": "AttachedMedia",
"type": "Element",
"namespace": "",
},
)
class CustomerAccountAuditExchangeCustomerProfiles(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
customer_profile: list[
CustomerAccountAuditExchangeCustomerProfilesCustomerProfile
] = field(
default_factory=list,
metadata={
"name": "CustomerProfile",
"type": "Element",
"namespace": "",
},
)
class CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfigurationNotificationChannelTypeConfigurations(
BaseModel
):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
notification_channel_type_configuration: list[
CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfigurationNotificationChannelTypeConfigurationsNotificationChannelTypeConfiguration
] = field(
default_factory=list,
metadata={
"name": "NotificationChannelTypeConfiguration",
"type": "Element",
"namespace": "",
},
)
class CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfiguration(
BaseModel
):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
notification_type: None | str = field(
default=None,
metadata={
"name": "NotificationType",
"type": "Element",
"namespace": "",
},
)
notification_channel_type_configurations: CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfigurationNotificationChannelTypeConfigurations = field(
metadata={
"name": "NotificationChannelTypeConfigurations",
"type": "Element",
"namespace": "",
"required": True,
}
)
class CustomerAccountAuditExchangeNotificationChannelConfigurations(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
notification_channel_configuration: list[
CustomerAccountAuditExchangeNotificationChannelConfigurationsNotificationChannelConfiguration
] = field(
default_factory=list,
metadata={
"name": "NotificationChannelConfiguration",
"type": "Element",
"namespace": "",
},
)
class CustomerAccountAuditExchange(BaseModel):
"""
cmm_customers_post: At customer creation cmm_customer_put: At customer
update cmm_customer_delete: At customer delete
cmm_customer_status_post: At customer block it's account
cmm_customer_medias_post: At media attachment to a customer
cmm_customer_media_delete: At media detachment from a customer
cmm_customer_profile_post: At profile attached to customer.
:ivar birth_date: Birth date of the customer
:ivar city: City associated to post code
:ivar country: Country name
:ivar customer_id:
:ivar customer_number:
:ivar customer_type: Type of customer : individual or organization
Dictionary prefix: CustomerType
:ivar nationality: Nationality (country ISO code)
:ivar postal_code: Address post code
:ivar state: State (only USA)
:ivar title: Title of the customer. Mr, Mrs, Miss
:ivar version: Monotonic version of the data
:ivar attached_media: Media attached to customer
:ivar customer_status: Customer Account Status
:ivar date:
:ivar user_id:
:ivar realm:
:ivar notification_channel_configurations: Audit Notification
:ivar customer_profiles: Customer Profiles
"""
model_config = ConfigDict(defer_build=True)
birth_date: None | XmlDate = field(
default=None,
metadata={
"name": "BirthDate",
"type": "Element",
"namespace": "",
},
)
city: None | str = field(
default=None,
metadata={
"name": "City",
"type": "Element",
"namespace": "",
},
)
country: None | str = field(
default=None,
metadata={
"name": "Country",
"type": "Element",
"namespace": "",
},
)
customer_id: None | str = field(
default=None,
metadata={
"name": "CustomerId",
"type": "Element",
"namespace": "",
},
)
customer_number: None | str = field(
default=None,
metadata={
"name": "CustomerNumber",
"type": "Element",
"namespace": "",
},
)
customer_type: None | CustomerType = field(
default=None,
metadata={
"name": "CustomerType",
"type": "Element",
"namespace": "",
},
)
nationality: None | str = field(
default=None,
metadata={
"name": "Nationality",
"type": "Element",
"namespace": "",
},
)
postal_code: None | str = field(
default=None,
metadata={
"name": "PostalCode",
"type": "Element",
"namespace": "",
},
)
state: None | str = field(
default=None,
metadata={
"name": "State",
"type": "Element",
"namespace": "",
},
)
title: None | str = field(
default=None,
metadata={
"name": "Title",
"type": "Element",
"namespace": "",
},
)
version: None | int = field(
default=None,
metadata={
"name": "Version",
"type": "Element",
"namespace": "",
},
)
attached_media: None | CustomerAccountAuditExchangeAttachedMedia = field(
default=None,
metadata={
"name": "AttachedMedia",
"type": "Element",
"namespace": "",
},
)
customer_status: None | CustomerStatus = field(
default=None,
metadata={
"name": "CustomerStatus",
"type": "Element",
"namespace": "",
},
)
date: None | XmlDateTime = field(
default=None,
metadata={
"name": "Date",
"type": "Element",
"namespace": "",
},
)
user_id: None | str = field(
default=None,
metadata={
"name": "UserId",
"type": "Element",
"namespace": "",
},
)
realm: None | str = field(
default=None,
metadata={
"name": "Realm",
"type": "Element",
"namespace": "",
},
)
notification_channel_configurations: (
None | CustomerAccountAuditExchangeNotificationChannelConfigurations
) = field(
default=None,
metadata={
"name": "NotificationChannelConfigurations",
"type": "Element",
"namespace": "",
},
)
customer_profiles: None | CustomerAccountAuditExchangeCustomerProfiles = field(
default=None,
metadata={
"name": "CustomerProfiles",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: CustomerAccountAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
customer_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "CustomerXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/Customer"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,238 @@
from __future__ import annotations
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDate
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/CustomerProfile"
class ProfileStatus(Enum):
"""
Customer profile status enumeration.
"""
REJECTED = "REJECTED"
PENDING_VALIDATION = "PENDING_VALIDATION"
VALIDATED = "VALIDATED"
EXPIRED = "EXPIRED"
class CustomerExplicitProfileAudit(BaseModel):
model_config = ConfigDict(defer_build=True)
profile_id: int = field(
metadata={
"name": "ProfileId",
"type": "Element",
"namespace": "",
"required": True,
}
)
profile_number: str = field(
metadata={
"name": "ProfileNumber",
"type": "Element",
"namespace": "",
"required": True,
}
)
start_validity_date: None | XmlDate = field(
default=None,
metadata={
"name": "StartValidityDate",
"type": "Element",
"namespace": "",
},
)
end_validity_date: None | XmlDate = field(
default=None,
metadata={
"name": "EndValidityDate",
"type": "Element",
"namespace": "",
},
)
profile_status: None | ProfileStatus = field(
default=None,
metadata={
"name": "ProfileStatus",
"type": "Element",
"namespace": "",
},
)
class CustomerProfileAuditExchangeCustomerImplicitProfileAudit(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
profile_id: None | str = field(
default=None,
metadata={
"name": "ProfileId",
"type": "Element",
"namespace": "",
},
)
profile_number: str = field(
metadata={
"name": "ProfileNumber",
"type": "Element",
"namespace": "",
"required": True,
}
)
customer_birth_date: XmlDate = field(
metadata={
"name": "CustomerBirthDate",
"type": "Element",
"namespace": "",
"required": True,
}
)
profile_status: None | ProfileStatus = field(
default=None,
metadata={
"name": "ProfileStatus",
"type": "Element",
"namespace": "",
},
)
class CustomerProfileAuditExchangeCustomerExplicitProfiles(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
customer_explicit_profile: list[CustomerExplicitProfileAudit] = field(
default_factory=list,
metadata={
"name": "CustomerExplicitProfile",
"type": "Element",
"namespace": "",
},
)
class CustomerProfileAuditExchange(BaseModel):
"""
cmm_customers_profile_add: At customer profile creation
cmm_customers_profile_edit: At customer profile update
cmm_customers_profile_validation: At customer profile validation
cmm_customers_profile_remove: At customer profile delete
cmm_customers_profile_all_remove: At customer profile delete all.
:ivar customer_id:
:ivar request_date:
:ivar update_date:
:ivar comment:
:ivar customer_explicit_profiles: Customer Explicit Profile
:ivar customer_implicit_profile_audit: Customer Implicit Profile
"""
model_config = ConfigDict(defer_build=True)
customer_id: str = field(
metadata={
"name": "CustomerId",
"type": "Element",
"namespace": "",
"required": True,
}
)
request_date: None | XmlDate = field(
default=None,
metadata={
"name": "RequestDate",
"type": "Element",
"namespace": "",
},
)
update_date: None | XmlDate = field(
default=None,
metadata={
"name": "UpdateDate",
"type": "Element",
"namespace": "",
},
)
comment: None | str = field(
default=None,
metadata={
"name": "Comment",
"type": "Element",
"namespace": "",
},
)
customer_explicit_profiles: (
None | CustomerProfileAuditExchangeCustomerExplicitProfiles
) = field(
default=None,
metadata={
"name": "CustomerExplicitProfiles",
"type": "Element",
"namespace": "",
},
)
customer_implicit_profile_audit: (
None | CustomerProfileAuditExchangeCustomerImplicitProfileAudit
) = field(
default=None,
metadata={
"name": "CustomerImplicitProfileAudit",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: CustomerProfileAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
customer_profile_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "CustomerProfileXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/CustomerProfile"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,93 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/PaymentMeans"
class PaymentMeansAuditExchange(BaseModel):
"""
cmm_customer_paymentAgreements_post: At payment agreement creation
cmm_customer_paymentAgreement_delete: At payment agreement deletion
Used to export payment means of a customer for analytics.
:ivar customer_id:
:ivar payment_mean_id:
:ivar version: Monotonic version of the data
"""
model_config = ConfigDict(defer_build=True)
customer_id: None | str = field(
default=None,
metadata={
"name": "CustomerId",
"type": "Element",
"namespace": "",
},
)
payment_mean_id: None | str = field(
default=None,
metadata={
"name": "PaymentMeanId",
"type": "Element",
"namespace": "",
},
)
version: None | int = field(
default=None,
metadata={
"name": "Version",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: PaymentMeansAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
payment_means_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "PaymentMeansXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/PaymentMeans"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,75 @@
from es_elt.xml.audit_data.daq.invalid_device_transaction import (
AuditMessages as DeviceTransactionAuditMessages,
)
from es_elt.xml.audit_data.daq.invalid_device_transaction import (
AuditMessagesType as DeviceTransactionAuditMessagesType,
)
from es_elt.xml.audit_data.daq.invalid_device_transaction import (
AuditMessageType as DeviceTransactionAuditMessageType,
)
from es_elt.xml.audit_data.daq.invalid_device_transaction import (
InvalidDeviceTransaction,
InvalidDeviceTransactionErrorCodes,
)
from es_elt.xml.audit_data.daq.invalid_message_batch import (
AuditMessages as MessageBatchAuditMessages,
)
from es_elt.xml.audit_data.daq.invalid_message_batch import (
AuditMessagesType as MessageBatchAuditMessagesType,
)
from es_elt.xml.audit_data.daq.invalid_message_batch import (
AuditMessageType as MessageBatchAuditMessageType,
)
from es_elt.xml.audit_data.daq.invalid_message_batch import (
InvalidMessageBatchAuditExchange,
)
from es_elt.xml.audit_data.daq.transaction_extended_data import (
AuditMessages as TransactionExtendedAuditMessages,
)
from es_elt.xml.audit_data.daq.transaction_extended_data import (
AuditMessagesType as TransactionExtendedAuditMessagesType,
)
from es_elt.xml.audit_data.daq.transaction_extended_data import (
AuditMessageType as TransactionExtendedAuditMessageType,
)
from es_elt.xml.audit_data.daq.transaction_extended_data import (
EmvTagType,
TransactionExtendedDataAuditExchange,
)
from es_elt.xml.audit_data.daq.validator_errors import (
AuditMessages as ValidatorErrorsAuditMessages,
)
from es_elt.xml.audit_data.daq.validator_errors import (
AuditMessagesType as ValidatorErrorsAuditMessagesType,
)
from es_elt.xml.audit_data.daq.validator_errors import (
AuditMessageType as ValidatorErrorsAuditMessageType,
)
from es_elt.xml.audit_data.daq.validator_errors import (
ValidatorErrorExchange,
ValidatorErrorsExchange,
ValidatorErrorsExchangeValidatorErrorExchanges,
)
__all__ = [
"DeviceTransactionAuditMessageType",
"DeviceTransactionAuditMessages",
"DeviceTransactionAuditMessagesType",
"InvalidDeviceTransaction",
"InvalidDeviceTransactionErrorCodes",
"MessageBatchAuditMessageType",
"MessageBatchAuditMessages",
"MessageBatchAuditMessagesType",
"InvalidMessageBatchAuditExchange",
"TransactionExtendedAuditMessageType",
"TransactionExtendedAuditMessages",
"TransactionExtendedAuditMessagesType",
"EmvTagType",
"TransactionExtendedDataAuditExchange",
"ValidatorErrorsAuditMessageType",
"ValidatorErrorsAuditMessages",
"ValidatorErrorsAuditMessagesType",
"ValidatorErrorExchange",
"ValidatorErrorsExchange",
"ValidatorErrorsExchangeValidatorErrorExchanges",
]

View File

@ -0,0 +1,146 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/InvalidDeviceTransaction"
class InvalidDeviceTransactionErrorCodes(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
error_code: list[str] = field(
default_factory=list,
metadata={
"name": "ErrorCode",
"type": "Element",
"namespace": "",
},
)
class InvalidDeviceTransaction(BaseModel):
"""
daq_invalid_device_transaction: Represent an exception that happened
while a device post a message to DAQ, but its validation failed.
:ivar message:
:ivar transaction_id:
:ivar generation_date: Date and time of transaction's generation
:ivar device_tsn: Sequence number allocated to the transaction by
the device (unique by deviceId)
:ivar device_id: Device technical identifier
:ivar device_transaction_uid: Unique identifier allocated to the
transaction by the device (unique by deviceId).
:ivar error_codes:
"""
model_config = ConfigDict(defer_build=True)
message: None | str = field(
default=None,
metadata={
"name": "Message",
"type": "Element",
"namespace": "",
},
)
transaction_id: str = field(
metadata={
"name": "TransactionId",
"type": "Element",
"namespace": "",
"required": True,
}
)
generation_date: XmlDateTime = field(
metadata={
"name": "GenerationDate",
"type": "Element",
"namespace": "",
"required": True,
}
)
device_tsn: None | int = field(
default=None,
metadata={
"name": "DeviceTSN",
"type": "Element",
"namespace": "",
},
)
device_id: str = field(
metadata={
"name": "DeviceId",
"type": "Element",
"namespace": "",
"required": True,
}
)
device_transaction_uid: None | str = field(
default=None,
metadata={
"name": "DeviceTransactionUid",
"type": "Element",
"namespace": "",
},
)
error_codes: None | InvalidDeviceTransactionErrorCodes = field(
default=None,
metadata={
"name": "ErrorCodes",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: InvalidDeviceTransaction = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
invalid_device_transaction_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "InvalidDeviceTransactionXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/InvalidDeviceTransaction"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,80 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
from es_elt.xml.common.transaction_exception_type import TransactionExceptionType
__NAMESPACE__ = "http://www.thales.dc/InvalidMessageBatch"
class InvalidMessageBatchAuditExchange(BaseModel):
"""
daq_invalid_message_batch: At reception of an invalid message batch.
"""
model_config = ConfigDict(defer_build=True)
exception_type: TransactionExceptionType = field(
metadata={
"name": "ExceptionType",
"type": "Element",
"namespace": "",
"required": True,
}
)
raw: str = field(
metadata={
"name": "Raw",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: InvalidMessageBatchAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
invalid_message_batch_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "InvalidMessageBatchXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/InvalidMessageBatch"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,228 @@
from __future__ import annotations
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDate, XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/TransactionExtendedData"
class EmvTagType(Enum):
PLASTIC_CARD = "PLASTIC_CARD"
MOBILE = "MOBILE"
WEARABLE = "WEARABLE"
UNREFERENCED = "UNREFERENCED"
OTHER = "OTHER"
class TransactionExtendedDataAuditExchange(BaseModel):
"""
:ivar media_serial_number:
:ivar issuer_country_code: Issuer Country Code in accordance with
ISO 3166 (num-3)
:ivar transaction_currency_code: Transaction Currency Code (from EMV
tag 5F2A) according to ISO 4217
:ivar payment_account_reference: TODO
:ivar issuer_name: Issuer's name
:ivar card_sub_type: Card's sub-type
:ivar payment_scheme_identification_mnemonic: Mnemonic according to
EMV tag 50
:ivar expiry_date: Validity end date of the travel event to be
processed
:ivar transaction_id: Transaction unique identifier. All duplicates
transactions got the same value. This field can be used either
by device message batches or bo message batches. It is set by
DAQ after transaction hash calculation.
:ivar bo_transaction_uid: ID set on transactions by Transcity system
used for hash calculation. It allows to identify duplicate bo
messages.
:ivar device_transaction_uid: Unique identifier allocated to the
transaction by the device (unique by deviceId)
:ivar generation_date: Date and time of transaction's generation
:ivar device_tsn: Sequence number allocated to the transaction by
the device (unique by deviceId)
:ivar device_id: Device technical identifier
:ivar ticketing_version:
:ivar form_factor: Type of media used
"""
model_config = ConfigDict(defer_build=True)
media_serial_number: None | str = field(
default=None,
metadata={
"name": "MediaSerialNumber",
"type": "Element",
"namespace": "",
},
)
issuer_country_code: None | int = field(
default=None,
metadata={
"name": "IssuerCountryCode",
"type": "Element",
"namespace": "",
},
)
transaction_currency_code: None | str = field(
default=None,
metadata={
"name": "TransactionCurrencyCode",
"type": "Element",
"namespace": "",
},
)
payment_account_reference: None | str = field(
default=None,
metadata={
"name": "PaymentAccountReference",
"type": "Element",
"namespace": "",
},
)
issuer_name: None | str = field(
default=None,
metadata={
"name": "IssuerName",
"type": "Element",
"namespace": "",
},
)
card_sub_type: None | str = field(
default=None,
metadata={
"name": "CardSubType",
"type": "Element",
"namespace": "",
},
)
payment_scheme_identification_mnemonic: None | str = field(
default=None,
metadata={
"name": "PaymentSchemeIdentificationMnemonic",
"type": "Element",
"namespace": "",
},
)
expiry_date: None | XmlDate = field(
default=None,
metadata={
"name": "ExpiryDate",
"type": "Element",
"namespace": "",
},
)
transaction_id: str = field(
metadata={
"name": "TransactionId",
"type": "Element",
"namespace": "",
"required": True,
}
)
bo_transaction_uid: None | str = field(
default=None,
metadata={
"name": "BoTransactionUID",
"type": "Element",
"namespace": "",
},
)
device_transaction_uid: None | str = field(
default=None,
metadata={
"name": "DeviceTransactionUID",
"type": "Element",
"namespace": "",
},
)
generation_date: XmlDateTime = field(
metadata={
"name": "GenerationDate",
"type": "Element",
"namespace": "",
"required": True,
}
)
device_tsn: None | int = field(
default=None,
metadata={
"name": "DeviceTSN",
"type": "Element",
"namespace": "",
},
)
device_id: None | str = field(
default=None,
metadata={
"name": "DeviceId",
"type": "Element",
"namespace": "",
},
)
ticketing_version: None | str = field(
default=None,
metadata={
"name": "TicketingVersion",
"type": "Element",
"namespace": "",
},
)
form_factor: None | EmvTagType = field(
default=None,
metadata={
"name": "FormFactor",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: TransactionExtendedDataAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
transaction_extended_data_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "TransactionExtendedDataXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/TransactionExtendedData"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,108 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/ValidatorErrors"
class ValidatorErrorExchange(BaseModel):
model_config = ConfigDict(defer_build=True)
code: str = field(
metadata={
"name": "Code",
"type": "Element",
"namespace": "",
"required": True,
}
)
description: str = field(
metadata={
"name": "Description",
"type": "Element",
"namespace": "",
"required": True,
}
)
class ValidatorErrorsExchangeValidatorErrorExchanges(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
validator_error_exchange: list[ValidatorErrorExchange] = field(
default_factory=list,
metadata={
"name": "ValidatorErrorExchange",
"type": "Element",
"namespace": "",
},
)
class ValidatorErrorsExchange(BaseModel):
"""
daq_validations_errors_description: Represent an exception that
happened while a device post a message to DAQ, but its validation
failed.
"""
model_config = ConfigDict(defer_build=True)
validator_error_exchanges: ValidatorErrorsExchangeValidatorErrorExchanges = field(
metadata={
"name": "ValidatorErrorExchanges",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: ValidatorErrorsExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
validator_errors_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "ValidatorErrorsXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/ValidatorErrors"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,49 @@
from es_elt.xml.audit_data.dem.device import AuditMessages as AuditMessages
from es_elt.xml.audit_data.dem.device import AuditMessagesType as AuditMessagesType
from es_elt.xml.audit_data.dem.device import AuditMessageType as AuditMessageType
from es_elt.xml.audit_data.dem.device import (
DeviceAuditExchange,
DeviceAuditExchangeDeviceSamData,
DeviceAuditExchangeTags,
DeviceSam,
DeviceSamStatus,
DeviceSamType,
DeviceStatus,
LocalizedDeviceSamStatus,
LocalizedDeviceSamType,
)
from es_elt.xml.audit_data.dem.device_conf_items_version_update import (
AuditMessages as ConfItemsVersionUpdateAuditMessages,
)
from es_elt.xml.audit_data.dem.device_conf_items_version_update import (
AuditMessagesType as ConfItemsVersionUpdateAuditMessagesType,
)
from es_elt.xml.audit_data.dem.device_conf_items_version_update import (
AuditMessageType as ConfItemsVersionUpdateAuditMessageType,
)
from es_elt.xml.audit_data.dem.device_conf_items_version_update import (
DeviceConfItemsVersionUpdateAuditExchange,
DeviceConfItemVersion,
DeviceConfItemVersions,
)
__all__ = [
"AuditMessageType",
"AuditMessages",
"AuditMessagesType",
"DeviceAuditExchange",
"DeviceAuditExchangeDeviceSamData",
"DeviceAuditExchangeTags",
"DeviceSam",
"DeviceSamStatus",
"DeviceSamType",
"DeviceStatus",
"LocalizedDeviceSamStatus",
"LocalizedDeviceSamType",
"ConfItemsVersionUpdateAuditMessageType",
"ConfItemsVersionUpdateAuditMessages",
"ConfItemsVersionUpdateAuditMessagesType",
"DeviceConfItemVersion",
"DeviceConfItemVersions",
"DeviceConfItemsVersionUpdateAuditExchange",
]

View File

@ -0,0 +1,294 @@
from __future__ import annotations
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDuration
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/Device"
class DeviceAuditExchangeTags(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
tag: list[str] = field(
default_factory=list,
metadata={
"name": "Tag",
"type": "Element",
"namespace": "",
},
)
class DeviceSamStatus(Enum):
UNKNOWN = "UNKNOWN"
VALID = "VALID"
REVOKED = "REVOKED"
class DeviceSamType(Enum):
TICKETING = "TICKETING"
BANKING = "BANKING"
class DeviceStatus(Enum):
IN_OPERATION = "IN_OPERATION"
OUT_OF_OPERATION = "OUT_OF_OPERATION"
DENIED = "DENIED"
class LocalizedDeviceSamStatus(BaseModel):
model_config = ConfigDict(defer_build=True)
value: DeviceSamStatus = field(
metadata={
"name": "Value",
"type": "Element",
"namespace": "",
"required": True,
}
)
label: str = field(
metadata={
"name": "Label",
"type": "Element",
"namespace": "",
"required": True,
}
)
class LocalizedDeviceSamType(BaseModel):
model_config = ConfigDict(defer_build=True)
value: DeviceSamType = field(
metadata={
"name": "Value",
"type": "Element",
"namespace": "",
"required": True,
}
)
label: str = field(
metadata={
"name": "Label",
"type": "Element",
"namespace": "",
"required": True,
}
)
class DeviceSam(BaseModel):
model_config = ConfigDict(defer_build=True)
device_sam_id: None | str = field(
default=None,
metadata={
"name": "DeviceSamId",
"type": "Element",
"namespace": "",
},
)
device_sam_status: None | LocalizedDeviceSamStatus = field(
default=None,
metadata={
"name": "DeviceSamStatus",
"type": "Element",
"namespace": "",
},
)
device_sam_type: None | LocalizedDeviceSamType = field(
default=None,
metadata={
"name": "DeviceSamType",
"type": "Element",
"namespace": "",
},
)
class DeviceAuditExchangeDeviceSamData(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
device_sam_data: list[DeviceSam] = field(
default_factory=list,
metadata={
"name": "DeviceSamData",
"type": "Element",
"namespace": "",
},
)
class DeviceAuditExchange(BaseModel):
"""
dem_devices_post: At device creation dem_device_post: At device update
dem_device_configuration_upload_post: At device configuration upload
Used to export payment means of a customer for analytics.
:ivar business_entity_id: Dictionary prefix: BusinessEntity
:ivar device_id: Device technical identifier
:ivar device_number: Device number
:ivar device_status: Dictionary prefix: DeviceStatus
:ivar device_type_id: Dictionary prefix: DeviceType
:ivar discrepancy_duration: Duration since discrepancyStatus has
changed from/to value = NO_DISCREPANCY
:ivar fare_point_id: Dictionary prefix: FarePointId
:ivar mobile: Is device mobile or fixed
:ivar offline: Is device offline
:ivar stock_entity_id: Id of the stock entity to which the device is
attached (can be empty)
:ivar device_sam_data: List of SAM associated to device
:ivar tags: List of tags associated to device
"""
model_config = ConfigDict(defer_build=True)
business_entity_id: str = field(
metadata={
"name": "BusinessEntityId",
"type": "Element",
"namespace": "",
"required": True,
}
)
device_id: str = field(
metadata={
"name": "DeviceId",
"type": "Element",
"namespace": "",
"required": True,
}
)
device_number: str = field(
metadata={
"name": "DeviceNumber",
"type": "Element",
"namespace": "",
"required": True,
}
)
device_status: DeviceStatus = field(
metadata={
"name": "DeviceStatus",
"type": "Element",
"namespace": "",
"required": True,
}
)
device_type_id: int = field(
metadata={
"name": "DeviceTypeId",
"type": "Element",
"namespace": "",
"required": True,
}
)
discrepancy_duration: None | XmlDuration = field(
default=None,
metadata={
"name": "DiscrepancyDuration",
"type": "Element",
"namespace": "",
},
)
fare_point_id: int = field(
metadata={
"name": "FarePointId",
"type": "Element",
"namespace": "",
"required": True,
}
)
mobile: bool = field(
metadata={
"name": "Mobile",
"type": "Element",
"namespace": "",
"required": True,
}
)
offline: bool = field(
metadata={
"name": "Offline",
"type": "Element",
"namespace": "",
"required": True,
}
)
stock_entity_id: None | str = field(
default=None,
metadata={
"name": "StockEntityId",
"type": "Element",
"namespace": "",
},
)
device_sam_data: None | DeviceAuditExchangeDeviceSamData = field(
default=None,
metadata={
"name": "DeviceSamData",
"type": "Element",
"namespace": "",
},
)
tags: None | DeviceAuditExchangeTags = field(
default=None,
metadata={
"name": "Tags",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: DeviceAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
device_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "DeviceXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/Device"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,143 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/DeviceConfItemsVersionUpdate"
class DeviceConfItemVersion(BaseModel):
model_config = ConfigDict(defer_build=True)
conf_item_type: str = field(
metadata={
"name": "ConfItemType",
"type": "Element",
"namespace": "",
"required": True,
}
)
conf_item_version: str = field(
metadata={
"name": "ConfItemVersion",
"type": "Element",
"namespace": "",
"required": True,
}
)
class DeviceConfItemVersions(BaseModel):
model_config = ConfigDict(defer_build=True)
device_conf_item_version: list[DeviceConfItemVersion] = field(
default_factory=list,
metadata={
"name": "DeviceConfItemVersion",
"type": "Element",
"namespace": "",
"min_occurs": 1,
},
)
class DeviceConfItemsVersionUpdateAuditExchange(BaseModel):
"""
dem_conf_items_version_update: At device configuration items update.
:ivar device_id:
:ivar device_name:
:ivar fare_point_id: Dictionary prefix: FarePointId
:ivar reception_date:
:ivar device_conf_item_versions:
"""
model_config = ConfigDict(defer_build=True)
device_id: str = field(
metadata={
"name": "DeviceId",
"type": "Element",
"namespace": "",
"required": True,
}
)
device_name: str = field(
metadata={
"name": "DeviceName",
"type": "Element",
"namespace": "",
"required": True,
}
)
fare_point_id: int = field(
metadata={
"name": "FarePointId",
"type": "Element",
"namespace": "",
"required": True,
}
)
reception_date: XmlDateTime = field(
metadata={
"name": "ReceptionDate",
"type": "Element",
"namespace": "",
"required": True,
}
)
device_conf_item_versions: None | DeviceConfItemVersions = field(
default=None,
metadata={
"name": "DeviceConfItemVersions",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: DeviceConfItemsVersionUpdateAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
device_conf_items_version_update_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "DeviceConfItemsVersionUpdateXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/DeviceConfItemsVersionUpdate"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,45 @@
from es_elt.xml.audit_data.dlm.deny_action import AuditMessages as ActionAuditMessages
from es_elt.xml.audit_data.dlm.deny_action import (
AuditMessagesType as ActionAuditMessagesType,
)
from es_elt.xml.audit_data.dlm.deny_action import (
AuditMessageType as ActionAuditMessageType,
)
from es_elt.xml.audit_data.dlm.deny_action import (
ContractDenyActionExchange,
DenyActionAuditExchange,
DenyActionAuditExchangeContractsDenied,
DenyActionAuditExchangeMediaDenyActionsInformation,
LocalizedDenyActionStatus,
LocalizedDenyReasonCode,
MediaDenyActionExchange,
MediaDenyActionInformationExchange,
)
from es_elt.xml.audit_data.dlm.issuer_deny import ActionStatus
from es_elt.xml.audit_data.dlm.issuer_deny import AuditMessages as IssuerAuditMessages
from es_elt.xml.audit_data.dlm.issuer_deny import (
AuditMessagesType as IssuerAuditMessagesType,
)
from es_elt.xml.audit_data.dlm.issuer_deny import (
AuditMessageType as IssuerAuditMessageType,
)
from es_elt.xml.audit_data.dlm.issuer_deny import IssuerDenyAuditExchange
__all__ = [
"ActionAuditMessageType",
"ActionAuditMessages",
"ActionAuditMessagesType",
"ContractDenyActionExchange",
"DenyActionAuditExchange",
"DenyActionAuditExchangeContractsDenied",
"DenyActionAuditExchangeMediaDenyActionsInformation",
"LocalizedDenyActionStatus",
"LocalizedDenyReasonCode",
"MediaDenyActionExchange",
"MediaDenyActionInformationExchange",
"ActionStatus",
"IssuerAuditMessageType",
"IssuerAuditMessages",
"IssuerAuditMessagesType",
"IssuerDenyAuditExchange",
]

View File

@ -0,0 +1,327 @@
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.deny_action_status import DenyActionStatus
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/DenyAction"
class LocalizedDenyReasonCode(BaseModel):
model_config = ConfigDict(defer_build=True)
value: str = field(
metadata={
"name": "Value",
"type": "Element",
"namespace": "",
"required": True,
}
)
label: str = field(
metadata={
"name": "Label",
"type": "Element",
"namespace": "",
"required": True,
}
)
class ContractDenyActionExchange(BaseModel):
model_config = ConfigDict(defer_build=True)
action_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "ActionDate",
"type": "Element",
"namespace": "",
},
)
contract_deny_list_sequence_number: None | int = field(
default=None,
metadata={
"name": "ContractDenyListSequenceNumber",
"type": "Element",
"namespace": "",
},
)
contract_serial_number: int = field(
metadata={
"name": "ContractSerialNumber",
"type": "Element",
"namespace": "",
"required": True,
}
)
deny_reason: None | LocalizedDenyReasonCode = field(
default=None,
metadata={
"name": "DenyReason",
"type": "Element",
"namespace": "",
},
)
invalidation_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "InvalidationDate",
"type": "Element",
"namespace": "",
},
)
reactivation_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "ReactivationDate",
"type": "Element",
"namespace": "",
},
)
suspension_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "SuspensionDate",
"type": "Element",
"namespace": "",
},
)
class LocalizedDenyActionStatus(BaseModel):
model_config = ConfigDict(defer_build=True)
value: None | DenyActionStatus = field(
default=None,
metadata={
"name": "Value",
"type": "Element",
"namespace": "",
},
)
label: None | str = field(
default=None,
metadata={
"name": "Label",
"type": "Element",
"namespace": "",
},
)
class DenyActionAuditExchangeContractsDenied(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
contracts_denied: list[ContractDenyActionExchange] = field(
default_factory=list,
metadata={
"name": "ContractsDenied",
"type": "Element",
"namespace": "",
},
)
class MediaDenyActionInformationExchange(BaseModel):
model_config = ConfigDict(defer_build=True)
deny_reason: None | LocalizedDenyReasonCode = field(
default=None,
metadata={
"name": "DenyReason",
"type": "Element",
"namespace": "",
},
)
status: None | LocalizedDenyActionStatus = field(
default=None,
metadata={
"name": "Status",
"type": "Element",
"namespace": "",
},
)
class MediaDenyActionExchange(BaseModel):
model_config = ConfigDict(defer_build=True)
media_deny_action_information: None | MediaDenyActionInformationExchange = field(
default=None,
metadata={
"name": "MediaDenyActionInformation",
"type": "Element",
"namespace": "",
},
)
occurrence_date_time: None | XmlDateTime = field(
default=None,
metadata={
"name": "OccurrenceDateTime",
"type": "Element",
"namespace": "",
},
)
observation_date_time: None | XmlDateTime = field(
default=None,
metadata={
"name": "ObservationDateTime",
"type": "Element",
"namespace": "",
},
)
class DenyActionAuditExchangeMediaDenyActionsInformation(BaseModel):
class Meta:
global_type = False
model_config = ConfigDict(defer_build=True)
media_deny_actions_information: list[MediaDenyActionExchange] = field(
default_factory=list,
metadata={
"name": "MediaDenyActionsInformation",
"type": "Element",
"namespace": "",
},
)
class DenyActionAuditExchange(BaseModel):
"""
:ivar active: If true, this deny action is still active (for at
least a contract or the media
:ivar closure_date:
:ivar creation_date:
:ivar deny_action_id:
:ivar payment_id:
:ivar media_deny_actions_information: List of deny action for the
Media.
:ivar media_id:
:ivar media_serial_number:
:ivar contracts_denied:
"""
model_config = ConfigDict(defer_build=True)
active: bool = field(
metadata={
"name": "Active",
"type": "Element",
"namespace": "",
"required": True,
}
)
closure_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "ClosureDate",
"type": "Element",
"namespace": "",
},
)
creation_date: XmlDateTime = field(
metadata={
"name": "CreationDate",
"type": "Element",
"namespace": "",
"required": True,
}
)
deny_action_id: str = field(
metadata={
"name": "DenyActionId",
"type": "Element",
"namespace": "",
"required": True,
}
)
payment_id: None | str = field(
default=None,
metadata={
"name": "PaymentId",
"type": "Element",
"namespace": "",
},
)
media_deny_actions_information: (
None | DenyActionAuditExchangeMediaDenyActionsInformation
) = field(
default=None,
metadata={
"name": "MediaDenyActionsInformation",
"type": "Element",
"namespace": "",
},
)
media_id: None | str = field(
default=None,
metadata={
"name": "MediaId",
"type": "Element",
"namespace": "",
},
)
media_serial_number: str = field(
metadata={
"name": "MediaSerialNumber",
"type": "Element",
"namespace": "",
"required": True,
}
)
contracts_denied: None | DenyActionAuditExchangeContractsDenied = field(
default=None,
metadata={
"name": "ContractsDenied",
"type": "Element",
"namespace": "",
},
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: DenyActionAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
deny_action_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "DenyActionXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/DenyAction"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,99 @@
from __future__ import annotations
from enum import Enum
from pydantic import BaseModel, ConfigDict
from xsdata.models.datatype import XmlDateTime
from xsdata_pydantic.fields import field
from es_elt.xml.common.headers import HeadersType
__NAMESPACE__ = "http://www.thales.dc/IssuerDeny"
class ActionStatus(Enum):
ACTIVE = "ACTIVE"
CANCELED = "CANCELED"
class IssuerDenyAuditExchange(BaseModel):
model_config = ConfigDict(defer_build=True)
modification_date: None | XmlDateTime = field(
default=None,
metadata={
"name": "ModificationDate",
"type": "Element",
"namespace": "",
},
)
agent_number: None | str = field(
default=None,
metadata={
"name": "AgentNumber",
"type": "Element",
"namespace": "",
},
)
card_issuer_number: str = field(
metadata={
"name": "CardIssuerNumber",
"type": "Element",
"namespace": "",
"required": True,
}
)
status: ActionStatus = field(
metadata={
"name": "Status",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessageType(BaseModel):
model_config = ConfigDict(defer_build=True)
headers: None | HeadersType = field(
default=None,
metadata={
"name": "Headers",
"type": "Element",
"namespace": "",
},
)
payload: IssuerDenyAuditExchange = field(
metadata={
"name": "Payload",
"type": "Element",
"namespace": "",
"required": True,
}
)
class AuditMessagesType(BaseModel):
model_config = ConfigDict(defer_build=True)
audit_message: list[AuditMessageType] = field(
default_factory=list,
metadata={
"name": "AuditMessage",
"type": "Element",
"namespace": "",
},
)
issuer_deny_xsd_version: str = field(
const=True,
default="1.0",
metadata={
"name": "IssuerDenyXsdVersion",
"type": "Attribute",
},
)
class AuditMessages(AuditMessagesType):
class Meta:
namespace = "http://www.thales.dc/IssuerDeny"
model_config = ConfigDict(defer_build=True)

View File

@ -0,0 +1,324 @@
from es_elt.xml.audit_data.mam.abt_purse import AbtPurseAuditExchange
from es_elt.xml.audit_data.mam.abt_purse import AuditMessages as AbtPurseAuditMessages
from es_elt.xml.audit_data.mam.abt_purse import (
AuditMessagesType as AbtPurseAuditMessagesType,
)
from es_elt.xml.audit_data.mam.abt_purse import (
AuditMessageType as AbtPurseAuditMessageType,
)
from es_elt.xml.audit_data.mam.abt_purse import OperationType, PurseFamily
from es_elt.xml.audit_data.mam.bulk_adjustment_execution_result import (
AuditMessages as BulkAdjustmentExecutionResultAuditMessages,
)
from es_elt.xml.audit_data.mam.bulk_adjustment_execution_result import (
AuditMessagesType as BulkAdjustmentExecutionResultAuditMessagesType,
)
from es_elt.xml.audit_data.mam.bulk_adjustment_execution_result import (
AuditMessageType as BulkAdjustmentExecutionResultAuditMessageType,
)
from es_elt.xml.audit_data.mam.bulk_adjustment_execution_result import (
BulkAdjustmentExecutionResultAuditExchange,
)
from es_elt.xml.audit_data.mam.bulk_adjustment_execution_start import (
AuditMessages as StartAuditMessages,
)
from es_elt.xml.audit_data.mam.bulk_adjustment_execution_start import (
AuditMessagesType as StartAuditMessagesType,
)
from es_elt.xml.audit_data.mam.bulk_adjustment_execution_start import (
AuditMessageType as StartAuditMessageType,
)
from es_elt.xml.audit_data.mam.bulk_adjustment_execution_start import (
BulkAdjustmentExecutionStartAuditExchange,
)
from es_elt.xml.audit_data.mam.contract_transfer import (
AuditMessages as ContractTransferAuditMessages,
)
from es_elt.xml.audit_data.mam.contract_transfer import (
AuditMessagesType as ContractTransferAuditMessagesType,
)
from es_elt.xml.audit_data.mam.contract_transfer import (
AuditMessageType as ContractTransferAuditMessageType,
)
from es_elt.xml.audit_data.mam.contract_transfer import ContractTransferAuditExchange
from es_elt.xml.audit_data.mam.discarded_travel_event import (
AuditMessages as DiscardedTravelEventAuditMessages,
)
from es_elt.xml.audit_data.mam.discarded_travel_event import (
AuditMessagesType as DiscardedTravelEventAuditMessagesType,
)
from es_elt.xml.audit_data.mam.discarded_travel_event import (
AuditMessageType as DiscardedTravelEventAuditMessageType,
)
from es_elt.xml.audit_data.mam.discarded_travel_event import (
DiscardedTravelEventAuditExchange,
)
from es_elt.xml.audit_data.mam.media import AuditMessages as MediaAuditMessages
from es_elt.xml.audit_data.mam.media import AuditMessagesType as MediaAuditMessagesType
from es_elt.xml.audit_data.mam.media import AuditMessageType as MediaAuditMessageType
from es_elt.xml.audit_data.mam.media import (
MediaAuditExchange,
MediaStatus,
TransitContracts,
)
from es_elt.xml.audit_data.mam.media_consumption_adjustment import (
AuditMessages as ConsumptionAdjustmentAuditMessages,
)
from es_elt.xml.audit_data.mam.media_consumption_adjustment import (
AuditMessagesType as ConsumptionAdjustmentAuditMessagesType,
)
from es_elt.xml.audit_data.mam.media_consumption_adjustment import (
AuditMessageType as ConsumptionAdjustmentAuditMessageType,
)
from es_elt.xml.audit_data.mam.media_consumption_adjustment import (
MediaConsumptionAdjustmentAuditExchange,
MediaConsumptionAdjustmentAuditExchangeExcessFareAdjustment,
MediaConsumptionAdjustmentAuditExchangeMissingTravelEventAdjustment,
)
from es_elt.xml.audit_data.mam.media_consumption_adjustment_cancellation import (
AuditMessages as CancellationAuditMessages,
)
from es_elt.xml.audit_data.mam.media_consumption_adjustment_cancellation import (
AuditMessagesType as CancellationAuditMessagesType,
)
from es_elt.xml.audit_data.mam.media_consumption_adjustment_cancellation import (
AuditMessageType as CancellationAuditMessageType,
)
from es_elt.xml.audit_data.mam.media_consumption_adjustment_cancellation import (
MediaConsumptionAdjustmentCancellationAuditExchange,
MediaConsumptionAdjustmentCancellationAuditExchangeExcessFareAdjustment,
MediaConsumptionAdjustmentCancellationAuditExchangeMissingTravelEventAdjustment,
)
from es_elt.xml.audit_data.mam.media_consumptions import (
AccessStatus,
AddedJourney,
AddedJourneys,
AddedLeg,
AddedLegs,
)
from es_elt.xml.audit_data.mam.media_consumptions import (
AuditMessages as ConsumptionsAuditMessages,
)
from es_elt.xml.audit_data.mam.media_consumptions import (
AuditMessagesType as ConsumptionsAuditMessagesType,
)
from es_elt.xml.audit_data.mam.media_consumptions import (
AuditMessageType as ConsumptionsAuditMessageType,
)
from es_elt.xml.audit_data.mam.media_consumptions import (
Journey,
JourneyLegs,
JourneyRatingDetail,
JourneyRatingDetailProductRatingDetails,
Leg,
MediaConsumptionExchange,
MediaConsumptionExchangeJourneys,
MediaConsumptionExchangeModifiedJourneys,
MediaConsumptionExchangeModifiedLegs,
MediaConsumptionListAuditExchange,
MediaConsumptionListAuditExchangeMediaConsumptions,
ProductFare,
ProductFareCrossedZones,
ProductFareLegIds,
ProductRatingDetail,
ProductRatingDetailProductFares,
RemovedJourney,
RemovedJourneys,
RemovedLeg,
RemovedLegs,
TravelEvent,
TravelEvents,
)
from es_elt.xml.audit_data.mam.media_deny_access_notification import (
AuditMessages as DenyAccessNotificationAuditMessages,
)
from es_elt.xml.audit_data.mam.media_deny_access_notification import (
AuditMessagesType as DenyAccessNotificationAuditMessagesType,
)
from es_elt.xml.audit_data.mam.media_deny_access_notification import (
AuditMessageType as DenyAccessNotificationAuditMessageType,
)
from es_elt.xml.audit_data.mam.media_deny_access_notification import (
MediaDenyAccessNotificationAuditExchange,
)
from es_elt.xml.audit_data.mam.media_grace_expiry_notification import (
AuditMessages as GraceExpiryAuditMessages,
)
from es_elt.xml.audit_data.mam.media_grace_expiry_notification import (
AuditMessagesType as GraceExpiryAuditMessagesType,
)
from es_elt.xml.audit_data.mam.media_grace_expiry_notification import (
AuditMessageType as GraceExpiryAuditMessageType,
)
from es_elt.xml.audit_data.mam.media_grace_expiry_notification import (
MediaGraceExpiryNotificationAuditExchange,
)
from es_elt.xml.audit_data.mam.media_no_sale_expiry_notification import (
AuditMessages as NoSaleAuditMessages,
)
from es_elt.xml.audit_data.mam.media_no_sale_expiry_notification import (
AuditMessagesType as NoSaleAuditMessagesType,
)
from es_elt.xml.audit_data.mam.media_no_sale_expiry_notification import (
AuditMessageType as NoSaleAuditMessageType,
)
from es_elt.xml.audit_data.mam.media_no_sale_expiry_notification import (
MediaNoSaleExpiryNotificationAuditExchange,
)
from es_elt.xml.audit_data.mam.media_profile_expiry_notification import (
AuditMessages as ProfileAuditMessages,
)
from es_elt.xml.audit_data.mam.media_profile_expiry_notification import (
AuditMessagesType as ProfileAuditMessagesType,
)
from es_elt.xml.audit_data.mam.media_profile_expiry_notification import (
AuditMessageType as ProfileAuditMessageType,
)
from es_elt.xml.audit_data.mam.media_profile_expiry_notification import (
ProfileExpiryDateNotificationAuditExchange,
)
from es_elt.xml.audit_data.mam.media_reconstruction import (
AuditMessages as ReconstructionAuditMessages,
)
from es_elt.xml.audit_data.mam.media_reconstruction import (
AuditMessagesType as ReconstructionAuditMessagesType,
)
from es_elt.xml.audit_data.mam.media_reconstruction import (
AuditMessageType as ReconstructionAuditMessageType,
)
from es_elt.xml.audit_data.mam.media_reconstruction import (
Media,
MediaReconstructionAuditExchange,
)
from es_elt.xml.audit_data.mam.purse_usage import (
AuditMessages as PurseUsageAuditMessages,
)
from es_elt.xml.audit_data.mam.purse_usage import (
AuditMessagesType as PurseUsageAuditMessagesType,
)
from es_elt.xml.audit_data.mam.purse_usage import (
AuditMessageType as PurseUsageAuditMessageType,
)
from es_elt.xml.audit_data.mam.purse_usage import (
PurseOrigin,
PurseUsageAuditExchange,
PurseUsageType,
)
from es_elt.xml.audit_data.mam.travel_event import (
AuditMessages as TravelEventAuditMessages,
)
from es_elt.xml.audit_data.mam.travel_event import (
AuditMessagesType as TravelEventAuditMessagesType,
)
from es_elt.xml.audit_data.mam.travel_event import (
AuditMessageType as TravelEventAuditMessageType,
)
from es_elt.xml.audit_data.mam.travel_event import (
TravelEventAuditExchange,
TravelEventAuditType,
)
__all__ = [
"AbtPurseAuditExchange",
"AbtPurseAuditMessageType",
"AbtPurseAuditMessages",
"AbtPurseAuditMessagesType",
"OperationType",
"PurseFamily",
"BulkAdjustmentExecutionResultAuditMessageType",
"BulkAdjustmentExecutionResultAuditMessages",
"BulkAdjustmentExecutionResultAuditMessagesType",
"BulkAdjustmentExecutionResultAuditExchange",
"StartAuditMessageType",
"StartAuditMessages",
"StartAuditMessagesType",
"BulkAdjustmentExecutionStartAuditExchange",
"ContractTransferAuditMessageType",
"ContractTransferAuditMessages",
"ContractTransferAuditMessagesType",
"ContractTransferAuditExchange",
"DiscardedTravelEventAuditMessageType",
"DiscardedTravelEventAuditMessages",
"DiscardedTravelEventAuditMessagesType",
"DiscardedTravelEventAuditExchange",
"MediaAuditMessageType",
"MediaAuditMessages",
"MediaAuditMessagesType",
"MediaAuditExchange",
"MediaStatus",
"TransitContracts",
"ConsumptionAdjustmentAuditMessageType",
"ConsumptionAdjustmentAuditMessages",
"ConsumptionAdjustmentAuditMessagesType",
"MediaConsumptionAdjustmentAuditExchange",
"MediaConsumptionAdjustmentAuditExchangeExcessFareAdjustment",
"MediaConsumptionAdjustmentAuditExchangeMissingTravelEventAdjustment",
"CancellationAuditMessageType",
"CancellationAuditMessages",
"CancellationAuditMessagesType",
"MediaConsumptionAdjustmentCancellationAuditExchange",
"MediaConsumptionAdjustmentCancellationAuditExchangeExcessFareAdjustment",
"MediaConsumptionAdjustmentCancellationAuditExchangeMissingTravelEventAdjustment",
"AccessStatus",
"AddedJourney",
"AddedJourneys",
"AddedLeg",
"AddedLegs",
"ConsumptionsAuditMessageType",
"ConsumptionsAuditMessages",
"ConsumptionsAuditMessagesType",
"Journey",
"JourneyRatingDetail",
"JourneyRatingDetailProductRatingDetails",
"JourneyLegs",
"Leg",
"MediaConsumptionExchange",
"MediaConsumptionExchangeJourneys",
"MediaConsumptionExchangeModifiedJourneys",
"MediaConsumptionExchangeModifiedLegs",
"MediaConsumptionListAuditExchange",
"MediaConsumptionListAuditExchangeMediaConsumptions",
"ProductFare",
"ProductFareCrossedZones",
"ProductFareLegIds",
"ProductRatingDetail",
"ProductRatingDetailProductFares",
"RemovedJourney",
"RemovedJourneys",
"RemovedLeg",
"RemovedLegs",
"TravelEvent",
"TravelEvents",
"DenyAccessNotificationAuditMessageType",
"DenyAccessNotificationAuditMessages",
"DenyAccessNotificationAuditMessagesType",
"MediaDenyAccessNotificationAuditExchange",
"GraceExpiryAuditMessageType",
"GraceExpiryAuditMessages",
"GraceExpiryAuditMessagesType",
"MediaGraceExpiryNotificationAuditExchange",
"NoSaleAuditMessageType",
"NoSaleAuditMessages",
"NoSaleAuditMessagesType",
"MediaNoSaleExpiryNotificationAuditExchange",
"ProfileAuditMessageType",
"ProfileAuditMessages",
"ProfileAuditMessagesType",
"ProfileExpiryDateNotificationAuditExchange",
"ReconstructionAuditMessageType",
"ReconstructionAuditMessages",
"ReconstructionAuditMessagesType",
"Media",
"MediaReconstructionAuditExchange",
"PurseUsageAuditMessageType",
"PurseUsageAuditMessages",
"PurseUsageAuditMessagesType",
"PurseOrigin",
"PurseUsageAuditExchange",
"PurseUsageType",
"TravelEventAuditMessageType",
"TravelEventAuditMessages",
"TravelEventAuditMessagesType",
"TravelEventAuditExchange",
"TravelEventAuditType",
]

Some files were not shown because too many files have changed in this diff Show More