diff --git a/stream-compositions/events/events/legal-entity/definitions.json b/stream-compositions/events/events/legal-entity/definitions.json
new file mode 100644
index 000000000..690a09eb6
--- /dev/null
+++ b/stream-compositions/events/events/legal-entity/definitions.json
@@ -0,0 +1,748 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "LegalEntityType": {
+ "type": "string",
+ "title": "Legal Entity Type",
+ "description": "Type of the legal entity. Bank or Customer.",
+ "enum": [
+ "CUSTOMER",
+ "BANK"
+ ]
+ },
+ "IdentityUserLinkStrategy": {
+ "type": "string",
+ "title": "Strategy to link user in Identity.",
+ "description": "Identity User Creation Strategy to Create Users in Identity or Import Users from Identity.",
+ "default": "IDENTITY_AGNOSTIC",
+ "enum": [
+ "IMPORT_FROM_IDENTIY",
+ "CREATE_IN_IDENTITY",
+ "IDENTITY_AGNOSTIC"
+ ]
+ },
+ "CurrencyCode": {
+ "type": "string"
+ },
+ "ReferenceJobRole": {
+ "$ref": "definitions.json#JobRole"
+ },
+ "JobRole": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "functionGroups": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#BusinessFunctionGroup"
+ }
+ },
+ "validFromDate": {
+ "type": "string",
+ "description": "Start date of the function group. (date-only from RFC3339 - yyyy-MM-dd)"
+ },
+ "validFromTime": {
+ "type": "string",
+ "description": "Start time of the function group. (time-only from RFC3339 - HH:mm:ss)"
+ },
+ "validUntilDate": {
+ "type": "string",
+ "description": "End date of the function group. (date-only from RFC3339 - yyyy-MM-dd)"
+ },
+ "validUntilTime": {
+ "type": "string",
+ "description": "End time of the function group. (time-only from RFC3339 - HH:mm:ss)"
+ },
+ "apsId": {
+ "type": "number",
+ "description": "Assignable Permission Set Id"
+ },
+ "apsName": {
+ "type": "string",
+ "description": "Assignable Permission Set name"
+ }
+ },
+ "required": [
+ "name",
+ "description"
+ ]
+ },
+ "BusinessFunctionGroup": {
+ "required": [
+ "name"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "legalEntityId": {
+ "type": "string"
+ },
+ "serviceAgreementId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "DEFAULT",
+ "SYSTEM",
+ "TEMPLATE"
+ ],
+ "description": "Type of function group",
+ "default": "DEFAULT"
+ },
+ "dataGroupsAllowed": {
+ "type": "boolean"
+ },
+ "functions": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#BusinessFunction"
+ }
+ }
+ }
+ },
+ "BusinessFunction": {
+ "required": [
+ "name",
+ "functionCode",
+ "functionId",
+ "privileges",
+ "resourceCode",
+ "resourceName"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "functionId": {
+ "type": "string"
+ },
+ "functionCode": {
+ "type": "string"
+ },
+ "resourceName": {
+ "type": "string"
+ },
+ "resourceCode": {
+ "type": "string"
+ },
+ "privileges": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#Privilege"
+ }
+ }
+ }
+ },
+ "Privilege": {
+ "required": [
+ "privilege"
+ ],
+ "type": "object",
+ "properties": {
+ "privilege": {
+ "type": "string"
+ },
+ "supportsLimit": {
+ "type": "boolean"
+ },
+ "limit": {
+ "$ref": "definitions.json#Limit"
+ }
+ }
+ },
+ "Limit": {
+ "title": "Limit",
+ "type": "object",
+ "properties": {
+ "transactional": {
+ "$ref": "definitions.json#LimitReference"
+ },
+ "daily": {
+ "$ref": "definitions.json#LimitReference"
+ },
+ "weekly": {
+ "$ref": "definitions.json#LimitReference"
+ },
+ "monthly": {
+ "$ref": "definitions.json#LimitReference"
+ },
+ "quarterly": {
+ "$ref": "definitions.json#LimitReference"
+ },
+ "yearly": {
+ "$ref": "definitions.json#LimitReference"
+ }
+ }
+ },
+ "LimitReference": {
+ "type": "object",
+ "properties": {
+ "amount": {
+ "type": "number",
+ "format": "double"
+ },
+ "currencyCode": {
+ "type": "string"
+ }
+ }
+ },
+ "LegalEntityReference": {
+ "title": "Legal Entity Reference",
+ "properties": {
+ "internalId": {
+ "type": "string"
+ },
+ "externalId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "internalId",
+ "externalId"
+ ]
+ },
+ "JobProfileUser": {
+ "type": "object",
+ "properties": {
+ "user": {
+ "$ref": "definitions.json#User"
+ },
+ "legalEntityReference": {
+ "$ref": "definitions.json#LegalEntityReference"
+ },
+ "referenceJobRoleNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "businessFunctionGroups": {
+ "type": "array",
+ "description": "Business Function Groups",
+ "items": {
+ "$ref": "definitions.json#BusinessFunctionGroup"
+ }
+ },
+ "approvalStatus": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "user"
+ ]
+ },
+ "User": {
+ "title": "User",
+ "description": "User that accessses the system on behalf of the Legal Entity\nA User is a person who interacts with the bank and who uses Backbase applications on behalf of the legal entity they are representing.\n",
+ "type": "object",
+ "properties": {
+ "internalId": {
+ "type": "string"
+ },
+ "externalId": {
+ "type": "string"
+ },
+ "legalEntityId": {
+ "type": "string"
+ },
+ "emailAddress": {
+ "$ref": "definitions.json#EmailAddress"
+ },
+ "mobileNumber": {
+ "$ref": "definitions.json#PhoneNumber"
+ },
+ "fullName": {
+ "type": "string"
+ },
+ "limit": {
+ "$ref": "definitions.json#Limit"
+ },
+ "attributes": {
+ "type": "object",
+ "description": "Custom attributes to be added to the user.",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "identityLinkStrategy": {
+ "$ref": "definitions.json#IdentityUserLinkStrategy"
+ },
+ "userProfile": {
+ "$ref": "definitions.json#UserProfile"
+ },
+ "locked": {
+ "type": "boolean",
+ "description": "Identity status. If true identity will be locked."
+ }
+ },
+ "required": [
+ "externalId",
+ "fullName"
+ ]
+ },
+ "EmailAddress": {
+ "title": "The email addresses the user can be reached by.",
+ "required": [
+ "address",
+ "key",
+ "type"
+ ],
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "primary": {
+ "type": "boolean",
+ "description": "Flag denoting whether this is the main electronic address."
+ },
+ "address": {
+ "type": "string"
+ }
+ }
+ },
+ "PhoneNumber": {
+ "required": [
+ "key",
+ "number",
+ "type"
+ ],
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "primary": {
+ "type": "boolean",
+ "description": "Flag denoting whether this is the main phone number."
+ },
+ "number": {
+ "type": "string"
+ }
+ }
+ },
+ "PostalAddress": {
+ "required": [
+ "key",
+ "type"
+ ],
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "primary": {
+ "type": "boolean",
+ "description": "Flag denoting whether this is the main postal address."
+ },
+ "department": {
+ "type": "string"
+ },
+ "subDepartment": {
+ "type": "string"
+ },
+ "addressLine": {
+ "type": "string"
+ },
+ "buildingNumber": {
+ "type": "string"
+ },
+ "streetName": {
+ "type": "string"
+ },
+ "townName": {
+ "type": "string"
+ },
+ "postalCode": {
+ "type": "string"
+ },
+ "countrySubDivision": {
+ "type": "string"
+ },
+ "country": {
+ "type": "string"
+ }
+ }
+ },
+ "UserProfile": {
+ "title": "UserProfile",
+ "description": "User Data for User Profile Manager. Additional to Data included in User Model\n",
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string"
+ },
+ "externalId": {
+ "type": "string"
+ },
+ "userName": {
+ "type": "string"
+ },
+ "name": {
+ "$ref": "definitions.json#Name"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "nickName": {
+ "type": "string"
+ },
+ "profileUrl": {
+ "type": "string"
+ },
+ "personalInformation": {
+ "$ref": "definitions.json#PersonalInformation"
+ },
+ "identificationDetails": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#IdentificationDetails"
+ }
+ },
+ "title": {
+ "type": "string"
+ },
+ "userType": {
+ "type": "string"
+ },
+ "preferredLanguage": {
+ "type": "string"
+ },
+ "locale": {
+ "type": "string"
+ },
+ "timezone": {
+ "type": "string"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "additionalEmails": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#Multivalued"
+ }
+ },
+ "additionalPhoneNumbers": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#Multivalued"
+ }
+ },
+ "ims": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#Multivalued"
+ }
+ },
+ "photos": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#Multivalued"
+ }
+ },
+ "x509Certificates": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#Multivalued"
+ }
+ },
+ "addresses": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#Address"
+ }
+ },
+ "extended": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "userId",
+ "externalId",
+ "userName"
+ ]
+ },
+ "Name": {
+ "title": "Name",
+ "type": "object",
+ "properties": {
+ "formatted": {
+ "type": "string"
+ },
+ "familyName": {
+ "type": "string"
+ },
+ "givenName": {
+ "type": "string"
+ },
+ "middleName": {
+ "type": "string"
+ },
+ "honorificPrefix": {
+ "type": "string"
+ },
+ "honorificSuffix": {
+ "type": "string"
+ }
+ }
+ },
+ "PersonalInformation": {
+ "title": "PersonalInformation",
+ "type": "object",
+ "properties": {
+ "gender": {
+ "type": "string"
+ },
+ "dateOfBirth": {
+ "type": "string"
+ },
+ "countryOfBirth": {
+ "type": "string"
+ },
+ "countryOfResidence": {
+ "type": "string"
+ },
+ "nationalities": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "maritalStatus": {
+ "type": "string"
+ },
+ "educationLevel": {
+ "type": "string"
+ },
+ "employer": {
+ "type": "string"
+ },
+ "employmentStatus": {
+ "type": "string"
+ }
+ }
+ },
+ "IdentificationDetails": {
+ "title": "IdentificationDetails",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "issueDate": {
+ "type": "string",
+ "format": "date"
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date"
+ },
+ "issueCountryCode": {
+ "type": "string"
+ }
+ }
+ },
+ "Multivalued": {
+ "title": "Multivalued",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string"
+ },
+ "display": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "primary": {
+ "type": "boolean"
+ }
+ }
+ },
+ "Address": {
+ "title": "Address",
+ "type": "object",
+ "properties": {
+ "formatted": {
+ "type": "string"
+ },
+ "streetAddress": {
+ "type": "string"
+ },
+ "locality": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "postalCode": {
+ "type": "string"
+ },
+ "country": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "primary": {
+ "type": "boolean"
+ }
+ }
+ },
+ "ServiceAgreement": {
+ "title": "Service Agreement",
+ "description": "The formal vehicle that allows users of one entity to access products of that or other entities\nA Service agreement is:\n- A contract that includes one or more legal entities. A legal entity that is participating in a service agreement can allow a subset of its users to act through that service agreement and/or allow a subset of its products to be accessed through the service agreement. Within each service agreement, permissions to perform specific tasks are granted to users, including access to products shared by one or more legal entities (participating in that service agreement). As such, a service agreement is a way to give third party users specific access to your products.\n- A special kind of service agreement is called the master service agreement. This service agreement has one legal entity participant and once configured, the participant cannot be changed. Important to know is that once the user is granted with administrative permissions (e.g. manage account groups), he or she has the power to execute the task in any service agreement lower in the hierarchy. For example, if the user of the bank is assigned with manage account groups permission in the master service agreement of the bank, the user can manage account groups in any service agreement lower in the hierarchy.\n- A service agreement may be restricted in time, by setting a time bound. Permissions granted to users in the time-restricted service agreement, are active and may be consumed, only while the time bound is valid.\n",
+ "properties": {
+ "internalId": {
+ "type": "string"
+ },
+ "externalId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "participants": {
+ "type": "array",
+ "description": "Participants of the service agreement",
+ "items": {
+ "$ref": "definitions.json#LegalEntityParticipant"
+ }
+ },
+ "validFromDate": {
+ "type": "string"
+ },
+ "validFromTime": {
+ "type": "string"
+ },
+ "validUntilDate": {
+ "type": "string"
+ },
+ "validUntilTime": {
+ "type": "string"
+ },
+ "status": {
+ "$ref": "definitions.json#LegalEntityStatus"
+ },
+ "isMaster": {
+ "type": "boolean",
+ "description": "Master flag"
+ },
+ "regularUserAps": {
+ "$ref": "definitions.json#ApsIdentifiers"
+ },
+ "adminUserAps": {
+ "$ref": "definitions.json#ApsIdentifiers"
+ },
+ "jobRoles": {
+ "type": "array",
+ "items": {
+ "$ref": "definitions.json#JobRole"
+ }
+ },
+ "creatorLegalEntity": {
+ "type": "string"
+ }
+ }
+ },
+ "ApsIdentifiers": {
+ "type": "object",
+ "properties": {
+ "nameIdentifiers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "idIdentifiers": {
+ "type": "array",
+ "items": {
+ "type": "number"
+ }
+ }
+ }
+ },
+ "LegalEntityParticipant": {
+ "required": [
+ "externalId",
+ "sharingAccounts",
+ "sharingUsers"
+ ],
+ "type": "object",
+ "properties": {
+ "externalId": {
+ "type": "string"
+ },
+ "sharingUsers": {
+ "type": "boolean",
+ "description": "Boolean value if the Participant is sharing users"
+ },
+ "sharingAccounts": {
+ "type": "boolean",
+ "description": "Boolean value if the participant is sharing accounts"
+ },
+ "admins": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "users": {
+ "type": "array",
+ "description": "User external ids",
+ "items": {
+ "type": "string"
+ }
+ },
+ "action": {
+ "type": "string",
+ "description": "the action to perform for this participant. Required for participant update flow",
+ "enum": [
+ "ADD",
+ "REMOVE"
+ ]
+ }
+ }
+ },
+ "LegalEntityStatus": {
+ "type": "string",
+ "description": "Status of the entity",
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/stream-compositions/events/events/legal-entity/egress/legal-entity-completed-event.json b/stream-compositions/events/events/legal-entity/egress/legal-entity-completed-event.json
new file mode 100644
index 000000000..d5a5db970
--- /dev/null
+++ b/stream-compositions/events/events/legal-entity/egress/legal-entity-completed-event.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "legalEntity": {
+ "type": "object",
+ "properties": {
+ "internalId": {
+ "type": "string"
+ },
+ "externalId": {
+ "type": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/egress/product-catalog-ingest-failed-event.json b/stream-compositions/events/events/legal-entity/egress/legal-entity-failed-event.json
similarity index 82%
rename from stream-compositions/events/product-catalog-ingress/src/main/resources/events/egress/product-catalog-ingest-failed-event.json
rename to stream-compositions/events/events/legal-entity/egress/legal-entity-failed-event.json
index f746cb113..5fce38ae3 100644
--- a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/egress/product-catalog-ingest-failed-event.json
+++ b/stream-compositions/events/events/legal-entity/egress/legal-entity-failed-event.json
@@ -3,7 +3,7 @@
"type": "object",
"properties": {
"eventId": {
- "description": "Unique identifier of the event",
+ "description": "Unique identifier of the event.",
"type": "string"
},
"message": {
diff --git a/stream-compositions/events/events/legal-entity/ingress/legal-entity-pull-event.json b/stream-compositions/events/events/legal-entity/ingress/legal-entity-pull-event.json
new file mode 100644
index 000000000..37811b099
--- /dev/null
+++ b/stream-compositions/events/events/legal-entity/ingress/legal-entity-pull-event.json
@@ -0,0 +1,34 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "legalEntityExternalId": {
+ "type": "string"
+ },
+ "taxId": {
+ "type": "string"
+ },
+ "userExternalId": {
+ "type": "string"
+ },
+ "parentLegalEntityExternalId": {
+ "type": "string"
+ },
+ "realmName": {
+ "type": "string"
+ },
+ "referenceJobRoleNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "isAdmin": {
+ "type": "boolean"
+ },
+ "identityUserLinkStrategy": {
+ "type": "string",
+ "enum": ["IMPORT_FROM_IDENTIY","CREATE_IN_IDENTITY","IDENTITY_AGNOSTIC"]
+ }
+ }
+}
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/ingress/product-push-event.json b/stream-compositions/events/events/legal-entity/ingress/legal-entity-push-event.json
similarity index 68%
rename from stream-compositions/events/product-ingress/src/main/resources/events/ingress/product-push-event.json
rename to stream-compositions/events/events/legal-entity/ingress/legal-entity-push-event.json
index 295fe7ec1..3ebb9fb49 100644
--- a/stream-compositions/events/product-ingress/src/main/resources/events/ingress/product-push-event.json
+++ b/stream-compositions/events/events/legal-entity/ingress/legal-entity-push-event.json
@@ -2,9 +2,9 @@
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
- "productGroup": {
+ "legalEntity": {
"type": "object",
- "$ref": "../product-group.json"
+ "$ref": "../legal-entity.json"
}
}
}
diff --git a/stream-compositions/events/events/legal-entity/ingress/legal-entity-request.json b/stream-compositions/events/events/legal-entity/ingress/legal-entity-request.json
new file mode 100644
index 000000000..45aa749ac
--- /dev/null
+++ b/stream-compositions/events/events/legal-entity/ingress/legal-entity-request.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "legalEntityExternalId": {
+ "description": "Legal entity external id.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Full name associated with the legal entity",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of Legal Entity",
+ "enum": ["RETAIL", "SME", "CORPORATE"],
+ "type": "string"
+ }
+ },
+ "required": [
+ "legalEntityExternalId"
+ ]
+}
diff --git a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-state.json b/stream-compositions/events/events/legal-entity/legal-entity.json
similarity index 51%
rename from stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-state.json
rename to stream-compositions/events/events/legal-entity/legal-entity.json
index f9f30d34e..7de1032c7 100644
--- a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-state.json
+++ b/stream-compositions/events/events/legal-entity/legal-entity.json
@@ -2,17 +2,17 @@
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
- "externalStateId": {
- "description": "External product state id",
+ "internalId": {
+ "description": "Legal entity internal id",
"type": "string"
},
- "state": {
- "description": "Product state ",
+ "externalId": {
+ "description": "Legal entity external id",
"type": "string"
}
},
"required": [
- "externalStateId",
- "state"
+ "internalId",
+ "externalId"
]
}
diff --git a/stream-compositions/events/events/legal-entity/membership.json b/stream-compositions/events/events/legal-entity/membership.json
new file mode 100644
index 000000000..53071c394
--- /dev/null
+++ b/stream-compositions/events/events/legal-entity/membership.json
@@ -0,0 +1,23 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Unique identifier for the membership",
+ "type": "string"
+ },
+ "taxId": {
+ "description": "Tax id of the individual or corporation used for membership identification",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name associated with the membership",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type associated with the membership",
+ "enum": ["RETAIL", "SME", "CORPORATE"],
+ "type": "string"
+ }
+ }
+}
diff --git a/stream-compositions/events/product-catalog-egress/src/main/resources/events/egress/product-catalog-ingest-completed-event.json b/stream-compositions/events/events/product-catalog/egress/product-catalog-ingest-completed-event.json
similarity index 100%
rename from stream-compositions/events/product-catalog-egress/src/main/resources/events/egress/product-catalog-ingest-completed-event.json
rename to stream-compositions/events/events/product-catalog/egress/product-catalog-ingest-completed-event.json
diff --git a/stream-compositions/events/product-catalog-egress/src/main/resources/events/egress/product-catalog-ingest-failed-event.json b/stream-compositions/events/events/product-catalog/egress/product-catalog-ingest-failed-event.json
similarity index 100%
rename from stream-compositions/events/product-catalog-egress/src/main/resources/events/egress/product-catalog-ingest-failed-event.json
rename to stream-compositions/events/events/product-catalog/egress/product-catalog-ingest-failed-event.json
diff --git a/stream-compositions/events/product-catalog-egress/src/main/resources/events/ingress/product-catalog-ingest-pull-event.json b/stream-compositions/events/events/product-catalog/ingress/product-catalog-ingest-pull-event.json
similarity index 100%
rename from stream-compositions/events/product-catalog-egress/src/main/resources/events/ingress/product-catalog-ingest-pull-event.json
rename to stream-compositions/events/events/product-catalog/ingress/product-catalog-ingest-pull-event.json
diff --git a/stream-compositions/events/product-catalog-egress/src/main/resources/events/ingress/product-catalog-ingest-push-event.json b/stream-compositions/events/events/product-catalog/ingress/product-catalog-ingest-push-event.json
similarity index 100%
rename from stream-compositions/events/product-catalog-egress/src/main/resources/events/ingress/product-catalog-ingest-push-event.json
rename to stream-compositions/events/events/product-catalog/ingress/product-catalog-ingest-push-event.json
diff --git a/stream-compositions/events/product-catalog-egress/src/main/resources/events/product-catalog.json b/stream-compositions/events/events/product-catalog/product-catalog.json
similarity index 74%
rename from stream-compositions/events/product-catalog-egress/src/main/resources/events/product-catalog.json
rename to stream-compositions/events/events/product-catalog/product-catalog.json
index 58c602ece..765b759a1 100644
--- a/stream-compositions/events/product-catalog-egress/src/main/resources/events/product-catalog.json
+++ b/stream-compositions/events/events/product-catalog/product-catalog.json
@@ -5,19 +5,19 @@
"productKinds": {
"type": "array",
"items": {
- "$ref": "./product-kind.json"
+ "$ref": "product-kind.json"
}
},
"productTypes": {
"type": "array",
"items": {
- "$ref": "./product-type.json"
+ "$ref": "product-type.json"
}
},
"productStates": {
"type": "array",
"items": {
- "$ref": "./product-state.json"
+ "$ref": "product-state.json"
}
}
}
diff --git a/stream-compositions/events/product-catalog-egress/src/main/resources/events/product-kind.json b/stream-compositions/events/events/product-catalog/product-kind.json
similarity index 100%
rename from stream-compositions/events/product-catalog-egress/src/main/resources/events/product-kind.json
rename to stream-compositions/events/events/product-catalog/product-kind.json
diff --git a/stream-compositions/events/product-catalog-egress/src/main/resources/events/product-state.json b/stream-compositions/events/events/product-catalog/product-state.json
similarity index 100%
rename from stream-compositions/events/product-catalog-egress/src/main/resources/events/product-state.json
rename to stream-compositions/events/events/product-catalog/product-state.json
diff --git a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-type.json b/stream-compositions/events/events/product-catalog/product-type.json
similarity index 96%
rename from stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-type.json
rename to stream-compositions/events/events/product-catalog/product-type.json
index 429cb0f07..f6a114dae 100644
--- a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-type.json
+++ b/stream-compositions/events/events/product-catalog/product-type.json
@@ -36,7 +36,7 @@
},
"productKind": {
"type": "object",
- "$ref": "./product-kind.json"
+ "$ref": "product-kind.json"
}
},
"required": [
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/arrangement.json b/stream-compositions/events/events/product/arrangement.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/arrangement.json
rename to stream-compositions/events/events/product/arrangement.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/base-product-group.json b/stream-compositions/events/events/product/base-product-group.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/base-product-group.json
rename to stream-compositions/events/events/product/base-product-group.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/base-schema.json b/stream-compositions/events/events/product/base-schema.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/base-schema.json
rename to stream-compositions/events/events/product/base-schema.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/credit-card.json b/stream-compositions/events/events/product/credit-card.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/credit-card.json
rename to stream-compositions/events/events/product/credit-card.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/current-account.json b/stream-compositions/events/events/product/current-account.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/current-account.json
rename to stream-compositions/events/events/product/current-account.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/custom-datagroup-items.json b/stream-compositions/events/events/product/custom-datagroup-items.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/custom-datagroup-items.json
rename to stream-compositions/events/events/product/custom-datagroup-items.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/egress/arrangement-completed-event.json b/stream-compositions/events/events/product/egress/arrangement-completed-event.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/egress/arrangement-completed-event.json
rename to stream-compositions/events/events/product/egress/arrangement-completed-event.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/egress/arrangement-failed-event.json b/stream-compositions/events/events/product/egress/arrangement-failed-event.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/egress/arrangement-failed-event.json
rename to stream-compositions/events/events/product/egress/arrangement-failed-event.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/egress/product-completed-event.json b/stream-compositions/events/events/product/egress/product-completed-event.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/egress/product-completed-event.json
rename to stream-compositions/events/events/product/egress/product-completed-event.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/egress/product-failed-event.json b/stream-compositions/events/events/product/egress/product-failed-event.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/egress/product-failed-event.json
rename to stream-compositions/events/events/product/egress/product-failed-event.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/ingress/product-pull-event.json b/stream-compositions/events/events/product/ingress/product-pull-event.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/ingress/product-pull-event.json
rename to stream-compositions/events/events/product/ingress/product-pull-event.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/ingress/product-push-event.json b/stream-compositions/events/events/product/ingress/product-push-event.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/ingress/product-push-event.json
rename to stream-compositions/events/events/product/ingress/product-push-event.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/investment-account.json b/stream-compositions/events/events/product/investment-account.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/investment-account.json
rename to stream-compositions/events/events/product/investment-account.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/loan.json b/stream-compositions/events/events/product/loan.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/loan.json
rename to stream-compositions/events/events/product/loan.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/product-group.json b/stream-compositions/events/events/product/product-group.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/product-group.json
rename to stream-compositions/events/events/product/product-group.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/savings-account.json b/stream-compositions/events/events/product/savings-account.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/savings-account.json
rename to stream-compositions/events/events/product/savings-account.json
diff --git a/stream-compositions/events/product-egress/src/main/resources/events/term-deposits.json b/stream-compositions/events/events/product/term-deposits.json
similarity index 100%
rename from stream-compositions/events/product-egress/src/main/resources/events/term-deposits.json
rename to stream-compositions/events/events/product/term-deposits.json
diff --git a/stream-compositions/events/transaction-egress/src/main/resources/events/egress/transactions-completed-event.json b/stream-compositions/events/events/transaction/egress/transactions-completed-event.json
similarity index 100%
rename from stream-compositions/events/transaction-egress/src/main/resources/events/egress/transactions-completed-event.json
rename to stream-compositions/events/events/transaction/egress/transactions-completed-event.json
diff --git a/stream-compositions/events/transaction-egress/src/main/resources/events/egress/transactions-failed-event.json b/stream-compositions/events/events/transaction/egress/transactions-failed-event.json
similarity index 100%
rename from stream-compositions/events/transaction-egress/src/main/resources/events/egress/transactions-failed-event.json
rename to stream-compositions/events/events/transaction/egress/transactions-failed-event.json
diff --git a/stream-compositions/events/transaction-egress/src/main/resources/events/ingress/transactions-pull-event.json b/stream-compositions/events/events/transaction/ingress/transactions-pull-event.json
similarity index 100%
rename from stream-compositions/events/transaction-egress/src/main/resources/events/ingress/transactions-pull-event.json
rename to stream-compositions/events/events/transaction/ingress/transactions-pull-event.json
diff --git a/stream-compositions/events/transaction-egress/src/main/resources/events/ingress/transactions-push-event.json b/stream-compositions/events/events/transaction/ingress/transactions-push-event.json
similarity index 100%
rename from stream-compositions/events/transaction-egress/src/main/resources/events/ingress/transactions-push-event.json
rename to stream-compositions/events/events/transaction/ingress/transactions-push-event.json
diff --git a/stream-compositions/events/transaction-egress/src/main/resources/events/transaction.json b/stream-compositions/events/events/transaction/transaction.json
similarity index 100%
rename from stream-compositions/events/transaction-egress/src/main/resources/events/transaction.json
rename to stream-compositions/events/events/transaction/transaction.json
diff --git a/stream-compositions/events/legal-entity-egress/pom.xml b/stream-compositions/events/legal-entity-egress/pom.xml
index a04235887..b1a9438d9 100644
--- a/stream-compositions/events/legal-entity-egress/pom.xml
+++ b/stream-compositions/events/legal-entity-egress/pom.xml
@@ -48,7 +48,7 @@
1
true
${project.basedir}/target/generated-sources/jsonschema-events
- ${project.basedir}/src/main/resources/events/egress
+ ${project.basedir}/../events/legal-entity/egress
stream.compositions.events.egress
diff --git a/stream-compositions/events/legal-entity-ingress/pom.xml b/stream-compositions/events/legal-entity-ingress/pom.xml
index 9255e6a4e..7f1be5c33 100644
--- a/stream-compositions/events/legal-entity-ingress/pom.xml
+++ b/stream-compositions/events/legal-entity-ingress/pom.xml
@@ -48,26 +48,11 @@
1
true
${project.basedir}/target/generated-sources/jsonschema-events
- ${project.basedir}/src/main/resources/events/ingress
+ ${project.basedir}/../events/legal-entity/ingress
stream.compositions.events.ingress
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/stream-compositions/events/product-catalog-egress/pom.xml b/stream-compositions/events/product-catalog-egress/pom.xml
index 9e54fe576..807371d7f 100644
--- a/stream-compositions/events/product-catalog-egress/pom.xml
+++ b/stream-compositions/events/product-catalog-egress/pom.xml
@@ -48,7 +48,7 @@
1
APP_NAME
${project.build.directory}/generated-sources/jsonschema-events
- ${project.basedir}/src/main/resources/events/egress
+ ${project.basedir}/../events/product-catalog/egress
stream.compositions.events.egress
APP_NAME
diff --git a/stream-compositions/events/product-catalog-egress/src/main/resources/events/product-type.json b/stream-compositions/events/product-catalog-egress/src/main/resources/events/product-type.json
deleted file mode 100644
index 429cb0f07..000000000
--- a/stream-compositions/events/product-catalog-egress/src/main/resources/events/product-type.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "externalId": {
- "description": "External id",
- "type": "string"
- },
- "externalTypeId": {
- "description": "Product type id",
- "type": "string"
- },
- "externalProductId": {
- "description": "External product id",
- "type": "string"
- },
- "externalProductKindId": {
- "description": "External product kind id",
- "type": "string"
- },
- "productKindName": {
- "description": "Product kind name",
- "type": "string"
- },
- "externalProductTypeId": {
- "description": "External product type id",
- "type": "string"
- },
- "productTypeName": {
- "description": "Product type name",
- "type": "string"
- },
- "typeName": {
- "description": "Type name",
- "type": "string"
- },
- "productKind": {
- "type": "object",
- "$ref": "./product-kind.json"
- }
- },
- "required": [
- "externalId",
- "externalTypeId",
- "externalProductId",
- "externalProductKindId",
- "productKindName",
- "externalProductTypeId",
- "productTypeName",
- "typeName",
- "productKind"
- ]
-}
diff --git a/stream-compositions/events/product-catalog-ingress/pom.xml b/stream-compositions/events/product-catalog-ingress/pom.xml
index 011a1a7b9..653cf471f 100644
--- a/stream-compositions/events/product-catalog-ingress/pom.xml
+++ b/stream-compositions/events/product-catalog-ingress/pom.xml
@@ -48,7 +48,7 @@
1
APP_NAME
${project.build.directory}/generated-sources/jsonschema-events
- ${project.basedir}/src/main/resources/events/ingress
+ ${project.basedir}/../events/product-catalog/ingress
stream.compositions.events.ingress
APP_NAME
diff --git a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/egress/product-catalog-ingest-completed-event.json b/stream-compositions/events/product-catalog-ingress/src/main/resources/events/egress/product-catalog-ingest-completed-event.json
deleted file mode 100644
index 91f3c3a79..000000000
--- a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/egress/product-catalog-ingest-completed-event.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "eventId": {
- "description": "Unique identifier of the event",
- "type": "string"
- },
- "productCatalog": {
- "type": "object",
- "$ref": "../product-catalog.json"
- }
- },
- "required": [
- "eventId"
- ]
-}
diff --git a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/ingress/product-catalog-ingest-pull-event.json b/stream-compositions/events/product-catalog-ingress/src/main/resources/events/ingress/product-catalog-ingest-pull-event.json
deleted file mode 100644
index ecf7203a9..000000000
--- a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/ingress/product-catalog-ingest-pull-event.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "eventId": {
- "description": "Unique identifier of the event",
- "type": "string"
- }
- },
- "required": [
- "eventId"
- ]
-}
diff --git a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/ingress/product-catalog-ingest-push-event.json b/stream-compositions/events/product-catalog-ingress/src/main/resources/events/ingress/product-catalog-ingest-push-event.json
deleted file mode 100644
index 91f3c3a79..000000000
--- a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/ingress/product-catalog-ingest-push-event.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "eventId": {
- "description": "Unique identifier of the event",
- "type": "string"
- },
- "productCatalog": {
- "type": "object",
- "$ref": "../product-catalog.json"
- }
- },
- "required": [
- "eventId"
- ]
-}
diff --git a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-catalog.json b/stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-catalog.json
deleted file mode 100644
index 58c602ece..000000000
--- a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-catalog.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "productKinds": {
- "type": "array",
- "items": {
- "$ref": "./product-kind.json"
- }
- },
- "productTypes": {
- "type": "array",
- "items": {
- "$ref": "./product-type.json"
- }
- },
- "productStates": {
- "type": "array",
- "items": {
- "$ref": "./product-state.json"
- }
- }
- }
-}
diff --git a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-kind.json b/stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-kind.json
deleted file mode 100644
index 701529849..000000000
--- a/stream-compositions/events/product-catalog-ingress/src/main/resources/events/product-kind.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "externalKindId": {
- "description": "Product kind external id",
- "type": "string"
- },
- "kindName": {
- "description": "Product kind name",
- "type": "string"
- },
- "kindUri": {
- "description": "Product kind uri",
- "type": "string"
- }
- },
- "required": [
- "externalKindId",
- "kindName",
- "kindUri"
- ]
-}
diff --git a/stream-compositions/events/product-egress/pom.xml b/stream-compositions/events/product-egress/pom.xml
index 54d351179..e2a0ff5c4 100644
--- a/stream-compositions/events/product-egress/pom.xml
+++ b/stream-compositions/events/product-egress/pom.xml
@@ -48,7 +48,7 @@
1
true
${project.basedir}/target/generated-sources/jsonschema-events
- ${project.basedir}/src/main/resources/events/egress
+ ${project.basedir}/../events/product/egress
stream.compositions.events.egress
diff --git a/stream-compositions/events/product-ingress/pom.xml b/stream-compositions/events/product-ingress/pom.xml
index 17a77d18a..9d864d0ca 100644
--- a/stream-compositions/events/product-ingress/pom.xml
+++ b/stream-compositions/events/product-ingress/pom.xml
@@ -48,7 +48,7 @@
1
true
${project.basedir}/target/generated-sources/jsonschema-events
- ${project.basedir}/src/main/resources/events/ingress
+ ${project.basedir}/../events/product/ingress
stream.compositions.events.ingress
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/arrangement.json b/stream-compositions/events/product-ingress/src/main/resources/events/arrangement.json
deleted file mode 100644
index 68ede2c75..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/arrangement.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "properties": {
- "id": {
- "$ref": "base-schema.json#/schemas/InternalIdentifier"
- },
- "availableBalance": {
- "$ref": "base-schema.json#/schemas/ExternalIdentifier"
- }
- }
-}
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/base-product-group.json b/stream-compositions/events/product-ingress/src/main/resources/events/base-product-group.json
deleted file mode 100644
index bf742811f..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/base-product-group.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type" : "object",
- "properties" : {
- "internalId" : {
- "$ref" : "base-schema.json#/schemas/InternalIdentifier"
- },
- "productGroupType" : {
- "type" : "string",
- "default" : "ARRANGEMENTS",
- "enum" : [ "ARRANGEMENTS", "JOURNEYS", "REPOSITORIES", "CUSTOM" ]
- },
- "name" : {
- "maxLength" : 128,
- "minLength" : 1,
- "pattern" : "^\\S(.*(\\S))?$",
- "type" : "string",
- "description" : "Product group name"
- },
- "description" : {
- "maxLength" : 255,
- "minLength" : 1,
- "pattern" : "^\\S(.*(\\S))?$",
- "type" : "string",
- "description" : "Product group description"
- },
- "users" : {
- "type" : "array",
- "items" : {
- "$ref" : "base-schema.json#/schemas/JobProfileUser"
- }
- },
- "currentAccounts" : {
- "type" : "array",
- "items" : {
- "$ref" : "current-account.json"
- }
- },
- "savingAccounts" : {
- "type" : "array",
- "items" : {
- "$ref" : "savings-account.json"
- }
- },
- "creditCards" : {
- "type" : "array",
- "items" : {
- "$ref" : "credit-card.json"
- }
- },
- "loans" : {
- "type" : "array",
- "items" : {
- "$ref" : "loan.json"
- }
- },
- "termDeposits" : {
- "type" : "array",
- "items" : {
- "$ref" : "term-deposits.json"
- }
- }
- },
- "description" : "Product groups assigned to the users within same legal entity"
-}
\ No newline at end of file
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/base-schema.json b/stream-compositions/events/product-ingress/src/main/resources/events/base-schema.json
deleted file mode 100644
index 572b2042f..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/base-schema.json
+++ /dev/null
@@ -1,566 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "schemas" : {
- "BaseProduct" : {
- "title" : "Base Product",
- "type" : "object",
- "properties" : {
- "internalId" : {
- "$ref" : "#/schemas/InternalIdentifier"
- },
- "externalId" : {
- "maxLength" : 50,
- "minLength" : 1,
- "type" : "string",
- "description" : "A unique identifier for the product coming from the core banking system."
- },
- "productTypeExternalId" : {
- "title" : "External ID of the Product Type as setup in Product Summary",
- "maxLength" : 64,
- "minLength" : 1,
- "pattern" : "^[^\\r\\n]{1,64}$",
- "type" : "string"
- },
- "legalEntities" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/schemas/LegalEntityReference"
- }
- },
- "name" : {
- "maxLength" : 50,
- "type" : "string",
- "description" : "The name that can be assigned by the bank to label a product."
- },
- "bankAlias" : {
- "maxLength" : 50,
- "type" : "string",
- "description" : "The name that can be assigned by the bank to label the product."
- },
- "state" : {
- "$ref" : "#/schemas/BaseProduct_state"
- },
- "currency" : {
- "$ref" : "#/schemas/CurrencyCode"
- },
- "accountOpeningDate" : {
- "type" : "string",
- "description" : "The date of activation of the account in the bank's system.",
- "javaType": "java.time.OffsetDateTime",
- "format" : "date-time"
- },
- "lastUpdateDate" : {
- "type" : "string",
- "description" : "Last date of balance (or other) parameter update for the particular product",
- "javaType": "java.time.OffsetDateTime",
- "format" : "date-time"
- }
- },
- "description" : "The Base product holds all common properties between different product types\n"
- },
- "BaseProduct_state" : {
- "type" : "object",
- "properties" : {
- "externalStateId" : {
- "maxLength" : 50,
- "type" : "string",
- "description" : "An external unique identifier for the product state object."
- },
- "state" : {
- "maxLength" : 50,
- "type" : "string",
- "description" : "Name that describes the specific product state."
- }
- }
- },
- "CurrencyCode" : {
- "pattern" : "^[A-Z]{3}$",
- "type" : "string",
- "description" : "The alpha-3 code (complying with ISO 4217) of the currency that qualifies the amount"
- },
- "JobProfileUser" : {
- "required" : [ "user" ],
- "type" : "object",
- "properties" : {
- "user" : {
- "$ref" : "#/schemas/User"
- },
- "legalEntityReference" : {
- "$ref" : "#/schemas/LegalEntityReference"
- },
- "referenceJobRoleNames" : {
- "type" : "array",
- "items" : {
- "type" : "string"
- }
- }
- }
- },
- "ServiceAgreement" : {
- "title" : "Service Agreement",
- "properties" : {
- "internalId" : {
- "$ref" : "#/schemas/InternalIdentifier"
- },
- "externalId" : {
- "$ref" : "#/schemas/ExternalIdentifier"
- },
- "name" : {
- "maxLength" : 128,
- "minLength" : 1,
- "pattern" : "^\\S(.*(\\S))?$",
- "type" : "string",
- "description" : "The service agreement name"
- },
- "description" : {
- "maxLength" : 255,
- "minLength" : 1,
- "pattern" : "^(\\S|\\n)((.|\\n)*(\\S|\\n))?$",
- "type" : "string",
- "description" : "Description"
- },
- "isMaster" : {
- "type" : "boolean",
- "description" : "Master flag"
- }
- },
- "description" : "The formal vehicle that allows users of one entity to access products of that or other entities\nA Service agreement is:\n- A contract that includes one or more legal entities. A legal entity that is participating in a service agreement can allow a subset of its users to act through that service agreement and/or allow a subset of its products to be accessed through the service agreement. Within each service agreement, permissions to perform specific tasks are granted to users, including access to products shared by one or more legal entities (participating in that service agreement). As such, a service agreement is a way to give third party users specific access to your products.\n- A special kind of service agreement is called the master service agreement. This service agreement has one legal entity participant and once configured, the participant cannot be changed. Important to know is that once the user is granted with administrative permissions (e.g. manage account groups), he or she has the power to execute the task in any service agreement lower in the hierarchy. For example, if the user of the bank is assigned with manage account groups permission in the master service agreement of the bank, the user can manage account groups in any service agreement lower in the hierarchy.\n- A service agreement may be restricted in time, by setting a time bound. Permissions granted to users in the time-restricted service agreement, are active and may be consumed, only while the time bound is valid.\n"
- },
- "InternalIdentifier" : {
- "title" : "Interal Identifier",
- "type" : "string",
- "description" : "Internal Read Only Identifier",
- "readOnly" : true
- },
- "ExternalIdentifier" : {
- "title" : "External Identifier",
- "maxLength" : 64,
- "minLength" : 1,
- "pattern" : "^[^\\r\\n]{1,64}$",
- "type" : "string",
- "description" : "External legal entity identifier."
- },
- "BookedBalance" : {
- "type" : "object",
- "properties" : {
- "amount" : {
- "type" : "number",
- "format" : "double"
- },
- "currencyCode" : {
- "$ref" : "#/schemas/CurrencyCode"
- }
- },
- "description" : "Booked Balance"
- },
- "AvailableBalance" : {
- "type" : "object",
- "properties" : {
- "amount" : {
- "type" : "number",
- "format" : "double"
- },
- "currencyCode" : {
- "$ref" : "#/schemas/CurrencyCode"
- }
- },
- "description" : "Available Balance"
- },
- "CreditAccount" : {
- "type" : "boolean",
- "description" : "Indicator whether or not the product can be used in payment orders as credit account."
- },
- "DebitAccount" : {
- "type" : "boolean",
- "description" : "Indicator whether or not the product can be used in payment orders as debit account."
- },
- "IBAN" : {
- "maxLength" : 34,
- "pattern" : "^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW).*",
- "type" : "string",
- "description" : "Specifying the IBAN of the account."
- },
- "BBAN" : {
- "maxLength" : 50,
- "type" : "string",
- "description" : "Specifying the BBAN of the account."
- },
- "CardNumber" : {
- "type" : "number"
- },
- "CreditCardAccountNumber" : {
- "maxLength" : 32,
- "type" : "string",
- "description" : "The number of the account the credit card transactions settle on (so actually the reference to the settlement account of the card)?"
- },
- "BankBranchCode" : {
- "maxLength" : 20,
- "type" : "string",
- "description" : "(This is to accomodate additional country specific fields like Sort Code in UK)"
- },
- "PrincipalAmount" : {
- "type" : "object",
- "properties" : {
- "amount" : {
- "type" : "number",
- "format" : "double"
- },
- "currencyCode" : {
- "$ref" : "#/schemas/CurrencyCode"
- }
- },
- "description" : "The amount that was (originally) contracted for the respective product. This is mainly used in the context of loans and deposits."
- },
- "CreditLimit" : {
- "type" : "object",
- "properties" : {
- "amount" : {
- "type" : "number",
- "format" : "double"
- },
- "currencyCode" : {
- "$ref" : "#/schemas/CurrencyCode"
- }
- },
- "description" : "Credit Limit"
- },
- "MinimumPayment" : {
- "type" : "number",
- "description" : "The minimum payment set a percentage of balance, or a fixed cash amount.",
- "format" : "double"
- },
- "MinimumPaymentDueDate" : {
- "type" : "string",
- "description" : "Minimum Payment Due Date shown on your monthly statement to remain in good standing.",
- "javaType": "java.time.OffsetDateTime",
- "format" : "date-time"
- },
- "AccountInterestRate" : {
- "type" : "number",
- "description" : "The annualized cost of credit or debt-capital computed as the percentage ratio of interest to the principal."
- },
- "OutstandingPrincipalAmount" : {
- "type" : "number",
- "description" : "This IS the value date balance of the product.",
- "format" : "double"
- },
- "AccountHolderName" : {
- "maxLength" : 256,
- "type" : "string",
- "description" : "Name of the Payer/Payee i.e. Owner of the Account"
- },
- "AccountOpeningDate" : {
- "type" : "string",
- "javaType": "java.time.OffsetDateTime",
- "format" : "date-time"
- },
- "AccruedInterest" : {
- "type" : "number",
- "description" : "The interest that is earned (credit interest) or due (debit interest) but not settled yet."
- },
- "OutstandingPayment" : {
- "type" : "number",
- "description" : "Outstanding payment refers to the outstanding [unpaid] balance, i.e., the current amount due."
- },
- "ValueDateBalance" : {
- "type" : "number",
- "description" : "The balance of the account on a specific date that needs to be used for the calculation of interest. NB! If no date is specified (like for the book date balance) the current date can be assumed."
- },
- "TermNumber" : {
- "type" : "number",
- "description" : "The number of times interest rate is paid on the settlement account."
- },
- "MaturityAmount" : {
- "type" : "number",
- "description" : "Amount payable at the end of a holding period of a product (maturity date). For deposit all of the interest is usualy paid at maturity date (IF the term is shorter then one year).",
- "format" : "double"
- },
- "MaturityDate" : {
- "type" : "string",
- "description" : "End term of a holding period.",
- "javaType": "java.time.OffsetDateTime",
- "format" : "date-time"
- },
- "LegalEntityReference" : {
- "title" : "Legal Entity Reference",
- "required" : [ "externalId", "internalId" ],
- "properties" : {
- "internalId" : {
- "$ref" : "#/schemas/InternalIdentifier"
- },
- "externalId" : {
- "$ref" : "#/schemas/ExternalIdentifier"
- }
- }
- },
- "EmailAddress" : {
- "title" : "The email addresses the user can be reached by.",
- "required" : [ "address", "key", "type" ],
- "type" : "object",
- "properties" : {
- "key" : {
- "maxLength" : 70,
- "minLength" : 1,
- "type" : "string",
- "description" : "Unique key identifying the email address."
- },
- "type" : {
- "maxLength" : 36,
- "minLength" : 1,
- "type" : "string",
- "description" : "Key identifying the type of electronic address, e.g. work or personal."
- },
- "primary" : {
- "type" : "boolean",
- "description" : "Flag denoting whether this is the main electronic address."
- },
- "address" : {
- "maxLength" : 255,
- "minLength" : 1,
- "type" : "string",
- "description" : "Address."
- }
- }
- },
- "PhoneNumber" : {
- "required" : [ "key", "number", "type" ],
- "type" : "object",
- "properties" : {
- "key" : {
- "maxLength" : 70,
- "minLength" : 1,
- "type" : "string",
- "description" : "Unique key identifying the phone address."
- },
- "type" : {
- "maxLength" : 36,
- "minLength" : 1,
- "type" : "string",
- "description" : "Key identifying the type of phone number, e.g. mobile or land line."
- },
- "primary" : {
- "type" : "boolean",
- "description" : "Flag denoting whether this is the main phone number."
- },
- "number" : {
- "maxLength" : 30,
- "minLength" : 1,
- "type" : "string",
- "description" : "Phone number."
- }
- }
- },
- "PostalAddress" : {
- "required" : [ "key", "type" ],
- "type" : "object",
- "properties" : {
- "key" : {
- "maxLength" : 70,
- "minLength" : 1,
- "type" : "string",
- "description" : "Unique key identifying the postal address."
- },
- "type" : {
- "maxLength" : 36,
- "minLength" : 1,
- "type" : "string",
- "description" : "Key identifying the type of postal address, e.g. residential, business, po-box, mail-to, delivery-to."
- },
- "primary" : {
- "type" : "boolean",
- "description" : "Flag denoting whether this is the main postal address."
- },
- "department" : {
- "maxLength" : 70,
- "type" : "string",
- "description" : "Department."
- },
- "subDepartment" : {
- "maxLength" : 70,
- "type" : "string",
- "description" : "Sub Department."
- },
- "addressLine" : {
- "maxLength" : 70,
- "type" : "string",
- "description" : "Address Line."
- },
- "buildingNumber" : {
- "maxLength" : 255,
- "type" : "string",
- "description" : "Building number."
- },
- "streetName" : {
- "maxLength" : 255,
- "type" : "string",
- "description" : "Street."
- },
- "townName" : {
- "maxLength" : 35,
- "type" : "string",
- "description" : "Town."
- },
- "postalCode" : {
- "maxLength" : 16,
- "type" : "string",
- "description" : "Postcode."
- },
- "countrySubDivision" : {
- "maxLength" : 35,
- "type" : "string",
- "description" : "Country sub-division."
- },
- "country" : {
- "maxLength" : 3,
- "type" : "string",
- "description" : "Country code - ISO 3166."
- }
- }
- },
- "IdentityUserLinkStrategy" : {
- "title" : "Strategy to link user in Identity.",
- "type" : "string",
- "description" : "Identity User Creation Strategy to Create Users in Identity or Import Users from Identity.",
- "default" : "IDENTITY_AGNOSTIC",
- "enum" : [ "IMPORT_FROM_IDENTIY", "CREATE_IN_IDENTITY", "IDENTITY_AGNOSTIC" ]
- },
- "User" : {
- "title" : "User",
- "required" : [ "externalId", "fullName" ],
- "type" : "object",
- "properties" : {
- "internalId" : {
- "$ref" : "#/schemas/InternalIdentifier"
- },
- "externalId" : {
- "$ref" : "#/schemas/ExternalIdentifier"
- },
- "legalEntityId" : {
- "$ref" : "#/schemas/InternalIdentifier"
- },
- "emailAddress" : {
- "$ref" : "#/schemas/EmailAddress"
- },
- "mobileNumber" : {
- "$ref" : "#/schemas/PhoneNumber"
- },
- "fullName" : {
- "type" : "string"
- },
- "identityLinkStrategy" : {
- "$ref" : "#/schemas/IdentityUserLinkStrategy"
- },
- "userProfile" : {
- "$ref" : "#/schemas/UserProfile"
- },
- "locked" : {
- "type" : "boolean",
- "description" : "Identity status. If true identity will be locked."
- }
- },
- "description" : "User that accessses the system on behalf of the Legal Entity\nA User is a person who interacts with the bank and who uses Backbase applications on behalf of the legal entity they are representing.\n"
- },
- "Name" : {
- "title" : "Name",
- "type" : "object",
- "properties" : {
- "formatted" : {
- "type" : "string"
- },
- "familyName" : {
- "type" : "string"
- },
- "givenName" : {
- "type" : "string"
- },
- "middleName" : {
- "type" : "string"
- },
- "honorificPrefix" : {
- "type" : "string"
- },
- "honorificSuffix" : {
- "type" : "string"
- }
- }
- },
- "Multivalued" : {
- "title" : "Multivalued",
- "type" : "object",
- "properties" : {
- "value" : {
- "type" : "string"
- },
- "display" : {
- "type" : "string"
- },
- "type" : {
- "type" : "string"
- },
- "primary" : {
- "type" : "boolean"
- }
- }
- },
- "UserProfile" : {
- "title" : "UserProfile",
- "required" : [ "externalId", "userId", "userName" ],
- "type" : "object",
- "properties" : {
- "userId" : {
- "type" : "string"
- },
- "externalId" : {
- "type" : "string"
- },
- "userName" : {
- "type" : "string"
- },
- "name" : {
- "$ref" : "#/schemas/Name"
- },
- "displayName" : {
- "type" : "string"
- },
- "nickName" : {
- "type" : "string"
- },
- "profileUrl" : {
- "type" : "string"
- },
-
- "title" : {
- "type" : "string"
- },
- "userType" : {
- "type" : "string"
- },
- "preferredLanguage" : {
- "type" : "string"
- },
- "locale" : {
- "type" : "string"
- },
- "timezone" : {
- "type" : "string"
- },
- "active" : {
- "type" : "boolean"
- },
- "additionalEmails" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/schemas/Multivalued"
- }
- },
- "additionalPhoneNumbers" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/schemas/Multivalued"
- }
- }
- },
- "description" : "User Data for User Profile Manager. Additional to Data included in User Model\n"
- }
- }
-}
\ No newline at end of file
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/credit-card.json b/stream-compositions/events/product-ingress/src/main/resources/events/credit-card.json
deleted file mode 100644
index 1e6254a14..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/credit-card.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "properties" : {
- "bookedBalance" : {
- "$ref" : "base-schema.json#/schemas/BookedBalance"
- },
- "availableBalance" : {
- "$ref" : "base-schema.json#/schemas/AvailableBalance"
- },
- "BBAN" : {
- "$ref" : "base-schema.json#/schemas/BBAN"
- },
- "creditLimit" : {
- "$ref" : "base-schema.json#/schemas/CreditLimit"
- },
- "number" : {
- "maxLength" : 36,
- "type" : "string",
- "description" : "First 6 and/or last 4 digits of a Payment card. All other digits will/to be masked. Be aware that using card number differently is potential PCI risk."
- },
- "cardNumber" : {
- "$ref" : "base-schema.json#/schemas/CardNumber"
- },
- "creditCardAccountNumber" : {
- "$ref" : "base-schema.json#/schemas/CreditCardAccountNumber"
- },
- "minimumPayment" : {
- "$ref" : "base-schema.json#/schemas/MinimumPayment"
- },
- "minimumPaymentDueDate" : {
- "$ref" : "base-schema.json#/schemas/MinimumPaymentDueDate"
- },
- "principalAmount" : {
- "$ref" : "base-schema.json#/schemas/PrincipalAmount"
- },
- "accountInterestRate" : {
- "$ref" : "base-schema.json#/schemas/AccountInterestRate"
- },
- "bankBranchCode" : {
- "$ref" : "base-schema.json#/schemas/BankBranchCode"
- }
- },
- "extends" : {
- "$ref" : "base-schema.json#/schemas/BaseProduct"
- }
-}
\ No newline at end of file
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/current-account.json b/stream-compositions/events/product-ingress/src/main/resources/events/current-account.json
deleted file mode 100644
index bbdbcc646..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/current-account.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "properties" : {
- "bookedBalance" : {
- "$ref" : "base-schema.json#/schemas/BookedBalance"
- },
- "availableBalance" : {
- "$ref" : "base-schema.json#/schemas/AvailableBalance"
- },
- "IBAN" : {
- "$ref" : "base-schema.json#/schemas/IBAN"
- },
- "BBAN" : {
- "$ref" : "base-schema.json#/schemas/BBAN"
- },
- "bankBranchCode" : {
- "$ref" : "base-schema.json#/schemas/BankBranchCode"
- }
- },
- "extends" : {
- "$ref" : "base-schema.json#/schemas/BaseProduct"
- }
-}
\ No newline at end of file
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/custom-datagroup-items.json b/stream-compositions/events/product-ingress/src/main/resources/events/custom-datagroup-items.json
deleted file mode 100644
index 08fec5420..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/custom-datagroup-items.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type" : "object",
- "properties" : {
- "externalId" : {
- "type" : "string",
- "description" : "Data Group Item Internal Id"
- },
- "internalId" : {
- "type" : "string",
- "description" : "Data Group Item External Id"
- }
- }
-}
\ No newline at end of file
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/egress/arrangement-completed-event.json b/stream-compositions/events/product-ingress/src/main/resources/events/egress/arrangement-completed-event.json
deleted file mode 100644
index 75e0b68d1..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/egress/arrangement-completed-event.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "productGroups": {
- "description": "Arrangement internal id",
- "$ref": "../arrangement.json"
- },
- "arrangementId": {
- "description": "Arrangement internal id",
- "type": "string"
- },
- "arrangementExternalId": {
- "description": "Arrangement external id",
- "type": "string"
- },
- "source": {
- "description": "Source of the ingestion",
- "type": "string"
- }
- }
-}
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/egress/arrangement-failed-event.json b/stream-compositions/events/product-ingress/src/main/resources/events/egress/arrangement-failed-event.json
deleted file mode 100644
index 8951045e8..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/egress/arrangement-failed-event.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "message": {
- "description": "Error message.",
- "type": "string"
- }
- }
-}
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/egress/product-completed-event.json b/stream-compositions/events/product-ingress/src/main/resources/events/egress/product-completed-event.json
deleted file mode 100644
index c1b705e30..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/egress/product-completed-event.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "productGroups": {
- "type": "array",
- "items": {
- "$ref": "../product-group.json"
- }
- },
- "legalEntityExternalId": {
- "description": "Legal entity externalId",
- "type": "string"
- },
- "legalEntityInternalId": {
- "description": "Legal entity internalId",
- "type": "string"
- },
- "serviceAgreementExternalId": {
- "description": "Service agreement externalId",
- "type": "string"
- },
- "serviceAgreementInternalId": {
- "description": "Service agreement internalId",
- "type": "string"
- },
- "userExternalId": {
- "description": "External userId",
- "type": "string"
- },
- "userInternalId": {
- "description": "Internal userId",
- "type": "string"
- },
- "source": {
- "description": "Source of the ingestion",
- "type": "string"
- }
- }
-}
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/egress/product-failed-event.json b/stream-compositions/events/product-ingress/src/main/resources/events/egress/product-failed-event.json
deleted file mode 100644
index 8951045e8..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/egress/product-failed-event.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "message": {
- "description": "Error message.",
- "type": "string"
- }
- }
-}
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/ingress/product-pull-event.json b/stream-compositions/events/product-ingress/src/main/resources/events/ingress/product-pull-event.json
deleted file mode 100644
index 8293e008a..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/ingress/product-pull-event.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "legalEntityExternalId": {
- "description": "Legal entity external id",
- "type": "string"
- },
- "legalEntityInternalId": {
- "description": "Legal entity internal id",
- "type": "string"
- },
- "serviceAgreementExternalId": {
- "type": "string"
- },
- "serviceAgreementInternalId": {
- "type": "string"
- },
- "userExternalId": {
- "type": "string"
- },
- "userInternalId": {
- "type": "string"
- },
- "source": {
- "type": "string"
- },
- "transactionChainEnabled": {
- "type": "boolean"
- },
- "paymentOrderChainEnabled": {
- "type": "boolean"
- },
- "referenceJobRoleNames": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "membershipAccounts": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
-}
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/investment-account.json b/stream-compositions/events/product-ingress/src/main/resources/events/investment-account.json
deleted file mode 100644
index 0fa19ad09..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/investment-account.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "properties" : {
- "currentInvestment" : {
- "$ref" : "base-schema.json#/schemas/CurrentInvestment"
- },
- "urgentTransferAllowed" : {
- "$ref" : "base-schema.json#/schemas/UrgentTransfer"
- },
- "panSuffix" : {
- "$ref" : "base-schema.json#/schemas/PanSuffix"
- },
- "productNumber" : {
- "$ref" : "base-schema.json#/schemas/ProductNumber"
- },
- "IBAN" : {
- "$ref" : "base-schema.json#/schemas/IBAN"
- },
- "BBAN" : {
- "$ref" : "base-schema.json#/schemas/BBAN"
- }
- },
- "allOf" : [ {
- "$ref" : "base-schema.json#/schemas/BaseProduct"
- } ]
-}
\ No newline at end of file
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/loan.json b/stream-compositions/events/product-ingress/src/main/resources/events/loan.json
deleted file mode 100644
index 9796d0ffe..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/loan.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "properties" : {
- "bookedBalance" : {
- "$ref" : "base-schema.json#/schemas/BookedBalance"
- },
- "valueDateBalance" : {
- "$ref" : "base-schema.json#/schemas/ValueDateBalance"
- },
- "outstandingPayment" : {
- "$ref" : "base-schema.json#/schemas/OutstandingPayment"
- },
- "accountInterestRate" : {
- "$ref" : "base-schema.json#/schemas/AccountInterestRate"
- },
- "accruedInterest" : {
- "$ref" : "base-schema.json#/schemas/AccruedInterest"
- },
- "availableBalance" : {
- "$ref" : "base-schema.json#/schemas/AvailableBalance"
- },
- "principalAmount" : {
- "$ref" : "base-schema.json#/schemas/PrincipalAmount"
- },
- "outstandingPrincipalAmount" : {
- "$ref" : "base-schema.json#/schemas/OutstandingPrincipalAmount"
- },
- "IBAN" : {
- "$ref" : "base-schema.json#/schemas/IBAN"
- },
- "BBAN" : {
- "$ref" : "base-schema.json#/schemas/BBAN"
- },
- "bankBranchCode" : {
- "$ref" : "base-schema.json#/schemas/BankBranchCode"
- },
- "minimumPayment" : {
- "$ref" : "base-schema.json#/schemas/MinimumPayment"
- },
- "minimumPaymentDueDate" : {
- "$ref" : "base-schema.json#/schemas/MinimumPaymentDueDate"
- },
- "accountHolderName" : {
- "$ref" : "base-schema.json#/schemas/AccountHolderName"
- },
- "creditAccount" : {
- "$ref" : "base-schema.json#/schemas/CreditAccount"
- },
- "debitAccount" : {
- "$ref" : "base-schema.json#/schemas/DebitAccount"
- }
- },
- "extends" : {
- "$ref" : "base-schema.json#/schemas/BaseProduct"
- }
-}
\ No newline at end of file
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/product-group.json b/stream-compositions/events/product-ingress/src/main/resources/events/product-group.json
deleted file mode 100644
index 8ac665a99..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/product-group.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties" : {
- "serviceAgreement" : {
- "$ref" : "base-schema.json#/schemas/ServiceAgreement"
- }
- },
- "description" : "Products assigned to service agreement",
- "extends": {
- "$ref" : "base-product-group.json"
- }
-}
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/savings-account.json b/stream-compositions/events/product-ingress/src/main/resources/events/savings-account.json
deleted file mode 100644
index f4663b282..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/savings-account.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "properties" : {
- "availableBalance" : {
- "$ref" : "base-schema.json#/schemas/AvailableBalance"
- },
- "bookedBalance" : {
- "$ref" : "base-schema.json#/schemas/BookedBalance"
- },
- "IBAN" : {
- "$ref" : "base-schema.json#/schemas/IBAN"
- },
- "BBAN" : {
- "$ref" : "base-schema.json#/schemas/BBAN"
- },
- "bankBranchCode" : {
- "$ref" : "base-schema.json#/schemas/BankBranchCode"
- },
- "principalAmount" : {
- "$ref" : "base-schema.json#/schemas/PrincipalAmount"
- },
- "creditAccount" : {
- "$ref" : "base-schema.json#/schemas/CreditAccount"
- },
- "debitAccount" : {
- "$ref" : "base-schema.json#/schemas/DebitAccount"
- }
- },
- "extends" : {
- "$ref" : "base-schema.json#/schemas/BaseProduct"
- }
-}
\ No newline at end of file
diff --git a/stream-compositions/events/product-ingress/src/main/resources/events/term-deposits.json b/stream-compositions/events/product-ingress/src/main/resources/events/term-deposits.json
deleted file mode 100644
index 94a660bc7..000000000
--- a/stream-compositions/events/product-ingress/src/main/resources/events/term-deposits.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "properties" : {
- "bookedBalance" : {
- "$ref" : "base-schema.json#/schemas/BookedBalance"
- },
- "principalAmount" : {
- "$ref" : "base-schema.json#/schemas/PrincipalAmount"
- },
- "IBAN" : {
- "$ref" : "base-schema.json#/schemas/IBAN"
- },
- "BBAN" : {
- "$ref" : "base-schema.json#/schemas/BBAN"
- },
- "termNumber" : {
- "$ref" : "base-schema.json#/schemas/TermNumber"
- },
- "maturityDate" : {
- "$ref" : "base-schema.json#/schemas/MaturityDate"
- },
- "maturityAmount" : {
- "$ref" : "base-schema.json#/schemas/MaturityAmount"
- },
- "creditAccount" : {
- "$ref" : "base-schema.json#/schemas/CreditAccount"
- },
- "debitAccount" : {
- "$ref" : "base-schema.json#/schemas/DebitAccount"
- },
- "bankBranchCode" : {
- "$ref" : "base-schema.json#/schemas/BankBranchCode"
- }
- },
- "extends" : {
- "$ref" : "base-schema.json#/schemas/BaseProduct"
- }
-}
diff --git a/stream-compositions/events/transaction-egress/pom.xml b/stream-compositions/events/transaction-egress/pom.xml
index 9e036abd2..551228fc2 100644
--- a/stream-compositions/events/transaction-egress/pom.xml
+++ b/stream-compositions/events/transaction-egress/pom.xml
@@ -49,6 +49,7 @@
true
${project.basedir}/target/generated-sources/jsonschema-events
${project.basedir}/src/main/resources/events/egress
+ ${project.basedir}/../events/transaction/egress
stream.compositions.events.egress
diff --git a/stream-compositions/events/transaction-ingress/pom.xml b/stream-compositions/events/transaction-ingress/pom.xml
index 90cc98b48..78eadc78d 100644
--- a/stream-compositions/events/transaction-ingress/pom.xml
+++ b/stream-compositions/events/transaction-ingress/pom.xml
@@ -48,7 +48,7 @@
1
true
${project.basedir}/target/generated-sources/jsonschema-events
- ${project.basedir}/src/main/resources/events/ingress
+ ${project.basedir}/../events/transaction/ingress
stream.compositions.events.ingress
diff --git a/stream-compositions/events/transaction-ingress/src/main/resources/events/egress/transactions-completed-event.json b/stream-compositions/events/transaction-ingress/src/main/resources/events/egress/transactions-completed-event.json
deleted file mode 100644
index 433819583..000000000
--- a/stream-compositions/events/transaction-ingress/src/main/resources/events/egress/transactions-completed-event.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "internalArrangementId": {
- "type": "string"
- },
- "transactionIds": {
- "type": "array",
- "items": {
- "description": "Internal id of the transaction ingested",
- "type": "string"
- }
- }
- }
-}
diff --git a/stream-compositions/events/transaction-ingress/src/main/resources/events/egress/transactions-failed-event.json b/stream-compositions/events/transaction-ingress/src/main/resources/events/egress/transactions-failed-event.json
deleted file mode 100644
index aed527261..000000000
--- a/stream-compositions/events/transaction-ingress/src/main/resources/events/egress/transactions-failed-event.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "message": {
- "description": "Error message.",
- "type": "string"
- }
- }
-}
\ No newline at end of file
diff --git a/stream-compositions/events/transaction-ingress/src/main/resources/events/ingress/transactions-pull-event.json b/stream-compositions/events/transaction-ingress/src/main/resources/events/ingress/transactions-pull-event.json
deleted file mode 100644
index 29c10b87a..000000000
--- a/stream-compositions/events/transaction-ingress/src/main/resources/events/ingress/transactions-pull-event.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "arrangementId": {
- "type": "string"
- },
- "externalArrangementId": {
- "type": "string"
- },
- "legalEntityInternalId": {
- "type": "string"
- },
- "dateRangeStart": {
- "type": "string",
- "format": "date-time"
- },
- "dateRangeEnd": {
- "type": "string",
- "format": "date-time"
- },
- "billingCycles": {
- "type": "integer"
- }
-
- }
-}
diff --git a/stream-compositions/events/transaction-ingress/src/main/resources/events/ingress/transactions-push-event.json b/stream-compositions/events/transaction-ingress/src/main/resources/events/ingress/transactions-push-event.json
deleted file mode 100644
index 12f8fd986..000000000
--- a/stream-compositions/events/transaction-ingress/src/main/resources/events/ingress/transactions-push-event.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "transactionsPostRequestBody": {
- "type": "object",
- "$ref": "../transaction.json#/properties/TransactionsPostRequestBody"
- }
- }
-}
diff --git a/stream-compositions/events/transaction-ingress/src/main/resources/events/transaction.json b/stream-compositions/events/transaction-ingress/src/main/resources/events/transaction.json
deleted file mode 100644
index 0201f97fd..000000000
--- a/stream-compositions/events/transaction-ingress/src/main/resources/events/transaction.json
+++ /dev/null
@@ -1,230 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "CreditDebitIndicator": {
- "description": "Indicates whether the amount is credited or debited.",
- "type": "string",
- "enum": [
- "CRDT",
- "DBIT"
- ]
- },
- "CheckImageAvailability": {
- "type": "string",
- "example": "AVAILABLE",
- "enum": [
- "AVAILABLE",
- "UNAVAILABLE"
- ]
- },
- "EnrichmentIndicator": {
- "type": "string",
- "description": "Indicates whether transaction needs to be enriched or not by following logic.\nSTANDARD_ENRICHMENT: Use default rules in service for enrichment\nDO_ENRICHMENT: Ignore any existing rules and enrich the transaction only if it's not enriched already\nFORCE_ENRICHMENT: Ignore any existing rules and enrich the transaction even if it's already enriched\nNO_ENRICHMENT: Ignore any existing rules and don't attempt to enrich the transaction\nCONFIGURED_ENRICHMENT: Use configured category in service for categorisation of the transaction\n",
- "example": "DO_ENRICHMENT",
- "enum": [
- "STANDARD_ENRICHMENT",
- "DO_ENRICHMENT",
- "FORCE_ENRICHMENT",
- "NO_ENRICHMENT",
- "CONFIGURED_ENRICHMENT"
- ]
- },
- "Currency": {
- "title": "Currency",
- "type": "object",
- "properties": {
- "amount": {
- "description": "The amount in the specified currency",
- "type": "string",
- "minimum": -1000000000000000000,
- "maximum": 1000000000000000000
- },
- "currencyCode": {
- "description": "The alpha-3 code (complying with ISO 4217) of the currency that qualifies the amount",
- "type": "string",
- "pattern": "^[A-Z]{3}$"
- }
- },
- "required": [
- "amount",
- "currencyCode"
- ]
- },
- "DisputeStatus": {
- "enum": [
- "UNDISPUTED",
- "PENDING",
- "REJECTED",
- "REFUNDED"
- ],
- "type": "string",
- "example": "UNDISPUTED"
- },
- "TransactionsPostRequestBody": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "arrangementId": {
- "description": "Reference to the product to which the transaction belongs",
- "maxLength": 50,
- "type": "string"
- },
- "externalId": {
- "description": "Internally used unique external identification of the transaction",
- "maxLength": 300,
- "type": "string"
- },
- "externalArrangementId": {
- "description": "External reference to the product to which the transaction belongs",
- "maxLength": 50,
- "type": "string"
- },
- "reference": {
- "description": "A tag/label issued by the initiator of the transaction in order to be able to refer to the respective transaction",
- "maxLength": 36,
- "type": "string"
- },
- "description": {
- "maxLength": 280,
- "type": "string"
- },
- "typeGroup": {
- "description": "Bank specific code of the group the transaaction type belangs to this to be mapped to in integration",
- "maxLength": 36,
- "type": "string"
- },
- "type": {
- "description": "Bank specific code to be mapped to generic type in integration",
- "maxLength": 36,
- "type": "string"
- },
- "category": {
- "description": "Transaction category",
- "maxLength": 50,
- "type": "string"
- },
- "bookingDate": {
- "description": "The date the amount is posted to the balance of an account from a book keeping perspective.",
- "type": "string",
- "format": "date"
- },
- "valueDate": {
- "description": "The date on which an amount posted to an account becomes interest bearing",
- "type": "string",
- "format": "date"
- },
- "creditDebitIndicator": {
- "$ref": "#/properties/CreditDebitIndicator"
- },
- "transactionAmountCurrency": {
- "$ref": "#/properties/Currency"
- },
- "instructedAmountCurrency": {
- "$ref": "#/properties/Currency"
- },
- "currencyExchangeRate": {
- "description": "The exchange rate (between both account and transaction currency) that was used for the conversion. To be used if those currencies are not the same",
- "type": "number"
- },
- "counterPartyName": {
- "description": "The name of the counterparty",
- "maxLength": 128,
- "type": "string"
- },
- "counterPartyAccountNumber": {
- "description": "The International Bank Account Number of the counterparty",
- "maxLength": 36,
- "type": "string"
- },
- "counterPartyBIC": {
- "description": "The BIC of the counterparty",
- "maxLength": 11,
- "type": "string"
- },
- "counterPartyCountry": {
- "description": "ISO Country code",
- "pattern": "^[A-Z]{2}$",
- "type": "string"
- },
- "counterPartyCity": {
- "description": "City of the counterparty",
- "maxLength": 35,
- "type": "string"
- },
- "counterPartyAddress": {
- "description": "Address of the counterparty",
- "maxLength": 140,
- "type": "string"
- },
- "counterPartyBankName": {
- "description": "The bank name of the counterparty",
- "maxLength": 128,
- "type": "string"
- },
- "creditorId": {
- "description": "Id of the creditor (Only for SEPA DD)",
- "maxLength": 19,
- "type": "string"
- },
- "mandateReference": {
- "description": "Mandate Reference (Only for SEPA DD)",
- "maxLength": 128,
- "type": "string"
- },
- "billingStatus": {
- "maxLength": 8,
- "type": "string"
- },
- "checkSerialNumber": {
- "description": "Serial number of the check. Each check has a different number for identification purposes.",
- "type": "integer",
- "format": "int64",
- "minimum": 0,
- "maximum": 10000000000000000
- },
- "sequenceNumber": {
- "maxLength": 20,
- "pattern": "(^[1-9][0-9]*)|0$",
- "type": "string"
- },
- "runningBalance": {
- "description": "Indicates the balance of the account at that moment when the transaction was executed",
- "type": "number",
- "minimum": -100000000000000,
- "maximum": 1000000000000000
- },
- "creationTime": {
- "description": "Indicates the creation time of the transaction",
- "type": "string"
- },
- "checkImageAvailability": {
- "description": "Indicates the state of check images for the transaction",
- "$ref": "#/properties/CheckImageAvailability"
- },
- "enrichmentIndicator": {
- "$ref": "#/properties/EnrichmentIndicator"
- },
- "disputeStatus": {
- "description": "Indicates the dispute status of a transaction",
- "$ref": "#/properties/DisputeStatus"
- },
- "batchOrderId": {
- "description": "Transaction batch order ID from DBS batches",
- "maxLength": 50,
- "type": "string"
- }
- },
- "required": [
- "bookingDate",
- "creditDebitIndicator",
- "description",
- "externalArrangementId",
- "externalId",
- "type",
- "typeGroup",
- "transactionAmountCurrency"
- ]
- }
- }
-}
diff --git a/stream-compositions/services/product-composition-service/src/test/java/com/backbase/stream/compositions/product/http/ProductControllerIT.java b/stream-compositions/services/product-composition-service/src/test/java/com/backbase/stream/compositions/product/http/ProductControllerIT.java
index 4e3ef58c7..7de1fdd05 100644
--- a/stream-compositions/services/product-composition-service/src/test/java/com/backbase/stream/compositions/product/http/ProductControllerIT.java
+++ b/stream-compositions/services/product-composition-service/src/test/java/com/backbase/stream/compositions/product/http/ProductControllerIT.java
@@ -167,7 +167,6 @@ void stopMockServer() {
}
@Test
- @Disabled
void pullIngestProduct_Success() throws Exception {
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(readContentFromClasspath("integration-data/response.json"))
diff --git a/stream-compositions/services/product-composition-service/src/test/resources/integration-data/response.json b/stream-compositions/services/product-composition-service/src/test/resources/integration-data/response.json
index d524c7f86..8af91dd6e 100644
--- a/stream-compositions/services/product-composition-service/src/test/resources/integration-data/response.json
+++ b/stream-compositions/services/product-composition-service/src/test/resources/integration-data/response.json
@@ -7,9 +7,9 @@
"description": "somePgDescription",
"savingAccounts": [
{
- "bban": "*188-S00",
- "iban": null,
- "bic": null,
+ "BBAN": "*188-S00",
+ "IBAN": null,
+ "BIC": null,
"internalId": null,
"externalId": "0000099188-S00",
"productTypeExternalId": "Savings",
@@ -102,9 +102,9 @@
"description": "somePgDescription",
"savingAccounts": [
{
- "bban": "*188-S00",
- "iban": null,
- "bic": null,
+ "BBAN": "*188-S00",
+ "IBAN": null,
+ "BIC": null,
"internalId": null,
"externalId": "0000099188-S00",
"productTypeExternalId": "Savings",