Aller au contenu

mesure-ordonnee

Événement (AsyncAPI) — version 0.2.0. Producteur : conformite. Consommateurs déclarés : tenue-de-compte.

L’instruction opposable que la conformité rend à un domaine exécutant, et sa levée. Un fait qui EMPORTE OBLIGATION DE TRAITEMENT : zéro consommateur n’est pas un état admissible, c’est une anomalie que la réconciliation détecte. Le message ne transporte ni motif, ni dossier, ni caractère de la mesure — le détenteur exécute, il n’a pas à savoir pourquoi, et l’existence d’un soupçon est confidentielle sous peine de sanctions pénales. Il ne transporte pas davantage l’échéance de revue : rien ne se relâche par écoulement du temps, la levée est un fait explicite.

asyncapi: 3.0.0
info:
title: conformite — la mesure ordonnée
version: 0.2.0
x-ruptures:
- version: 0.2.0
rupture: "propriété retirée : tenant"
motif: >-
Isolation forte par tenant — aucun identifiant de tenant n'est transporté ;
l'appartenance est celle de l'installation (précédent instruments 0.4.0). Le point
ouvert de l'obligation de gel — une désignation vise la personne, tous teneurs
confondus.
description: >-
L'instruction opposable que la conformité rend à un domaine exécutant, et sa levée. Un fait
qui EMPORTE OBLIGATION DE TRAITEMENT : zéro consommateur n'est pas un état admissible, c'est
une anomalie que la réconciliation détecte. Le message ne transporte ni motif, ni dossier,
ni caractère de la mesure — le détenteur exécute, il n'a pas à savoir pourquoi, et
l'existence d'un soupçon est confidentielle sous peine de sanctions pénales. Il ne
transporte pas davantage l'échéance de revue : rien ne se relâche par écoulement du temps,
la levée est un fait explicite.
x-producteurs:
- conformite
x-consommateurs:
- tenue-de-compte
defaultContentType: application/json
channels:
mesure:
address: conformite.mesure
description: >-
Canal logique des mesures ordonnées par la conformité. Un canal unique pour tous
les exécutants, qui filtrent sur domaine_executant : la réconciliation « qui devait
exécuter quoi » se tient ainsi d'un seul endroit. L'ordre n'est garanti que par
entité (la mesure) et par producteur, jamais entre producteurs.
messages:
mesureOrdonnee:
$ref: '#/components/messages/mesureOrdonnee'
mesureLevee:
$ref: '#/components/messages/mesureLevee'
operations:
publierLesMesuresOrdonnees:
action: send
channel:
$ref: '#/channels/mesure'
summary: La conformité publie l'ordre, puis la levée. Le détenteur exécute et prouve.
messages:
- $ref: '#/channels/mesure/messages/mesureOrdonnee'
- $ref: '#/channels/mesure/messages/mesureLevee'
components:
messages:
mesureOrdonnee:
name: mesure-ordonnee
title: Mesure ordonnée
summary: Une mesure a été ordonnée à un domaine exécutant.
contentType: application/json
payload:
$ref: '#/components/schemas/evenementMesureOrdonnee'
mesureLevee:
name: mesure-levee
title: Mesure levée
summary: >-
Une mesure ordonnée a été levée. Un second fait, jamais un champ remis à faux —
pour un gel, la levée relève d'une autorisation ministérielle, pas d'une
décision interne.
contentType: application/json
payload:
$ref: '#/components/schemas/evenementMesureLevee'
schemas:
socleDEvenement:
type: object
# Les consommateurs sont tolérants : un champ inconnu s'ignore —
# le schéma n'interdit donc pas les propriétés additionnelles.
required: [identifiant, survenu_le, entite_sujet, type, version, sequence, cree_le, cree_par]
properties:
identifiant:
type: string
description: Identifiant unique du fait — clé d'idempotence du consommateur.
survenu_le:
type: string
format: date-time
description: >-
Date de survenance du fait métier — l'ORDRE lui-même, pas son émission ni sa
prise d'effet (effet_le). Pour un gel, l'écart entre survenu_le et la preuve
d'exécution est ce qui démontre le « sans délai ».
entite_sujet:
type: string
description: La mesure (identifiant publié). L'ordre est garanti par mesure.
type:
type: string
enum: [mesure-ordonnee, mesure-levee]
version:
type: string
description: Version du contrat ayant produit le fait (versionnement sémantique).
sequence:
type: integer
minimum: 1
description: Numéro de séquence par entité chez le producteur — assise de l'ordre.
cause:
type: string
description: >-
Identifiant du fait qui a causé celui-ci. Obligatoire sur mesure-levee :
l'identifiant du fait qui avait ordonné la mesure levée.
cree_le:
type: string
format: date-time
cree_par:
type: string
evenementMesureOrdonnee:
allOf:
- $ref: '#/components/schemas/socleDEvenement'
- type: object
required: [nature, domaine_executant, type_cible, cible, effet_le, priorite]
properties:
nature:
type: string
description: >-
La nature de la mesure, dans la nomenclature publiée du domaine.
Valeurs restrictives attendues — MISE_EN_ATTENTE, SUSPENSION_OPERATION,
REFUS, GEL_AVOIRS, BLOCAGE_TOTAL, LECTURE_SEULE, BLOCAGE_OPERATIONS.
Les natures non restrictives (POURSUITE, CONTROLE_RENFORCE) ne
transitent PAS par ce canal : elles sont rendues au demandeur dans une
évaluation, elles n'ordonnent rien à un détenteur.
enum:
- MISE_EN_ATTENTE
- SUSPENSION_OPERATION
- REFUS
- GEL_AVOIRS
- BLOCAGE_TOTAL
- LECTURE_SEULE
- BLOCAGE_OPERATIONS
domaine_executant:
type: string
description: >-
Le domaine désigné pour exécuter. Les consommateurs filtrent sur ce champ.
ACCES ne correspond à ce jour à AUCUN composant applicatif (notice § 5).
enum:
- TENUE_COMPTE
- OPERATIONS
- BANQUE_FLUX
- ACCES
type_cible:
type: string
description: >-
Le PÉRIMÈTRE désigné. Il n'est pas déplié : c'est au détenteur de le
décliner en cibles élémentaires — lui seul sait quels comptes tient une
personne — et d'en rendre compte cible par cible.
enum: [COMPTE, EPARGNANT, ENTREPRISE, OPERATION, PAIEMENT]
cible:
type: string
description: Identifiant publié de la cible, selon type_cible. Jamais un nom.
effet_le:
type: string
format: date
description: >-
Date de prise d'effet. Pour une mesure légale, c'est la date à laquelle la
mesure est devenue exécutoire — elle peut être antérieure à l'ordre.
priorite:
type: string
description: >-
L'urgence, et NON le caractère de la mesure. Transmettre « préventive »
apprendrait au détenteur qu'une instruction est en cours — précisément ce
qu'il ne doit pas déduire. URGENTE couvre notamment la désignation de gel
et l'opposition d'une autorité.
enum: [URGENTE, NORMALE]
fin_prevue:
type: string
format: date
description: >-
Facultative et INDICATIVE. Ne vaut pas expiration : à cette date, le
détenteur n'a rien à relâcher — il attend un fait mesure-levee. L'échéance
de revue d'une mesure préventive, elle, ne voyage jamais.
evenementMesureLevee:
allOf:
- $ref: '#/components/schemas/socleDEvenement'
- type: object
required: [domaine_executant, type_cible, cible, effet_le, cause]
properties:
domaine_executant:
type: string
enum: [TENUE_COMPTE, OPERATIONS, BANQUE_FLUX, ACCES]
type_cible:
type: string
enum: [COMPTE, EPARGNANT, ENTREPRISE, OPERATION, PAIEMENT]
cible:
type: string
effet_le:
type: string
format: date
description: Date à partir de laquelle la restriction cesse de s'appliquer.